别再自动生成 CLAUDE.md 了,最新论文把真相讲透了
原文:别再自动生成 CLAUDE.md 了,最新论文把真相讲透了
本文根据公众号原文重新整理 Markdown 格式,保留原文的核心观点 、实验数据和实践建议。
很多团队都会给代码仓库加一个 AGENTS.md 或 CLAUDE.md,用来描述:
- 项目结构
- 依赖安装方式
- 测试命令
- 代码风格
- 目录和模块的注意事项
直觉上看,这些上下文应该能帮助 AI 编程助手少猜一点、多做对一点。
但一篇论文给出了一个反直觉的结论:
上下文文件确实会改变 Agent 的行为,但不一定会让它更容易完成任务。
论文标题是《Evaluating AGENTS.md: Are Repository-Level Context Files Helpful for Coding Agents?》,研究对象正是 AGENTS.md、CLAUDE.md 这类仓库级上下文文件。
先说结论
CLAUDE.md 或 AGENTS.md 不应该被写成另一份 README,也不应该靠自动生成不断堆内容。
更合理的定位是:
用一份短小的工程约束,告诉 Agent 那些它自己很难安全推断、但做错代价很高的规则。
如果一条信息 Agent 可以通过 ls、rg、读取 README 或运行测试自行发现,就不一定值得写进上下文文件。
实验是怎么做的?
作者搭建了两套 benchmark,分别观察仓库级上下文文件是否能提高 coding agent 完成真实工程任务的成功率。
| 数据集 | 规模 | 作用 |
|---|---|---|
| SWE-Bench Lite | 300 个任务 | 测试 LLM 自动生成 context file 在热门仓库中的效果 |
| AgentBench | 138 个任务 | 测试开发者真实 context file 在较新或小众仓库中的效果 |
AgentBench 来自 12 个真实 GitHub 仓库。这些仓库本身带有开发者编写的 AGENTS.md 或 CLAUDE.md,作者再从 PR 和 issue 中抽取任务,生成并校验回归测试。
实验设置分为三组:
- NONE:不提供上下文文件。
- LLM:使用 Agent 推荐方式自动生成上下文文件。
- HUMAN:使用仓库开发者真实提交的上下文文件。
被测对象包括 Claude Code + Sonnet 4.5、Codex + GPT-5.2,以及 Qwen Code + Qwen3-30B-Coder。
主要指标是 success rate:Agent 生成补丁后,测试是否全部通过。
同时还统计了:
- Agent 步骤数
- 推理成本
- 工具调用次数
- 搜索文件次数
- 测试次数
- reasoning token 数量
自动生成的 CLAUDE.md 不太行
在 8 个主要设置中,LLM 自动生成的 context file 有 5 个降低了任务成功率。
实验给出的平均结果大致是:
| 数据集 | 成功率变化 | 步骤数变化 | 推理成本变化 |
|---|---|---|---|
| SWE-Bench Lite | 下降约 0.5% | 增加 2.45 步 | 增加约 20% |
| AgentBench | 下降约 2% | 增加 3.92 步 | 增加约 23% |
也就是说,自动生成的上下文文件并没有稳定提效,反而可能让 Agent 做更多事、消耗更多 token,而成功率略有下降。
人工编写的上下文文件表现稍好:在 AgentBench 上平均带来约 4% 的成功率提升,但同样会增加步骤数和成本。论文统计的平均步骤增量为 3.34 步,成本最高增加约 19%。
这背后的直觉很简单:每多给 Agent 一条规则,它就多了一份需要判断和执行的内容。
Agent 其实非常遵守命令
实验一开始还怀疑:上下文文件没有提升成功率,是不是因为 Agent 根本没读、没按规则执行?
Trace 分析给出了相反答案:Agent 不但会读,而且遵守得很明显。
当仓库中存在上下文文件时,Agent 更频繁地:
- 搜索代码
- 读取更多文件
- 运行更多测试
- 执行上下文文件中点名的工具
论文中的一个对比示例是:
| 行为 | 被 context file 提及时 | 未被提及时 |
|---|---|---|
uv 使用次数 | 平均 1.6 次/实例 | 低于 0.01 次/实例 |
| 仓库特定工具 |
