入门教程 · Lesson 06
编写项目规则:AGENTS.md
以本项目的 AGENTS.md 为例,把全局协作边界、验证流程和发布权限写成 Agent 能遵守的仓库规则。
完成后你能:
- 区分项目常驻规则与一次性 Prompt、规格和 Skill
- 写出短小、可执行、可审查的 AGENTS.md
- 为验证流程和发布权限设置明确边界
项目规则文件解决的是一个具体问题:每次启动 Agent,都不必重新解释那些始终有效的协作边界。它不是一份巨大的 Prompt,也不是把所有任务步骤都提前写死。
用 /init 生成可审查的初稿
在仓库中启动 OpenCode,确认当前工作区状态后运行:
/init
OpenCode 会扫描仓库中的重要文件,创建或更新 AGENTS.md。它通常会提取构建、测试、目录结构和项目约定,但生成结果只是初稿,不是自动生效的企业政策。
运行后先检查:
git diff -- AGENTS.md
删除无法从仓库验证的推测,补上明确的验证顺序和发布边界,再决定是否提交。若仓库已有 AGENTS.md,/init 可能更新原文件,因此运行前必须先看 git status。具体行为以 OpenCode Rules 官方文档为准。
先判断什么值得常驻
适合写入 AGENTS.md 的内容通常满足三个条件:适用于大多数任务、能通过命令或文件状态检查、违反后会造成明显损失。例如验证命令、目录约定、权限边界和不可触碰的数据。
一次性的页面需求、某个 Issue 的验收标准和只在特定任务触发的复杂流程,应分别放进 Prompt、规格文件或 Skill。
以当前项目的 AGENTS.md 为例
本项目的 AGENTS.md 只有两组核心规则:
| 规则组 | 文件中的约定 | 为什么常驻 |
|---|---|---|
| 修改后验证 | 先运行 npm test,再运行 npm run dev;只有布局、样式、组件或交互改动才需要浏览器检查 |
每次修改都适用,而且结果可以被命令和人工检查验证 |
| 发布边界 | 未明确要求时,不执行 git push、Pull Request、推送 main 或 GitHub Pages 部署 |
保护远程仓库和公开站点,必须在每次协作中保持一致 |
这比“请 Agent 小心一点”更有用,因为它给出了顺序、例外、触发条件和禁止动作。
写完之后做四项审查
- 这条规则是否适用于几乎所有任务,而不是只适用于一个页面?
- Agent 能否通过命令、Diff 或文件状态判断自己是否遵守?
- 是否明确了需要人工决定的边界?
- 是否与团队批准的工具、命令和发布流程一致?
如果一条规则只对当前任务有用,就把它移回任务 Prompt 或规格;如果它需要复杂步骤、脚本和独立验证,就考虑封装为 Skill。保持 AGENTS.md 短小,规则才容易被持续读取和维护。
完成检查