写 AGENTS.md 的原则和建议

我个人总结 AGENTS.md 尽量简短,因为每次对话都要加入 token 中,我们的目的是要尽量利用AGENTS.md尽量的节省 token,给AI方向,所以不能有废话,比如项目背景介绍(那是给人看的),我自己总结了下面几条,仅供参考

  1. 告诉AI 项目的结构,避免全量搜索

  2. 项目的编码规范和架构规则,比如DTO类要放在哪个项目下,不要写在Controller 里

  3. 全栈项目都要有各自的 AGENTS.md前端一个AGENTS.md后端一个AGENTS.md),这样分开也符合渐进式加载的原则,不然AI干活时读取不必要的上下文(比如生成前端代码时,去读取 AGENTS.md 中描写后端的内容)

我问了三个大模型(DeepSeek 0825新版,MiniMax M2.5,GLM 5),关于 "写 AGENTS.md 的原则和建议", 我觉得 ,GLM 5 回答最优秀,内容如下

根据搜索结果,编写高效 AGENTS.md 文件的核心在于平衡信息量与 AI 的处理能力,避免"用力过猛"导致 AI 迷路。以下是编写 AGENTS.md 的核心原则与具体建议。

一、 核心编写原则

在编写 AGENTS.md 时,应遵循"最小化"、"稳定性"和"渐进式"三大核心原则,以确保 AI 助手能准确理解指令且不被冗余信息干扰。

  • 最小化原则
    • 指令预算概念 :前沿的思考型 LLM 通常只能稳定执行 150-200 条指令。AGENTS.md 中的每个 token 在每次请求时都会被加载,文件过大挤占了具体任务的 token 空间,会导致 AI 性能下降甚至"迷路"1
    • 只放必要内容 :对自己狠一点,文件中只放绝对必要的信息,如一句话项目描述、非标准的包管理器或构建命令1
  • 稳定性优先原则
    • 避免写死文件路径 :文档更新往往滞后于代码,过期的文档对 AI 来说是"毒药"。AI 会自信地去错误路径寻找文件,而不会像人类一样保持怀疑。与其写易变的文件结构,不如写相对稳定的"能力"或"领域概念"(如组织、小组、工作空间等)1
    • 结构简洁 :避免过度复杂的配置结构,简洁明了的配置文件更容易维护和更新,能提供更稳定的 AI 助手表现3
  • 渐进式披露原则
    • 按需加载 :不要把所有规则都塞进根目录的 AGENTS.md。应该建立一个可发现的资源树,让 AI 根据需要去导航和加载1
    • 引用代替堆砌 :将特定领域的规则(如 TypeScript 规范)移到单独文件,在主文件中轻量引用。例如写 For TypeScript conventions, see docs/TYPESCRIPT.md,这样只有在编写 TypeScript 时才会加载相关规则1

二、 内容编写建议

关于具体应该往 AGENTS.md 里写什么,建议分为"必填项"和"选填项"进行规划,并采用分层策略。

1. 必要内容(基础层)

根据最小化原则,以下内容是 AGENTS.md 的核心骨架:

内容类别 建议写法 示例
项目描述 一句话概括,相当于给 AI 的角色提示 "This is a React component library for accessible data visualization."1
包管理器 如果不是默认的 npm,必须明确指出 "Use pnpm for package management."1
构建/检查命令 如果非标准命令,需明确说明 "Run pnpm build:lib for build."1
2. 扩展内容(项目层与团队层)

除了基础信息,可以根据项目情况补充以下内容,但需注意引用方式:

  • 项目架构说明 :清晰描述代码组织结构和模块关系,但避免具体路径2
  • 编码规范定义 :统一团队的代码风格和最佳实践。建议将具体的 .eslintrc.prettierrc 规则通过链接引用,而非直接展开2
  • 分层配置策略
    • 基础层:环境设置、通用工具。
    • 项目层:特定技术栈、目录结构说明。
    • 团队层 :协作规范、提交风格2

三、 避坑指南与实践技巧

在实际操作中,很多开发者容易陷入误区,导致 AGENTS.md 适得其反。

  1. 避免规则无限累积
    • 不要在 AI 每次做错事时就加一条禁止规则。几个月下来文件会臃肿不堪,不同开发者的观点还可能冲突。需定期整理和精简1
  2. 禁止自动生成
    • 千万不要 用脚本自动生成 AGENTS.md。自动生成的文件往往追求全面而忽略精简,会塞入大量大部分场景无用的信息,浪费宝贵的指令预算1
  3. 利用多级配置
    • AGENTS.md 不是只能放在根目录。可以在子目录(如 packages/xxx)放置子级文件。根目录放 Monorepo 导航和共享工具,子目录放具体包的约定,这样 AI 在访问子目录时能获取更精准的上下文1
  4. 跨工具兼容性
    • 注意不同 AI 工具的文件名习惯,例如 ClaudeCode 使用 CLAUDE.md 而非 AGENTS.md。可以通过软链接将它们关联起来,避免维护两份文件1AGENTS.md 作为一个开放格式,旨在解决配置碎片化问题,允许在不同 AI 助手间无缝切换3
相关推荐
彷徨的蜗牛20 天前
用 Claude Code 重新定义编程效率:从 Prompt 工程到完整项目实战
prompt·ai 编程·claude code
苡~21 天前
【claude skill系列 - 01】Claude Skill 系列专栏 - 大纲
效率工具·ai 编程·claude code·claude api·weelinking
YounGp_oo1 个月前
使用 AI 编程工具的一点实践体会:为什么要减少对话轮次、一次把需求说清楚
软件工程·需求分析·开发经验·工程实践·ai 编程
月下西楼1 年前
发现了个好东西:Dify,快速搭应用的小帮手
ai 编程
谦哥1 年前
从开发新手角度对比 dify 和 n8n:哪个更适合你?
前端·javascript·ai 编程
酱酱们的每日掘金1 年前
AI 编程避坑全攻略、Cursor + MCP 要冲击的不仅是前端丨AI Coding 周刊第 1 期
cursor·mcp·ai 编程
芦半山1 年前
闲谈丨一名AI体验者的自述
android·ai 编程
Captaincc1 年前
👨‍💻 cursor user rules 实践
ai 编程
掘金酱1 年前
[周二直播] 用 Trae 和 Flutter 开发你的第一款全平台"答案之书" APP|AI For Code工作坊 Vol.8
flutter·trae·ai 编程