Context Engineering for AI Agents in Open-Source Software
本文通过对 466 个开源项目进行的初步研究,调查了 AGENTS.md 文件的采用情况、内容结构及其演变过程,揭示了开发者在为 AI 智能体提供上下文方面存在的显著差异,并强调了未来在优化上下文工程以提高生成代码质量方面进行研究的潜力。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在雇佣一名聪明、速度极快的实习生来帮你建造一台复杂的机器。这位实习生是一个 AI 智能体(AI Agent)。如果你只是对他说,“修理引擎”,他可能会猜错,因为他不知道你的具体规则、你偏好的工具,或者你的团队通常是如何运作的。
这篇论文是关于一种新的方式,即为 AI 编写一份专门针对机器人而非人类的“用户手册”。
以下是用简单语言对这项研究进行的拆解:
问题所在:实习生需要一本手册
过去,软件开发人员使用像 GitHub Copilot 这样的工具来辅助编写代码。现在,我们拥有了能够自主完成更多工作的“AI 智能体”,比如修复漏洞或构建整个功能。但就像人类员工一样,AI 也需要理解公司的文化和规则才能做好工作。
厂商们(制造 AI 的公司)建议开发人员在他们的项目文件夹中创建一个特殊文件。你可以把这个文件看作是数字化的“员工手册”,专门给 AI 看的。它会告诉 AI 诸如以下内容:
- “我们总是这样命名变量。”
- “永远不要直接修改主文件。”
- “这是我们测试代码的方式。”
最近,一个名为 AGENTS.md 的标准格式被创建了,以便所有的 AI 工具都能读取同一种类型的手册。
研究过程:检查这些手册
研究人员想要观察现实世界的软件项目是否真的在使用这些手册,以及如果使用了,它们看起来是什么样的。他们进行了一场数字版的“寻宝游戏”,搜寻了 10,000 个开源软件项目(即代码对任何人可见且可免费使用的项目)。
1. 有多少人在使用它们?(采用率)
他们发现只有 466 个项目(约 5%)创建了这种 AI 手册。
- 类比: 这就像走进一栋拥有 10,000 间房间的巨型办公大楼,却发现只有极少数房间贴出了“新员工守则”的告示牌。我们仍处于这一趋势的非常早期阶段。
2. 手册里包含了什么?(内容与风格)
研究人员仔细检查了发现的 155 个 AGENTS.md 文件。他们发现了两个主要方面:
没有标准配方: 编写这些文件并没有统一的“正确”方式。有的短,有的长。有的列出规则,有的仅仅描述事物是如何运作的。
不同的“语调”: 开发人员与 AI 交谈的方式千差万别。研究人员将这些写作风格分为五种类型:
- 描述性 (Descriptive): “这就是我们的做法。”(仅仅陈述事实)
- 指令性 (Prescriptive): “这样做。”(给出直接命令)
- 禁止性 (Prohibitive): “不要这样做。”(设定边界)
- 解释性 (Explanatory): “这样做是因为……”(给出理由)
- 条件性 (Conditional): “如果发生 X,那么执行 Y。”(给出情境逻辑)
类比: 想象 155 位不同的经理试图为同一个实习生编写一本规则书。一位经理写的是一份严格的“禁令”清单,另一位经理写的是关于团队如何运作的友好故事,而第三位经理则写了一个复杂的“如果/那么”流程图。目前还没有一致性。
3. 手册会随时间变化吗?(演变)
研究人员通过查看“提交历史”(版本控制日志)来追踪这些文件随时间的变化情况。
- 稳定性: 大约一半的文件在首次创建后从未被更改过。
- 微调: 对于那些确实被更改过的文件,最常见的更新是添加新指令或微调现有指令。
- 类比: 一旦经理写好了规则书,他们通常就会不去管它。但当他们确实进行更新时,通常只是添加一条新规则或澄清旧规则,而不是重写整个文件。
核心结论
论文得出结论,我们目前正处于**上下文工程(Context Engineering)**的“西部荒野”阶段。开发人员正在实验如何与 AI 智能体交谈,但尚未达成一种标准的沟通方式。
研究人员将这些文件视为一个独特的“天然实验室”。因为这些文件是公开且受版本控制的,我们可以实时观察人类是如何学习如何与 AI 智能体“对话”的。目标不是现在就告诉开发人员该怎么做,而是理解他们目前是如何摸索出窍门的,以便我们最终能更好地帮助他们。
简而言之: 开发人员正开始为他们的 AI 助手编写规则书,但目前每本规则书看起来都不一样,而且还没有人确定哪种风格效果最好。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。