Context Pruning for Coding Agents via Multi-Rubric Latent Reasoning
本文介绍了 LaMR,这是一个结构化上下文剪枝框架,它利用多准则潜在推理和基于抽象语法树的监督,将代码相关性分解为语义和依赖两个维度,从而在保持或提升编码智能体性能的同时显著减少令牌使用量。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象你是一位才华横溢的侦探(AI 编程代理),正试图破解一起复杂的案件(修复软件项目中的漏洞)。为了破案,你需要翻阅成千上万页的警方报告、证人证词和证据文件(代码仓库)。
问题:“纸张过多”陷阱
目前,这些 AI 侦探将大部分时间和精力都耗费在阅读文件上。海量的文本让他们应接不暇。
- 问题所在: 他们阅读所有内容,包括无关紧要的页面,比如报告上的陈旧咖啡渍或证人的午餐订单。这浪费了他们的“脑力”(Token 预算),使得寻找关键线索变得更加困难。
- 旧有的修复方案: 之前的工具试图通过简单地删除任何看似不立即重要的内容来缩减阅读清单。但它们过于粗糙。它们可能会因为某页没有提及主要罪行就将其删除,即使该页包含了理解犯罪现场关键的信息(如地图或嫌疑人名单)。这留给侦探的是一份支离破碎的拼图,迫使他们回头索要缺失的页面,从而浪费了更多时间。
新方案:LaMR(智能图书管理员)
这篇论文介绍了 LaMR(潜在多准则,Latent Multi-Rubric),它就像一位超级聪明、专业化的图书管理员,在侦探开始阅读之前帮助其整理文件。
LaMR 不使用单一规则来决定保留什么,而是利用两套不同的眼镜来审视每一行代码:
“语义”眼镜(它说了什么?):
- 它寻找直接回答侦探问题的行。
- 类比: 如果侦探问“谁偷了饼干?”,这副眼镜会高亮显示“约翰拿走了饼干”这句话。
- 旧有问题: 如果某行只是写着“约翰”(一个定义)或“导入约翰”(一个设置),旧工具可能会将其删除,因为它没有明确提到“偷窃”。
“依赖”眼镜(理解它需要什么?):
- 它寻找将故事串联起来的结构性粘合剂。
- 类比: 即使“约翰拿走了饼干”是主要线索,你也需要包含“约翰是嫌疑人”的页面,或者显示约翰住哪里的地图。没有这些,这条线索就毫无意义。
- 创新点: LaMR 意识到,某些行之所以重要,仅仅是因为它们支持其他行。即使这些“支持性”行本身看起来并不引人注目,它也会保留它们。
工作原理:两步流程
双团队审查:
LaMR 不只问一个问题。它同时运行两个独立的检查。一个团队检查“直接证据”,另一个团队检查“结构支持”。- 比喻: 想象一位电影剪辑师。一位剪辑师剪掉无聊的场景(语义),而另一位剪辑师确保电影逻辑流畅,没有跳跃剪辑(依赖)。
“查询自适应”守门人:
根据侦探询问的内容,LaMR 决定赋予每个团队多大的权重。- 如果侦探问“登录的逻辑是什么?”,LaMR 会 heavily 依赖语义团队。
- 如果侦探问“为什么应用程序会崩溃?”,LaMR 会倚重依赖团队,以确保保留所有必要的设置代码(导入、错误处理程序),从而使崩溃原因变得可理解。
“清理”小组(AST 修复):
有时,即使有两个团队,某一行也可能被意外删除。LaMR 设有最后一道安全网。它利用代码的“蓝图”(称为 AST)进行检查:“嘿,我们删除了‘如果’语句,但保留了‘否则’部分。这坏了!”它会自动将缺失的结构部分放回原处,确保代码依然有效。
结果:更快、更智能、更省钱
该论文在现实世界的编码任务(如修复大型软件项目中的漏洞)上测试了此系统。
- 阅读更少: LaMR 帮助 AI 在解决相同问题时,阅读减少了 30%(Token 数量)。
- 结果更好: 由于 AI 不再被无关噪音分散注意力,也没有丢失结构性的“粘合剂”,它实际上解决问题的效果更好,或者至少与阅读所有内容时一样好。
- 不再“回溯”: 旧工具经常删除必要的行,迫使 AI 意识到自己陷入困境并再次请求文件。LaMR 防止了这种情况,节省了时间和金钱。
总结
LaMR 就像一位聪明的助手,它不会仅仅扔掉“无聊”的纸张。相反,它理解一张看似无聊的页面可能是理解旁边精彩页面的关键。通过区分“说了什么”和“理解它需要什么”,它为 AI 侦探提供了一份精简、整洁且组织完美的案件档案,使其能够以更少的精力更快地破案。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。