- updateText 移除文本宽度硬编码下限 160,真正根据内容自适应 - showRefining/showThinking 简化为调用 updateText,复用自适应逻辑 - 面板最小宽度由 minPanelWidth(180pt) 兜底 - 打包 VoiceInput-20260425.dmg
3.5 KiB
3.5 KiB
AGENTS.md 规范参考
什么是 AGENTS.md?
AGENTS.md 是一个简单、开放的 Markdown 格式文件,专为 AI 编程代理(Coding Agents)设计。它是 AI 助手的"README"——与 README.md(面向人类开发者)互补,提供 AI 代理处理项目时所需的上下文和指令。
目前已超过 6 万个开源项目采用,由 Linux 基金会旗下 Agentic AI Foundation 管理,获得 OpenAI、Google、Cursor、Cognition 等主流厂商支持。
核心设计理念
- 面向 AI 代理:为 AI 编码工具提供结构化的操作手册
- 跨工具兼容:同一份文件可被 Codex、Jules、Cursor、Windsurf、Devin、Aider、Gemini CLI、VS Code、Zed 等 20+ 工具识别
- 就近原则:AI 代理使用离当前编辑文件最近的 AGENTS.md
- 纯 Markdown:无需特殊格式,AI 直接解析
文件位置与嵌套
根目录放置
在项目根目录放置一个 AGENTS.md,覆盖整个项目。
Monorepo 嵌套
在子包中放置独立的 AGENTS.md:
my-monorepo/
├── AGENTS.md # 根级通用配置
├── packages/
│ ├── web/
│ │ └── AGENTS.md # 前端特定配置
│ ├── api/
│ │ └── AGENTS.md # 后端特定配置
│ └── shared/
│ └── AGENTS.md # 共享库配置
AI 代理处理 packages/web/src/App.tsx 时会使用 packages/web/AGENTS.md,而非根目录的。
优先级规则
- 最近的 AGENTS.md(最靠近被编辑文件的)优先级最高
- 用户聊天中的显式指令 覆盖一切
- 父目录的 AGENTS.md 作为后备
典型内容板块
| 板块 | 说明 | 是否必要 |
|---|---|---|
| 项目概述 | 技术栈、架构简介、项目目标 | 推荐 |
| 构建/测试命令 | 安装依赖、启动、构建、测试的具体命令 | 强烈推荐 |
| 代码风格 | 命名约定、格式化规则、语言特性约束 | 推荐 |
| 测试说明 | 测试策略、覆盖率要求、测试命令 | 推荐 |
| 安全注意事项 | 敏感配置、授权边界、禁止操作 | 按需 |
| PR 规范 | 标题格式、提交前检查清单 | 按需 |
| 部署步骤 | 发布流程、环境变量 | 按需 |
| 已知问题/陷阱 | 常见坑点、注意事项 | 按需 |
支持的 AI 工具
完整兼容(原生支持):
- OpenAI Codex
- Google Jules
- Cursor
- Windsurf (Cognition)
- Devin (Cognition)
- Aider
- Gemini CLI
- VS Code (Copilot)
- Goose (Block)
- opencode
- Zed
- Warp
- Factory
- Amp
- RooCode
- Kilo Code
- Phoenix
- Semgrep
- UiPath Autopilot
- JetBrains Junie
- Augment Code
- Ona
与其他配置文件的区别
| 文件 | 面向对象 | 用途 |
|---|---|---|
| README.md | 人类开发者 | 项目介绍、快速上手、贡献指南 |
| AGENTS.md | AI 编程代理 | 构建命令、测试、代码规范、工具链细节 |
| .cursorrules | Cursor 专属 | 已逐步被 AGENTS.md 取代 |
| CLAUDE.md | Claude Code 专属 | 正在向 AGENTS.md 靠拢 |
| .aider.conf.yml | Aider 专属 | Aider 通过 read: AGENTS.md 接入 |
迁移指南
如果项目已有工具专属配置文件,可以这样迁移:
# 将旧配置重命名为 AGENTS.md
mv CLAUDE.md AGENTS.md
# 或
mv .cursorrules AGENTS.md
# 为兼容旧工具,创建软链接
ln -s AGENTS.md CLAUDE.md
Aider 配置(.aider.conf.yml):
read: AGENTS.md
Gemini CLI 配置(.gemini/settings.json):
{
"context": {
"fileName": "AGENTS.md"
}
}