|
| 1 | +# AGENTS.md |
| 2 | + |
| 3 | +`AGENTS.md` 是写给 AI 编码助手的项目说明文件。它用于记录长期有效的项目规则,让 Deep Code 在这个仓库中工作时知道如何安装依赖、运行测试、修改代码、提交变更,以及遵守哪些团队约定。 |
| 4 | + |
| 5 | +如果你经常在提示词里重复说明“先运行哪个测试”“不要修改哪个目录”“PR 描述要包含什么”,就适合把这些内容写进 `AGENTS.md`。 |
| 6 | + |
| 7 | +## 适合写什么 |
| 8 | + |
| 9 | +`AGENTS.md` 适合保存当前项目的稳定规则: |
| 10 | + |
| 11 | +- 项目结构和重要目录 |
| 12 | +- 安装、开发、构建、测试命令 |
| 13 | +- 代码风格、命名约定、格式化要求 |
| 14 | +- 测试要求和验证步骤 |
| 15 | +- 提交、PR、发布流程 |
| 16 | +- 安全、配置、凭据处理注意事项 |
| 17 | +- 只对本仓库有效的 AI 协作规则 |
| 18 | + |
| 19 | +不适合写入 `AGENTS.md` 的内容: |
| 20 | + |
| 21 | +- 一次性任务要求,例如“这次只改登录页” |
| 22 | +- 复杂可复用工作流,此类内容更适合写成 Agent Skill |
| 23 | +- 外部系统连接信息,此类能力更适合通过 MCP 配置 |
| 24 | +- API Key、密码、Token 等敏感信息 |
| 25 | + |
| 26 | +## 创建文件 |
| 27 | + |
| 28 | +在项目中运行: |
| 29 | + |
| 30 | +```text |
| 31 | +/init |
| 32 | +``` |
| 33 | + |
| 34 | +Deep Code 会帮助你创建或更新 `AGENTS.md`。你也可以手动创建: |
| 35 | + |
| 36 | +```bash |
| 37 | +touch AGENTS.md |
| 38 | +``` |
| 39 | + |
| 40 | +如果你希望把说明放在 Deep Code 专用目录中,也可以使用: |
| 41 | + |
| 42 | +```bash |
| 43 | +mkdir -p .deepcode |
| 44 | +touch .deepcode/AGENTS.md |
| 45 | +``` |
| 46 | + |
| 47 | +常见选择: |
| 48 | + |
| 49 | +| 文件 | 适合场景 | |
| 50 | +| ---- | -------- | |
| 51 | +| `AGENTS.md` | 希望项目中的不同 AI 编码工具都能读取 | |
| 52 | +| `.deepcode/AGENTS.md` | 希望规则只面向 Deep Code | |
| 53 | +| `~/.deepcode/AGENTS.md` | 个人默认偏好,适用于没有项目说明的仓库 | |
| 54 | + |
| 55 | +## 推荐结构 |
| 56 | + |
| 57 | +保持简短、清晰、可执行。推荐从下面这些章节开始: |
| 58 | + |
| 59 | +```markdown |
| 60 | +# 仓库指南 |
| 61 | + |
| 62 | +## 项目结构 |
| 63 | + |
| 64 | +说明主要目录,以及新增代码应该放在哪里。 |
| 65 | + |
| 66 | +## 开发命令 |
| 67 | + |
| 68 | +- `npm install` — 安装依赖。 |
| 69 | +- `npm test` — 运行测试套件。 |
| 70 | +- `npm run build` — 构建项目。 |
| 71 | + |
| 72 | +## 代码风格 |
| 73 | + |
| 74 | +说明格式化、命名和框架约定。 |
| 75 | + |
| 76 | +## 测试 |
| 77 | + |
| 78 | +说明什么时候需要添加测试,以及需要运行哪些命令。 |
| 79 | + |
| 80 | +## Pull Request |
| 81 | + |
| 82 | +说明提交风格、PR 检查项、截图或发布说明要求。 |
| 83 | + |
| 84 | +## AI 助手注意事项 |
| 85 | + |
| 86 | +列出 AI 助手需要遵守的规则,例如不要修改哪些文件,或完成前要执行哪些检查。 |
| 87 | +``` |
| 88 | + |
| 89 | +你不需要保留所有章节。只写对当前项目有帮助的内容。 |
| 90 | + |
| 91 | +## 写作原则 |
| 92 | + |
| 93 | +### 写具体命令 |
| 94 | + |
| 95 | +推荐: |
| 96 | + |
| 97 | +```markdown |
| 98 | +## 开发命令 |
| 99 | + |
| 100 | +- `npm install` — 安装依赖。 |
| 101 | +- `npm test` — 运行全部测试。 |
| 102 | +- `npm run build` — 执行类型检查并构建 CLI。 |
| 103 | +``` |
| 104 | + |
| 105 | +避免: |
| 106 | + |
| 107 | +```markdown |
| 108 | +完成前运行常用命令。 |
| 109 | +``` |
| 110 | + |
| 111 | +### 写明确规则 |
| 112 | + |
| 113 | +推荐: |
| 114 | + |
| 115 | +```markdown |
| 116 | +## 测试 |
| 117 | + |
| 118 | +修改行为时需要新增或更新测试。完成前,测试相关修改运行 |
| 119 | +`npm test`,代码修改运行 `npm run build`。 |
| 120 | +``` |
| 121 | + |
| 122 | +避免: |
| 123 | + |
| 124 | +```markdown |
| 125 | +确保一切正常。 |
| 126 | +``` |
| 127 | + |
| 128 | +### 写项目事实 |
| 129 | + |
| 130 | +推荐: |
| 131 | + |
| 132 | +```markdown |
| 133 | +## 项目结构 |
| 134 | + |
| 135 | +- `src/` 存放应用代码。 |
| 136 | +- `tests/` 存放自动化测试。 |
| 137 | +- `docs/` 存放面向用户的文档。 |
| 138 | +``` |
| 139 | + |
| 140 | +避免: |
| 141 | + |
| 142 | +```markdown |
| 143 | +这是一个普通的 TypeScript 项目。 |
| 144 | +``` |
| 145 | + |
| 146 | +### 写安全边界 |
| 147 | + |
| 148 | +推荐: |
| 149 | + |
| 150 | +```markdown |
| 151 | +## 安全 |
| 152 | + |
| 153 | +不要提交 API Key 或 Token。本地凭据放在 `~/.deepcode/settings.json`, |
| 154 | +项目示例中的敏感信息需要脱敏。 |
| 155 | +``` |
| 156 | + |
| 157 | +避免: |
| 158 | + |
| 159 | +```markdown |
| 160 | +注意保护密钥。 |
| 161 | +``` |
| 162 | + |
| 163 | +## 示例 |
| 164 | + |
| 165 | +下面是一个较完整的 `AGENTS.md` 示例: |
| 166 | + |
| 167 | +```markdown |
| 168 | +# 仓库指南 |
| 169 | + |
| 170 | +## 项目结构 |
| 171 | + |
| 172 | +- `src/` 存放应用代码。 |
| 173 | +- `src/tests/` 存放自动化测试。 |
| 174 | +- `docs/` 存放面向用户的文档。 |
| 175 | +- `config/` 存放项目配置示例。 |
| 176 | + |
| 177 | +## 开发命令 |
| 178 | + |
| 179 | +- `npm install` — 安装依赖。 |
| 180 | +- `npm test` — 运行自动化测试。 |
| 181 | +- `npm run build` — 运行检查并构建 CLI。 |
| 182 | + |
| 183 | +## 代码风格 |
| 184 | + |
| 185 | +使用 TypeScript。保持代码清晰,优先使用明确命名,并遵循现有 |
| 186 | +格式风格。不要引入无关重构。 |
| 187 | + |
| 188 | +## 测试 |
| 189 | + |
| 190 | +修改行为时需要添加测试。优先运行范围最小的相关测试;条件允许时, |
| 191 | +完成前运行 `npm test` 或 `npm run build`。 |
| 192 | + |
| 193 | +## AI 助手注意事项 |
| 194 | + |
| 195 | +- 不要提交密钥或本地生成文件。 |
| 196 | +- 保留用户已有修改。 |
| 197 | +- 说明无法执行的验证步骤。 |
| 198 | +``` |
| 199 | + |
| 200 | +## 与 Skills、MCP 的区别 |
| 201 | + |
| 202 | +| 工具 | 适合放什么 | |
| 203 | +| ---- | ---------- | |
| 204 | +| `AGENTS.md` | 当前仓库的长期规则、命令、风格、验证步骤 | |
| 205 | +| Agent Skill | 可复用工作流、领域知识、模板、脚本、参考资料 | |
| 206 | +| MCP | GitHub、浏览器、数据库等外部工具和实时数据 | |
| 207 | + |
| 208 | +常见组合: |
| 209 | + |
| 210 | +- 在 `AGENTS.md` 中写“这个项目怎么做” |
| 211 | +- 在 Agent Skill 中写“这类任务怎么做” |
| 212 | +- 用 MCP 提供“需要连接外部服务才能做”的能力 |
| 213 | + |
| 214 | +## 维护建议 |
| 215 | + |
| 216 | +- 项目命令变化后及时更新 |
| 217 | +- 删除已经过期的规则 |
| 218 | +- 避免写太长,优先保留高频、重要、容易出错的约定 |
| 219 | +- 不要写敏感信息 |
| 220 | +- 如果规则只适用于某次任务,直接写在当前对话中即可 |
0 commit comments