调用图写入grep,LocBench文件Acc@5提到87%

LARGER: Lexically Anchored Repository Graph Exploration and Retrieval

Yuntong Hu, Tongli Su, Liang Zhao, Bowen Zhu, Hasibul Haque

cs.IR, cs.AI, cs.LG

2026-05-08

LARGER不给agent新的图工具,只把AST图上的调用者和被调用者写进现有grep结果。LocBench文件Acc@5从Codex的74.1%升到87.0%,墙钟时间大约减半。

这篇在解决什么

仓库级 agent 先要定位。Claude Code、Codex 这类 CLI agent 靠 grep,快,但看不见 import、调用链、类型层级和代码-测试关系。LocAgent 那一类给模型新的图查询动作,召回更好,交互环被拆成「先查图、再搜文本」。Emory 这篇问的是:能不能既用上结构邻居,又不新增工具、不另开图数据库。

他们把任务写成「词面锚定的结构定位」:agent 自己的那次 grep 就是锚,图只负责把锚点周围高置信的局部邻域写回同一次搜索输出。

方法

仓库编成异构图,节点是目录、文件、类、函数,边覆盖 contains、imports、invokes 和跨产物链接(源到测试、源到文档)。边带来源置信度,社区检测给子系统先验。图存在 sidecar 里,按 commit diff 做惰性对齐,改过的文件才重解析。

每一步:策略模型仍只发出普通搜索;命中对齐到图节点,成为当前 active set;对每个锚在 K 跳邻域里按置信度阈值 θ 过滤,再取分数最高的 k 个邻居,塞进 grep 输出里的固定块(Related files、cluster、callers/callees、flow)。默认 k=10、θ=0.5。图证据由索引确定性生成,不经 LLM 改写。

理论侧给了两条保守结论:同样策略下,带图的上下文是词面上下文的超集,所以召回不会更差;每步多出来的 token 有上界 mk 个节点,步数变少时总花费可以更低。

结果

主实验骨干是 GPT-5.2,Claude Code 用 Opus-4.6,不能直接比绝对值。LocBench 560 题,MuLocBench 1100 道多文件题。Acc@k 要求 top-k 覆盖全部金文件。

方法LocBench Acc@5MuLocBench Acc@5
BM2549.324.5
LocAgent65.325.7
Codex74.150.0
Claude Code75.254.9
LARGER Fixed87.055.7
LARGER Tuned89.160.0

Fixed 相对 Codex:LocBench Acc@5 +12.9,Recall@5 90.1 vs 82.8。MuLocBench Acc@5 +5.7,Acc@1 却低 0.6(27.4 vs 28.0),Claude Code 的 Acc@1 仍最高(29.2)。Tuned 是按仓库扫超参的 oracle,只能当上限。

同骨干开关对照:打开 LARGER 提高 Recall@5,同时降低墙钟。相对 Codex,MuLocBench 从 139.9 秒/521.8K token 降到 99.9 秒/353K;LocBench Acc@5 74.1→87.0,时间 129.2→60.0 秒。图增强基线 CoSIL、LocAgent 都低于最强非图 agent,作者的判断是:图要嵌进现有搜索通道,拆成单独遍历会亏。

SWE-Atlas 上 Codebase QA 32.25 vs Codex 29.83 vs Claude 31.20;Test Writing 37.78 vs 32.22 vs 36.67。这是量表分数,不是正确率。MuLocBench 消融:去掉图扩展 Acc@5 从 55.7 掉到 48.2(-13.5%);去掉置信度 53.1;去掉社区 53.4;全去掉 46.8。

为什么重要

结构信号可以当 grep 的注释,而不必当新动作。对已经在跑 Claude Code / Codex 工作流的团队,这是侵入最小的接法:索引一次,搜索循环不用改。LocBench 上十几个点的 Acc@5 和大约一半的墙钟,说明少走弯路比多看邻居更划算。

Tuned 数字不要当部署预期。Fixed 才是可复现的工作点。MuLocBench 的 Acc@1 没有打赢 Claude Code,优势在短名单里把相关文件收全,不在「第一名永远对」。

局限与存疑

正文没有独立的 Limitations 节。能看出来的边界:MuLocBench Acc@1 仍落后;Tuned 是按仓库 oracle;SWE-Atlas 用量表 LLM 评审,和定位 Acc 不是同一量纲;图质量取决于多语言 AST、边置信度和社区检测,解析错了会把邻居写进 grep;in-house 方法共用 GPT-5.2,和 Opus-4.6 的 Claude Code 不能直接比绝对分;召回优势的理论证明假设相关节点落在词面锚的 K 跳、θ 阈值之内,锚点本身钉偏时图帮不上。

术语

原文与代码

社区讨论

相关论文

全部论文解读