尽管业界有诸多建议,但一篇发表在ETH Zurich网站上的新论文指出,《CODE_AGENTS.md》这类文件往往会妨碍人工智能编码代理的正常运行。研究人员建议完全忽略由大语言模型生成的上下文文件,而将人类编写的指令限制在那些无法被智能系统理解的细节上,例如特定的工具使用方法或自定义构建命令。

这个研究团队包括Thibaud GloaguenNiels MündlerMark MüllerVeselin Raychev以及Martin Vechev。他们指出,虽然目前有60,000个开源仓库中包含了《CODE_AGENTS.md》这类文件,而且许多代理框架也提供了自动生成这些文件的机制,但迄今为止还没有任何严谨的实证研究来验证这些文件是否真的能提升人工智能代理解决实际编码任务的能力。

这些研究人员其中有人还参与了“Humanity Last Exam”基准测试项目的开发。他们构建了AGENTbench这一新的数据集,该数据集包含了来自小众仓库的138个真实世界的Python编程任务。这种设计刻意避免了像SWE-bench这类流行基准测试带来的偏差,因为人工智能模型很可能已经部分记住了这些基准测试的内容。研究团队在三种不同的场景下对四种代理进行了测试:不使用任何上下文文件、使用大语言模型生成的上下文文件,以及使用人类编写的上下文文件。他们通过三个指标来评估这些上下文文件的实际效果:任务成功率(由仓库中的单元测试结果确定)、代理执行任务的步骤数,以及整体的推理成本。所有被选用的小众仓库都包含了人类编写的上下文文件,在前两种测试场景中,研究人员分别删除或替换了这些文件。

研究结果表明,由大语言模型生成的上下文文件反而会降低性能,与完全不使用任何上下文文件相比,任务成功率平均下降了3%;同时,这些文件还会导致代理执行任务的步骤数增加,从而使推理成本上升超过20%。
另一方面,人类编写的上下文文件确实能带来一定的提升,在AGENTbench测试中,任务成功率平均提高了4%。然而,这种正面效果也被代理执行任务步骤数的增加所抵消,从而导致整体成本增加了19%。
在《CODE_AGENTS.md》文件中加入关于系统架构的概述或仓库结构说明,并没有帮助模型更快地找到完成当前任务所需的文件。

为了解释为何性能下降而成本却上升,作者对智能代理的工具调用过程及推理模式进行了深入分析。这些智能代理通常会遵循《AGENTS.md》文件中规定的指令进行操作。因此,它们会执行更多的测试、读取更多的文件、进行更多的grep搜索,并执行更多的代码质量检查。虽然这种行为十分细致,但对于解决当前的具体任务来说,往往并不必要。数据表明,这些额外的操作反而会让推理模型更加费力地“思考”,但最终得到的结果却并没有改善。 作者在结论中指出了本研究发现与目前面向使用AI智能代理的开发者所提出的建议之间的差距:
我们发现,所有类型的上下文文件都会增加完成任务所需的步骤数量。由大语言模型生成的上下文文件会对任务成功率产生轻微的负面影响,而由开发者自行编写的上下文文件则能带来微弱的性能提升。 我们的分析显示,上下文文件中的指令通常会被智能代理遵守,这会导致更多的测试和更广泛的探索;然而,这些文件并不能作为有效的代码管理工具。总体而言,我们的研究结果表明,上下文文件对智能代理的行为影响甚微,只有当它们是由开发者手动编写时,才会具有实际意义。这一现象凸显出了当前关于智能代理开发的建议与实际效果之间的差距,也为未来开发能够自动生成、简洁且与任务相关的指导信息的方法提供了方向。
开发者们对这项研究表现出了浓厚的兴趣。有一位开发者指出,这项研究实际上应该提醒开发者们更加注重编写有用的《AGENTS.md》文件:
我读了这篇研究。我认为它的结论与作者的建议恰恰相反——它实际上是在推崇优秀的《AGENTS.md》文件的作用。 ……对于《AGENTS.md》文件而言,其最大的用途在于提供模型所不了解、也无法从项目中立即推断出来的领域知识。这种知识是需要通过观察智能代理因缺乏这些信息而遇到的困难,逐渐积累起来的。而在那些使用闭源代码的项目中,这种情况非常普遍;然而在公开发布的GitHub项目中,拥有《AGENTS.md》文件的情况却极为罕见——因为绝大多数这类项目都是最近才创建的、使用大语言模型的小型项目。如果在那些《AGENTS.md》文件质量参差不齐的项目中,使用这些文件能让性能提升4%,那么对于那些《AGENTS.md》文件质量较高的大型项目来说,它们无疑是非常有价值的。
另一位开发者则指出,上下文文件可能对开发者来说更有用,而对AI系统而言则作用有限:

我在两个项目中使用了一个名为《CLAUDE.md》的文件,已经持续了大约3个月。这种做法确实带来了一些积极的效果,但这些效果并非出人意料。实际上,该文件所提供的代码级上下文信息本身并不是最重要的;更重要的是,编写这样的文档会迫使你把那些原本只存在于你脑海中的关于代码库的信息明确表达出来。比如“由于Y方面的遗留限制,我们才在X地方使用这种特殊的编码模式”。一旦这些信息被记录下来,不仅系统能够理解它们,团队中的每一个新成员也能清楚地了解这些内容。

开发者可以在线查阅这篇论文。在2025年下半年,使用诸如AGENTS.mdCLAUDE.md.cursorrules这样的配置文件变得越来越重要,这一趋势与AI编程助手提供商们加大推广力度的时间点恰好吻合。

Comments are closed.