乐于分享
好东西不私藏

全网最全解读!给AI编程助手塞一份AGENTS.md,真的更有用吗?

全网最全解读!给AI编程助手塞一份AGENTS.md,真的更有用吗?

这两年,越来越多团队和个人开发者开始给代码仓库配一份给 AI 看的说明书。

文件名可能叫 AGENTS.md,也可能叫 CLAUDE.mdcopilot-instructions.md。写法也差不多:项目结构怎么走、测试命令怎么跑、代码风格有什么规矩、提交前别忘了做什么。

看起来很合理。人接手一个新项目都希望先看文档,AI 当然也一样。

但最近有篇论文,偏偏就拿这件事较了真。题目很直接:《Evaluating AGENTS.md: Are Repository-Level Context Files Helpful for Coding Agents?》。作者来自 ETH Zurich 和 LogicStar.ai,他们想回答的问题只有一个:

这些给 AI 编程助手准备的仓库级上下文文件,到底是真的有帮助,还是只是让人感觉“好像更专业了”?

答案有点扎心。


先说结论

这篇论文最值得记住的,不是某个复杂实验设置,而是两个很直白的发现:

  • • 很多情况下,加入上下文文件后,AI 编程助手的任务成功率反而下降了。
  • • 推理成本还会上升 20% 以上。

论文里测了多种 coding agent 和不同底层模型,结果整体方向很一致:给足一大段仓库说明,并没有稳定地帮 AI 把活干好,反而常常把事情搞复杂。

如果你最近刚好在认真写 AGENTS.md,看到这可能会有点不舒服。我第一反应也是:不应该啊,信息更多,怎么会更差?

这正是这篇论文有意思的地方。它不是在抬杠,而是真的去做了系统评估。


他们是怎么测的

作者把实验分成了两块。

第一块,用的是大家已经比较熟悉的 SWE-bench Lite。这是 AI 修 Bug、改代码时经常会用到的一类基准。作者没有直接照搬,而是给这些仓库额外配上了 LLM 生成的上下文文件,写法也尽量参考业界推荐的套路,比如加入项目概览、目录说明、测试与构建命令、编码规范等。

第二块更有意思。因为现实世界里,很多仓库本来就已经有人手写了这类文件,所以作者又自己整理出一个新的评测集合,叫 AGENTbench。这里面收集的是带有开发者真实提交上下文文件的仓库 issue,更接近日常开发里 AI 真会遇到的情况。

换句话说,这篇论文没有只盯着一种场景,而是同时看了:

  • • “如果上下文文件是 AI 现写的,会怎样?”
  • • “如果上下文文件本来就是开发者手写并提交在仓库里的,会怎样?”

这个设计挺关键。因为很多人可能会说,问题不是出在 AGENTS.md 这类文件本身,而是出在“写得不好”。论文其实也考虑到了这一点。


最反直觉的一点:信息更多,不代表效果更好

论文里有个结果很值得普通读者也记一下。

在 SWE-bench Lite 上,加入 LLM 生成的上下文文件后,平均成功率大约下降 0.5 个百分点。这个数字看起来不算大,但方向是负的,而且跨模型、跨 agent 都比较一致。

到了作者自己整理的 AGENTbench 上,下降更明显,平均大约 2 个百分点

这说明什么?

说明对今天的 AI 编程助手来说,仓库级上下文文件并不天然等于“导航系统”。很多时候,它更像一份过长的任务前说明。看是看了,也会照着做,但不一定因此更接近正确答案。

更微妙的是,论文还发现这些文件确实改变了 agent 的行为。它们会让 agent:

  • • 跑更多测试
  • • 多看一些文件
  • • 做更广的仓库探索
  • • 更认真地遵守里面写下来的要求

表面上看,这些都像好事。

但问题也在这儿。更勤奋,不等于更有效。

有些任务本来只需要改一个点,结果 AI 因为被文档里的各种要求牵着走,花了更多时间在“应该全面检查”“应该先遍历目录”“应该执行更多流程”上,最后成本更高,成功率却没有更好。

这就像有人问你怎么修家里的水龙头,你先递给他一整本装修手册。对方当然会翻,但未必比直接告诉他“阀门在左边,先关水,再换这个垫圈”更有帮助。


为什么会这样

这部分我觉得是全文最有现实意义的地方。

过去大家默认的逻辑是:仓库文档越完整,AI 越容易把事情做好。

但论文给出的解释更接近另一种情况:

如果上下文文件里塞进了太多并非当前任务必需的信息,AI 会把这些要求也当成“必须认真执行的事”。

于是问题就出现了:

  • • 原本能直接定位的问题,被拉成了一次全仓巡检
  • • 原本只要跑一条命令,被扩展成整套检查流程
  • • 原本只需要局部修改,结果 AI 开始顾虑风格、结构、目录规范,甚至做额外重构

从人的角度看,我们会说这叫“抓不住重点”。

从 agent 的角度看,它其实不是不听话,反而是太听话了。论文里就提到,agent 往往会尊重这些上下文文件里的要求,只是这些要求未必真的能帮助它完成眼前这道题。

这也是为什么作者最后没有得出“以后别写 AGENTS.md”这种极端结论,而是更克制地说:

如果要写,人写的内容最好只保留最小必要信息。

比如:

  • • 这个仓库必须用什么测试命令
  • • 哪个工具链是必须的
  • • 哪些非直觉性的限制不能踩
  • • 哪些约定是 agent 仅靠读代码推不出来的

反过来,那些 AI 自己扫一遍目录就能知道的内容,未必值得在顶部再长篇大论重复一遍。


这和现在行业里的流行做法,刚好有点冲突

这篇论文之所以会引发讨论,还有一个背景。

过去一年里,不少 AI 编程工具和社区文章都在鼓励大家给仓库补充这类文件。官方文档和最佳实践里,也常能看到类似建议:把项目约定、常用命令、代码组织方式写给 agent 看。

这件事并不难理解。今天的 coding agent 已经不是只补一小段函数,而是在更长的任务链里读代码、改代码、跑测试、反复试错。大家自然会想:那就提前把“游戏规则”告诉它。

论文的价值就在这里。它提醒我们,“看起来合理”不等于“实验里真的有效”。

很多经验在个别仓库里也许成立,但一旦放到更广泛的任务上,效果可能没想象中稳。


普通开发者现在该怎么做

如果你会用 AI 写代码,我觉得这篇论文至少给了三个很实用的提醒。

1. 不要把 AGENTS.md 当成万能加成

它不是开关,不是加上去就能自动提高成功率。

尤其别抱着“我再补三页说明,AI 一定更懂项目”的想法。很多时候,AI 只会更忙。

2. 真要写,就写“少而硬”的信息

最值得留下的,不是项目介绍,不是漂亮的目录导览,而是那些不写它就很容易踩坑的东西。

比如:

  • • 单元测试其实要跑 just test,不是常见的 pytest
  • • 某个目录是生成产物,不能手改
  • • 提交前必须跑某条校验命令
  • • 这个仓库有特殊的数据库迁移顺序

这类信息对人有用,对 AI 也一样有用。

3. 能用工具约束的,就别全靠文档

如果一条规则真的重要,最好让它变成:

  • • lint
  • • test
  • • pre-commit hook
  • • CI 检查

因为文档只能“提醒”,自动化约束才能“兜底”。

从论文结果看,单靠一份大而全的说明文件,希望 agent 自动理解并恰到好处地执行,风险还是挺高的。


我觉得这篇论文最有价值的地方

它没有否定文档,也没有否定 coding agent。

它真正戳破的是一种最近很常见的幻觉:只要把上下文喂得更大、更全,AI 就会更聪明。

现实往往没这么简单。

对今天的 agent 来说,太多上下文有时不是帮助,而是噪声;不是导航,而是额外负担。它会更认真地做事,却不一定更接近问题本身。

这也是我读完后最想转述给更多人的一句话:

AI 编程助手最需要的,可能不是“更多说明”,而是“更少但更关键的说明”。

这听上去很朴素,但在现在这个什么都想往 prompt 里加的阶段,反而挺值得记住。


参考资料

  1. 1. 论文原文:Evaluating AGENTS.md: Are Repository-Level Context Files Helpful for Coding Agents?https://arxiv.org/abs/2602.11988
  2. 2. AGENTS.md 官方站点https://agents.md/
  3. 3. Anthropic 关于 Claude Code memory / project instructions 的文档https://docs.anthropic.com/en/docs/claude-code/memory
  4. 4. OpenAI 关于 Codex 的介绍https://openai.com/index/introducing-codex/
  5. 5. InfoQ 对论文的报道https://www.infoq.com/news/2026/03/agents-context-file-value-review/
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 全网最全解读!给AI编程助手塞一份AGENTS.md,真的更有用吗?

猜你喜欢

  • 暂无文章