写 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。可以通过软链接将它们关联起来,避免维护两份文件1 。AGENTS.md 作为一个开放格式,旨在解决配置碎片化问题,允许在不同 AI 助手间无缝切换3 。
相关推荐
奈落2410 小时前
Codex 并进 ChatGPT 之后,“编程智能体“是变浅了还是变顺了:从官方概览页的功能分工到五家公司开发者反馈,读一次产品化合并的得与失
人工智能·chatgpt·工作流·ai 编程
奈落243 天前
连错一个端口,Agent就“看不见”工具:从 n8n 的8种AI连接类型到 Dify 的插件审批复用,平台设计里的“隐形接线规则”怎么读
人工智能·agent·ai 编程
奈落244 天前
工程界讲角色边界,控制论讲博弈与稳定性:从 Swarms 的实践清单到《自动化学报》的协同综述,多智能体‘协同‘这件事有两套语言
人工智能·深度学习·自动化·ai 编程
奈落244 天前
全局切换器之后:从 ChatGPT 桌面端把聊天、工作、编程并进一个窗口,看“三合一”改了什么、没改什么
chatgpt·工作流·ai 编程
AI闲人6 天前
Hermes:把学习写进文件,把知识变成技能
人工智能·知识库·ai 编程·企业ai落地
奈落247 天前
RAG 上线只是起点:知识库漂移、模型退化、依赖网扩张,生产环境的长期维护难题怎么拆
本地部署·ai 编程
小七-七牛开发者7 天前
Meta 如何改造工程环境,让 Agent 自己跑开发 Loop
meta·agent·工程实践·ai 编程·研发工具链
奈落2411 天前
从“你问它答”到“它主动推”:ChatGPT Pulse 把记忆、反馈和日历变成一条信息策划流水线
人工智能·chatgpt·ai 编程
Caroline51614 天前
GPT Image 2.5 + DeepSeek V4.1 Flash-1017:从游戏 UI 设计到 3D 项目生成
gpt·游戏·ui·ai 编程·gpt image 2.5
奈落2415 天前
Anthropic 收购 Vercept:Claude 的“计算机使用”要补感知与交互这一课,团队该盯什么
microsoft·api·agent·ai 编程