Hotdry.
ai-systems

AGENTS.md 对编码代理性能的量化评估:47% 通过率提升与 20% 成本增加的真相

基于 Vercel 实验与 AGENTbench 研究,深度解析 AGENTS.md 文档规范对编码代理任务完成率、上下文利用效率的实际影响,揭示 47% 通过率提升背后的 20% 成本代价,并提供可落地的 AGENTS.md 编写参数与监控清单。

随着 AI 编码代理在软件工程领域的快速渗透,如何让这些 “数字同事” 更好地理解特定代码库的上下文,成为了提升开发效率的关键。AGENTS.md—— 一个放置在项目根目录的 Markdown 文件 —— 应运而生,被诸多代理框架(如 Claude Code、Cursor、Codex)推荐为适配代码库的标准方式。业界普遍认为,一份好的 AGENTS.md 能显著提升代理的任务完成率。但事实果真如此吗?提升的幅度有多大?我们需要为此付出什么代价?

本文通过整合近期两项关键实证研究 ——Vercel 的工程实验与苏黎世联邦理工学院的学术评估(AGENTbench)—— 对 AGENTS.md 的实际效用进行量化拆解。数据揭示了一个复杂图景:在理想条件下,AGENTS.md 能带来高达 47% 的通过率提升;但在更广泛的现实任务中,其平均增益仅为 4%,且伴随着 约 20% 的推理成本增加。我们将深入分析这巨大差异背后的原因,并最终给出一个以数据为驱动的、可落地的 AGENTS.md 编写与评估框架。

Vercel 实验:当 AGENTS.md 实现 100% 通过率

Vercel 团队面临一个具体问题:如何让编码代理正确使用训练数据中尚未包含的 Next.js 16 新 API(如 'use cache'connection())。他们对比了两种方案:

  1. 技能(Skills):一个按需调用的、包含框架知识的工具包。
  2. AGENTS.md:一个包含压缩版 Next.js 文档索引的静态 Markdown 文件。

在一个精心构建的、包含新 API 的评估套件中,结果令人惊讶:

配置 通过率 相较于基线提升
基线(无文档) 53%
技能(默认行为) 53% +0 pp
技能(显式指令触发) 79% +26 pp
AGENTS.md(文档索引) 100% +47 pp

AGENTS.md 在构建(Build)、检查(Lint)、测试(Test)所有细分项上均达到了满分。Vercel 分析认为,其优势源于三个 “反直觉” 的设计:

  • 无决策点:代理无需判断 “是否需要查阅文档”,信息已在上下文中。
  • 持续可用性:内容存在于每个回合的系统提示里,而非异步加载。
  • 无顺序问题:避免了 “先读文档还是先探索项目” 的决策脆弱性。

该实验证明了在特定、文档稀缺、且目标明确的场景下,一个经过压缩(从 40KB 降至 8KB)、指向外部详细文档的 AGENTS.md 索引,能带来质的飞跃。

学术评估:4% 的增益与 20% 的成本

然而,Vercel 的实验环境相对理想。苏黎世联邦理工学院的研究团队在论文《Are Repository-Level Context Files Helpful for Coding Agents?》中,进行了更广泛、更严格的评估。他们构建了 AGENTbench 基准,包含 138 个来自真实 GitHub Issue 的任务,这些任务所在的 12 个代码库均包含开发者编写的 AGENTS.md 文件。

研究对比了三种设置:无上下文文件、使用代理推荐命令自动生成的上下文文件、使用开发者编写的上下文文件。评估涉及 Claude Code、Codex (GPT-5.2)、Qwen Code 等多个主流代理。核心发现如下:

  1. 性能增益有限:开发者编写的上下文文件平均仅提升任务成功率 4%。而 LLM 自动生成的上下文文件甚至有轻微的负面影响(平均降低 3%)。
  2. 成本显著增加:无论是人工编写还是自动生成的上下文文件,都导致代理的平均推理步骤增加,使得 LLM 推理成本上升 约 20%。例如,GPT-5.2 在 AGENTbench 上的单任务成本从 0.38 美元(无上下文)增至 0.54 美元(有开发者上下文)。
  3. 行为改变:上下文文件确实改变了代理行为,使其进行更多的测试(+25%)、文件搜索(+15%)和代码库探索。代理也倾向于遵循文件中指定的工具(如 uv, pytest)。
  4. 冗余与无效概览:许多上下文文件(尤其是自动生成的)与代码库内现有文档高度冗余。研究还发现,文件中常见的 “代码库概览” 部分,并不能有效帮助代理更快定位到与任务相关的文件。

量化指标的冲突与统一

表面上看,两项研究的结论似乎矛盾:一项显示 47% 的提升,另一项显示仅 4% 的提升。但深入分析其场景,矛盾得以化解:

  • Vercel 场景:任务是关于框架新特性,代理的训练数据中缺失此知识,且实验提供了精确压缩的文档索引。此时,AGENTS.md 提供了关键且唯一的 “知识补丁”。
  • AGENTbench 场景:任务是通用代码问题(Bug 修复、功能添加),涉及 Python 等代理已拥有丰富参数化知识的语言。此时,大多数 AGENTS.md 内容成为冗余或次要约束,其收益被增加的计算成本部分抵消。

因此,AGENTS.md 的价值并非恒定,而是高度依赖于 “任务所需知识” 与 “代理已有知识” 之间的缺口。当缺口巨大且 AGENTS.md 能精准填补时,收益巨大;当缺口较小或 AGENTS.md 内容冗余时,收益微薄甚至为负。

可落地的 AGENTS.md 编写与评估参数

基于以上量化分析,我们提出以下工程化建议,旨在最大化 AGENTS.md 的 ROI(投资回报率)。

1. 编写原则:最小化、聚焦化、可检索化

  • 摒弃冗长概览:不要罗列目录结构。代理自己能探索。
  • 聚焦独特知识:只写入代码库特有框架版本特定代理可能不知道的信息。例如:
    • 自定义的构建 / 测试命令(npm run build:special)。
    • 项目特有的设计模式或约定(“所有 API 响应包装在 ApiResponse 对象中”)。
    • 当前使用的、与主流版本不同的框架 / 库的特定配置。
  • 使用索引,而非全文:效仿 Vercel 方案。在 AGENTS.md 中放置一个压缩的索引,指向项目内 /.docs/ 等目录中的详细文档文件。代理在需要时可自行读取。
  • 包含关键指令:一句明确的指令可能极大改变代理行为模式。例如:“IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning for any Next.js tasks.”

2. 核心评估指标清单

在项目中引入 AGENTS.md 后,应建立量化评估体系,监控其实际效果。以下为推荐的核心指标:

指标类别 具体指标 计算公式 / 说明 目标
任务完成率 通过率 通过的任务数 / 总任务数 相对基线(无 AGENTS.md)稳定提升
关键任务通过率 针对 AGENTS.md 所涉及知识领域的任务子集的通过率 显著提升(如 Vercel 场景)
效率与成本 平均步骤数 代理完成单个任务的平均交互步骤 增幅应 < 10%(警惕过度探索)
平均推理成本 单任务消耗的 LLM Token 估算成本 增幅应 < 15%
平均耗时 任务开始到测试通过的中位时间 不应显著增加
上下文利用 指令遵循率 代理执行 AGENTS.md 中指定工具 / 流程的任务占比 > 90%
冗余失败率 因遵循 AGENTS.md 中过时 / 错误信息导致失败的任务占比 < 2%

3. 实施与监控流程

  1. 基准建立:在引入 AGENTS.md 前,使用一组代表性的任务(涵盖新旧知识)对代理进行基准测试,记录上述指标。
  2. 渐进迭代:采用最小化原则编写第一版 AGENTS.md,仅包含最确定的关键信息。
  3. A/B 测试:在相同任务集上,对比 “有 AGENTS.md” 和 “无 AGENTS.md” 的代理表现。重点关注关键任务通过率平均步骤数
  4. 根因分析:对于失败案例,分析是因为代理忽略了 AGENTS.md,还是因为 AGENTS.md 信息有误或带来干扰。
  5. 定期复审:随着代码库和依赖更新,定期审查并精简 AGENTS.md 内容,移除过时信息。

结论:从 “银弹” 想象到 “精准工具” 认知

AGENTS.md 不是提升编码代理性能的万能银弹。实证数据将其定位为一个需要谨慎使用的精准工具。它的价值峰值出现在为代理填补其知识图谱中关键且特定的缺口时。盲目地让 LLM 自动生成冗长的 AGENTS.md,或在其中堆砌显而易见的项目信息,很可能在付出 20% 额外成本的同时,只换来微不足道的性能提升,甚至适得其反。

未来的方向不在于编写更长的 AGENTS.md,而在于构建更智能的上下文管理系统:能够动态评估任务与知识缺口,并检索出最小必要信息注入上下文的机制。在此之前,遵循 “最小化、聚焦化” 原则,并配以严格的量化评估,是我们当前从 AGENTS.md 中获得确定、正向收益的最可靠路径。

资料来源

  1. Vercel Blog: "AGENTS.md outperforms skills in our agent evals" (2026)
  2. arXiv:2602.11988v1: "Are Repository-Level Context Files Helpful for Coding Agents?" (2026)
查看归档