2026年3月,ETH Zurich 发布了一篇论文,直接挑战了 AI 编程社区的一个"共识":AGENTS.md 文件可能根本没那么有用,甚至可能有害。
背景:一个被广泛接受的做法
过去一年多,AI 编程工具(Cursor、Claude Code、Windsurf 等)都推荐在项目根目录放一个 AGENTS.md、CLAUDE.md 或 .cursorrules 文件,用来给 AI 提供项目上下文、架构说明、编码规范等。
GitHub 上超过 60,000 个开源仓库都有这类文件。很多框架甚至内置了自动生成它们的功能。
问题来了:没人认真验证过这玩意儿到底有没有用。
研究方法
ETH Zurich 团队做了一个干净的实验:
- 数据集:AGENTbench,138 个来自小众仓库的真实 Python 任务(故意避开 SWE-bench 这种可能被模型记过的流行基准)
- 测试对象:Claude 3.5 Sonnet、Codex GPT-5.2、GPT-5.1 mini、Qwen Code
- 三种场景:无上下文文件 / LLM 生成的文件 / 人工编写的文件
结果:有点反直觉
LLM 生成的文件:弊大于利
- 任务成功率 下降 3%
- 推理成本 增加 20%+
LLM 生成的"项目概述"不仅没帮上忙,反而让模型"想太多"——执行更多 grep、读更多文件、跑更多测试,却没产出更好的补丁。
人工编写的文件:边际收益,但贵
- 任务成功率 提升 4%
- 推理成本 增加 19%
人工写的文件确实有用,但性价比存疑。而且研究指出,把"架构概述"或"仓库结构说明"写进文件里,并没有减少模型定位文件的时间。
为什么会这样?
研究者做了深度追踪分析。结论:
AI 确实会遵循 AGENTS.md 里的指令——但它们执行了太多不必要的"谨慎"操作。更多测试、更广的文件探索、更多代码质量检查。这种"勤奋"对特定任务来说是浪费。
另一个角度:LLM 生成的上下文文件,本质上是在"复读"项目里已有的信息。模型本来就能读到这些,你再用自然语言概括一遍,只是增加了噪音。
社区反应:两种解读
观点一:这研究反而证明了写好 AGENTS.md 的价值
HN 上一位开发者指出:
如果在小众开源项目上人工文件都有 4% 的提升,那在真正需要领域知识的闭源项目上,高质量的 AGENTS.md 会更有价值——因为这些项目有大量"模型不知道也无法推断"的上下文。
关键在于:AGENTS.md 应该写的是模型不知道的东西,而不是"项目结构概述"这种它自己能读到的信息。
观点二:AGENTS.md 的真正价值是写给人类看的
一位 Reddit 用户分享:
我维护了三个月的 CLAUDE.md,发现它的价值不在于给 AI 的 token 上下文,而在于写它的过程逼我把脑子里那些模糊的东西变成文字。“我们用这个奇怪的模式处理 X 是因为 Y 有历史遗留问题。“写下来之后,AI 能读到,新加入的人类同事也能读到。
这其实是个有意思的副产品——AGENTS.md 成了一种知识管理的媒介。
实用建议
如果你要用 AGENTS.md:
- 不要用 LLM 自动生成——纯属噪音
- 只写模型无法推断的东西:奇怪的构建命令、非标准的工具链、历史遗留的技术债务原因
- 别写"项目结构概述”——模型自己会读目录
- 把它当作团队知识库的一部分——对新成员也有价值
我的看法
这个研究打脸的不是 AGENTS.md 本身,而是**“随便塞点上下文总比没有好"的懒惰思维**。
上下文不是越多越好。给 AI 喂垃圾信息,它会用"更努力"的方式处理垃圾,然后烧你的 token。
真正有价值的是:那些只有你知道、模型猜不到、代码里看不出来的隐性知识。
这种知识,通常来自长期维护项目的痛苦经验。它不可能被自动生成,也很难被标准化。
所以,AGENTS.md 还是有用的——但前提是你真的有东西要写。
参考:ETH Zurich 论文原文 | InfoQ 报道