CORVUS: Context Optimization and Reduction Via Underlying Synchronization for LLM Coding Agents
CORVUS 为 LLM 编程智能体引入了一种新颖的轨迹架构,通过维护一个同步的当前文件内容注册表,将文件读取动作与其观测值解耦,从而消除陈旧快照和冗余重读,在保持性能的同时显著降低标记使用量和推理周期。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一个这样的世界:你拥有一个超级聪明的机器人助手,只需通过对话,它就能编写计算机代码、修复漏洞并构建整个软件程序。这并非科幻小说,而是“LLM 编码智能体(LLM coding agents)”的现实。这些是人工智能模型,它们扮演着初级开发者的角色:思考问题、查看文件、做出更改并检查自己的工作。但问题在于:这些机器人的短期记忆力有问题。为了记住自己做过什么,它们会为每一次思考、行动和结果记录一份运行中的“日记”。随着任务变得越来越复杂,这份日记也会变得越来越长。最终,日记会变得如此庞大,以至于机器人会感到困惑,忘记最重要的细节,并因为试图在仅仅五分钟前做过的事情上阅读一本 500 页的书而开始犯傻。这种由于信息过多导致 AI 变得更笨的现象,被称为“上下文腐烂(context rot)”。
于是有了 CORVUS,一个旨在解决这个记忆混乱问题的聪明新系统。CORVUS 不会让机器人的日记无节制地增长陈旧、过时的笔记,它更像是一个神奇的、活生生的图书馆。它意识到代码是在不断变化的。如果机器人读取了一个文件,然后编辑了它,接着又再次读取,那么日记中旧的笔记就是无用的垃圾。CORVUS 阻止了机器人每次都把文件的内容写下来。相反,它保留了一个机器人需要的文件的“同步列表”。在机器人做出新的决策之前,CORVUS 会悄悄检查实际的计算机文件,抓取最新的版本,并将它交给机器人。这样,机器人始终拥有最新、最干净的信息,而不会有一个充斥着重复、陈旧页面的臃耗日记。结果是:机器人工作得更快、运行成本更低,且犯错更少,同时保持了记忆的轻量化与专注度。
问题所在:“陈旧快照”陷阱
要理解为什么 CORVUS 意义重大,我们首先需要了解这些编码智能体通常是如何工作的。想象一下,你正试图修理一个漏水的水龙头,但你是蒙着眼睛进行的,而且你只能通过之前拍的一系列照片来观察房间。
在传统方法中,每当智能体(我们的机器人)查看一个文件时,它都会对该文件进行“快照”,并将其粘贴到其历史日志中。如果文件后来发生了变化——无论是由于机器人编辑了它,还是人类开发者进场进行了微调——日志中那个旧的快照依然保持不变。它变得**陈旧(stale)**了。
论文作者发现,这造成了两个主要的头疼问题:
- 重复读取: 由于旧的快照被埋在冗长的历史记录深处,机器人经常忘记自己已经看过这个文件。于是它再次读取文件,拍摄另一个快照并将其粘贴进去。这就像是因为找不到位置而把同一页书读了五遍。在测试中,他们发现机器人有 26% 的时间在重复阅读已经看过的文件。
- 陈旧上下文错误: 更糟糕的是,机器人可能会根据一个陈旧的快照来尝试编辑文件。想象一下,机器人看到一行代码写着“第 10 行:打开灯”,但在现实世界中,那行代码在五分钟前就被删除了。机器人试图编辑“第 10 行”,结果失败了,感到困惑,并不得不花费额外的时间和精力去弄清楚到底出了什么问题。
旧的解决方法是“反应式”的。这就像是等到你的背包里装满了石头,重到你抬不起手时,才试图把石头扔出来。论文认为这太晚了。真正的解决方案是在连把石头放进背包之前就阻止这一行为。
解决方案:“实时同步”
作者提出了 CORVUS(通过底层同步实现的上下文优化与缩减)。请不要把 CORVUS 仅仅看作是一本日记,而要把它看作是一个实时馈送(live feed)。
CORVUS 不会将文件内容粘贴到历史日志中,而是使用一种名为 sync_file 的特殊工具。当机器人说“我需要查看 speech_recognition.py”时,CORVUS 不会将文本复制到日志中,而是会在日志中放入一条微小且轻量级的笔记,写着:“同步:speech_recognition.py。”
在后台,CORVUS 维护着一个同步文件集(Synced File Set)。这是一个由机器人当前正在处理的文件组成的特殊列表。在机器人做出任何新决策(每一个推理周期)之前,CORVUS 都会执行一次快速的“上下文同步(Context Sync)”。它会前往实际的计算机,抓取该列表上每个文件的当前最新版本,并将它们注入到机器人的提示词(prompt)中。
这改变了一切:
- 没有重复: 机器人永远不会看到两个版本的同一个文件。它只能看到一个、当前的最新版本。
- 没有陈旧数据: 如果文件发生了变化,下次机器人思考时,它会自动获得新版本。它永远不会尝试去编辑已经不存在的代码。
- 更轻量化: 历史日志保持精简,因为它只包含机器人的想法和行动,而不包含大规模的文件文本块。
研究发现:更快、更便宜、更聪明
研究人员在两个极具挑战性的编码任务上测试了 CORVUS:SWE-POLYBENCH_VERIFIED(包含 Java、JavaScript 和 TypeScript 任务)以及 SWE-BENCH PRO(以复杂的企业级问题为特色)。他们在包括 CLAUDE SONNET 4 和 QWEN3-CODER-480B 在内的四种不同的强大 AI 模型上运行了这些测试。
结果令人印象深刻,证明了保持上下文新鲜感能显著提高 AI 的效率:
- 减少浪费的阅读: CORVUS 将重复文件读取的情况减少了 22% 到 86%。机器人不再浪费时间去重读已经掌握的文件。
- 步骤更少: 由于机器人不再被旧数据干扰,它完成任务的速度更快。推理周期(步骤)的数量下降了 15% 到 37%。例如,在一个模型上,步骤从平均 45.03 降到了 28.22。
- 提示词更短: 最终的“提示词”(发送给 AI 以完成任务的消息)缩短了 15% 到 32%。
- 节省资金: 由于 AI 的成本取决于它处理的文本量,这些节省量累积起来非常可观。在某些任务中,成本降低了高达 50.28%。例如,一个花费 2.62。
- 速度提升: 就总时长而言,整个过程完成了高达 40% 的加速。
至关重要的是,论文指出,机器人并没有因为阅读的文本变少而变得“更笨”。其成功率(正确修复 Bug 的频率)与旧方法相比保持在相当水平,在某些情况下甚至略有提升。
大局观
作者还检查了 CORVUS 是否能与其他试图清理混乱历史的方法协同工作。他们发现,CORVUS 与这些“反应式”清理工具是最好的搭档。CORVUS 从源头上(上游)阻止混乱发生,而其他工具则负责清理残留的杂物(下游)。当两者结合使用时,它们可以节省更多的 token 和资金。
简而言之,CORVUS 表明,对于 AI 编码智能体而言,若要实现真正的效率,它们不仅要擅长记忆过去,更要擅长与现在保持连接。通过将“读取文件”的行为与“文件内容”解耦,转而与代码库保持实时同步,我们可以构建出更快、更便宜、且不易受到“上下文腐烂”困扰的智能体。论文并未声称这解决了 AI 的所有问题,但它确实展示了:一个简单的结构性改变——将静态日记更换为实时馈送——可以极大地改变这些数字助手的工作表现。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。