当前位置: 首页 > news >正文

二、AGENTS.md 核心结构:写清楚什么,执行就不跑偏

二、AGENTS.md 核心结构:写清楚什么,执行就不跑偏

结构

一份长期可用的 AGENTS.md,我建议至少有这六块:

  1. 项目结构
  2. 构建和测试命令
  3. 代码和改动规则
  4. 风险边界
  5. 输出格式
  6. 例外情况

如果你仓库复杂一些,再往上加模块级补充。

为什么先讲结构

因为很多团队不是不会写规则,而是规则写得东一条西一条,最后谁都找不到重点。

你今天补一条“必须跑测试”,明天补一条“不要动 CI”,后天又补一条“接口变更要写说明”。

这些话单看都对,但没有结构,最后阅读成本会越来越高。

AI 也是一样。它不是不能看长文档,而是结构越乱,执行越容易抓错重点。

第一块:项目结构

这一块最容易写得太浅。

很多人会这样写:

- src
- tests
- scripts

这几乎没信息量。

更好的写法是把目录职责写出来:

## 目录结构
- src/: 生产代码统一放这里
- tests/: 测试目录按 src 的结构去对应
- scripts/: 开发脚本放这里,脚本要能重复执行
- docs/: 设计说明和决策记录放这里

这样 AI 至少知道:

  1. 生产代码去哪改。
  2. 测试应该往哪补。
  3. 脚本目录不是随便扔实验代码的地方。

第二块:构建和测试命令

这一块的目标不是“列全命令”,而是“给唯一入口”。

比如你们团队平时有人用 pytest,有人用 make test,还有人自己拼一长串参数。

如果你不统一,AI 每次都可能选不一样的命令。

建议写成这样:

## 常用命令
- setup: make setup
- lint: make lint
- test: make test

好处很直接:

  1. 人和 AI 都有统一入口。
  2. 后面命令真变了,只改一处。
  3. 最终汇报里也更容易统一口径。

第三块:代码和改动规则

这是 AGENTS.md 最容易失控的一块。

原因很简单,团队脑子里“想管的事”太多了。

我的建议是只保留两类:

  1. 高频返工点
  2. 高风险改动点

比如下面这些就很常见:

## 改动规则
- 修 bug 必须补回归测试
- 改公开接口时要写清兼容性说明
- 能复用现成组件就不要另起一套
- 改动范围只围着这次任务走

这类规则有两个特点:

  1. 能直接指导当前任务怎么做。
  2. Review 时能拿来判断,不是纯主观表态。

第四块:风险边界

这一块非常值钱,但很多团队写得最少。

其实很多事故都出在这里。

比如这些话,如果不提前写清楚,AI 很容易踩雷:

  1. 不要动权限模块。
  2. 不要改 CI。
  3. 不要跑会覆盖历史的 git 命令。
  4. 没确认前不要改公共数据库迁移。

你可以这样写:

## 风险边界
- 不要执行会覆盖历史的 git 命令
- 动权限、计费、CI、基础设施文件之前先确认
- 不要直接改环境变量文件和密钥文件

这不是“保守”,这是把高风险动作从默认允许改成默认确认。

第五块:输出格式

这一块经常被忽略,但它对协作体验影响很大。

因为很多时候,问题不在代码本身,而在结果汇报太散。

有的人写一大段解释,有的人只说“已完成”,还有的人只贴命令输出。

久了以后,review 和交接都会累。

我很建议固定成三段:

## 输出格式
- 先说改了什么
- 再说怎么验证的
- 最后说剩余风险

如果团队主要说中文,也可以直接写中文版本:

## 输出格式
- 先说改了什么
- 再说怎么验证的
- 最后说剩余风险

第六块:例外情况

这块不是必须每个仓库都有,但一旦项目比较忙,最好加。

因为现实里总会有“来不及按标准流程”的时候。

如果不提前定义例外,最后就会变成谁着急谁说了算。

可以写得很短:

## 例外情况
- 紧急修复可以先不补文档
- 但必须带上问题单或故障链接
- 后续清理动作要留下记录

这就够了。重点不是把例外写复杂,而是让例外也有边界。

一个比较顺手的完整例子

# AGENTS.md## 目录结构
- src/: 正式代码目录
- tests/: 测试目录,结构跟着 src 走
- scripts/: 自动化脚本目录## 常用命令
- setup: make setup
- lint: make lint
- test: make test## 改动规则
- 修 bug 必须补回归测试
- 改动范围只围绕当前需求
- 有现成抽象就先复用,不要顺手新建一层## 风险边界
- 不要执行会覆盖历史的 git 命令
- 动权限、CI、基础设施、计费相关内容前先确认## 输出格式
- 改了什么
- 怎么验证的
- 剩余风险## 例外情况
- 紧急修复可以先不补文档,但必须带上问题链接

这份已经足够支撑很多仓库起步了。

什么时候该拆成多层规则

如果你们仓库已经有这些特点,就不要只靠根目录一份文件了:

  1. 前后端在同一个 monorepo 里。
  2. 不同子目录差异很大。
  3. 同一个仓库里既有产品代码,也有基础设施代码。

这时候建议用分层写法:

  1. 根目录放全局规则。
  2. 子目录放局部规则。

比如:

repo/AGENTS.mdapps/web/AGENTS.mdservices/api/AGENTS.md

根目录管通用边界,比如 Git、安全、输出格式。

子目录管本模块自己的规则,比如前端组件复用、后端迁移约束。

哪些内容不建议写进 AGENTS.md

这里顺手提醒几类常见废话。

1. 太抽象的话

例如:

请保持优雅、专业、现代化。

这类词没有明确执行边界,很容易变成摆设。

2. 明显过期的规则

比如命令早改了,文件还没更新。这个伤害很大,因为它会直接降低团队对文档的信任。

3. 纯背景介绍

产品背景、公司愿景、商业目标,不是不能写,但那更适合 README 或 docs。

AGENTS.md 要优先让执行者知道“现在该怎么做”。

一个很实用的维护原则

我很建议你每次 review 时问自己一句:

“今天这条 review 评论,下次还会不会再说一遍?”

如果答案是“会”,那这事就值得进 AGENTS.md。

这比闭门造车想规则有效得多。

小结

好的结构不是为了好看,而是为了让规则长期能用、能维护、能快速找到。

你只要先把这六块搭起来,AGENTS.md 就已经从“随手记一页”变成“能协作的工程文件”了。

http://www.jsqmd.com/news/537188/

相关文章:

  • GNU Radio流复用与解复用终极指南:如何实现多路信号并行处理
  • 浙江静电测试闸机厂家专业度深度评测报告:浙江人行通道闸机、浙江全高旋转闸、浙江写字楼闸机、浙江半导体静电闸机、浙江小区闸机选择指南 - 优质品牌商家
  • Seed-Coder-8B-Base体验报告:这个开源代码模型到底强在哪里?
  • Apache Pinot终极指南:实时分析在电商、金融、物联网等行业的10大应用案例
  • 单链表的基本操作
  • Baseweb表单文件上传组件:从基础到拖拽上传的完整指南
  • 五、测试与重构场景:低风险迭代的操作手册
  • 三、前端开发场景实战:从需求到可交付页面
  • 丹青幻境开源可部署优势:私有化部署保障商业项目数据安全与版权可控
  • ScriptGen Modern Studio效果展示:AI生成的剧本竟然这么惊艳!
  • LFM2.5-1.2B-Thinking-GGUF效果实测:32K上下文下跨10页PDF的技术要点连贯性分析
  • Wan2.2-I2V-A14B部署教程:JupyterLab集成+视频生成结果实时可视化
  • 2026年螺母应用白皮书建筑预埋锚固剖析:塔吊地脚螺栓、套筒式止水螺杆、异形止水螺杆、桥梁地脚螺栓、热镀锌地脚螺栓选择指南 - 优质品牌商家
  • 四、后端开发场景实战:接口、数据、故障处理
  • MangoHud日志数据可视化在线工具:无需安装的终极性能分析指南
  • 2026杭州财务/财税方案/疑难税务代办/财税公司服务十强推荐:浙江乘风财务咨询解决各类财税难题 - 栗子测评
  • Apache OpenWhisk多语言函数开发终极指南:Node.js、Python、Java实战解析
  • 【亲测免费】 耗子面板常见问题解决方案
  • 【免费下载】 OpenCV/CVAT 图像标注工具安装指南
  • java毕业设计基于springboot露营地管理系统
  • clmystery终极指南:利用通配符和文件模式匹配破解命令行谋杀案
  • Apache OpenWhisk版本升级指南:平滑迁移与兼容性处理
  • 快速体验AI绘画:用PyTorch 2.9镜像生成你的第一张AI图片
  • CSOS:面向I2C机器人的语义化控制中间件
  • LFM2.5-1.2B-Thinking-GGUF开发者案例:为开源硬件项目自动生成README与API文档
  • Uvicorn与RethinkDB Changefeeds:构建实时数据变更推送服务的终极指南 [特殊字符]
  • 终极指南:Cobalt项目模块路径问题分析与完美解决方案
  • 【2025最新】基于SpringBoot+Vue的校园志愿者管理系统管理系统源码+MyBatis+MySQL
  • Llama-3.2V-11B-cot效果对比:单卡vs双卡4090在CoT长推理任务中的稳定性差异
  • 如何快速掌握Rainmeter皮肤滑块范围控制:最小值/最大值设置完整指南