Asta Lab · 全栈情报站AI FULL-STACK INTELLIGENCE每日 · 全栈 · 精选

AstaNews

AI 全栈每日情报

SHERLOC: Structured Diagnostic Localization for Code Repair Agents

如果你在做仓库级别的 coding agent——就是那种能在整个代码库里多轮调用工具、自己读文件改文件去修 bug 的系统——那这条值得停下来看。这类 agent 有个反直觉的成本结构:真正动手改代码之前,它得先搞清楚 bug 到底藏在哪个文件、哪段逻辑里,而这个"定位"环节往往就消耗掉将近一半的预算。SHERLOC(arXiv:2606.24820)针对的正是这一步。 要理解它的位置,得先看清现有做法的盲点。专门的故障定位框架这两年已经冒出来不少,但论文指出它们大多被当成"文件检索"任务来评测——也就是只看能不能把出错的文件捞出来。问题在于,修复 agent 拿到一个文件路径其实远远不够:它需要的是"为什么这里错了"的诊断上下文,而不是一个干巴巴的位置。定位做得准,却没把诊断信息一并交出去,下游修复就还得自己再摸索一遍。 SHERLOC 的全称是 Structured Hypothesis-driven Exploration and Reasoning for Localization,结构化的、由假设驱动的探索与推理。它的工程取向很克制:免训练(training-free),不做微调,也不依赖多 agent 编排。具体构成是三块——一个负责推理的 LLM、一组轻量的仓库探查工具、外加一套自我纠错(self-recovery)机制。换句话说,它不是靠堆模型或堆 agent 数量取胜,而是靠"让一个会推理的模型带着趁手的工具、走得稳"。这种思路对工程落地友好,因为不需要重训就能接入。 成绩上,论文报告它在多个模型规模上都达到了定位的 state-of-the-art:SWE-Bench Lite 上 accuracy@1 为 84.33%,SWE-Bench Verified 上 recall@1 为 81.27%。这里两个指标口径不同——acc@1 看排第一的定位是否命中,recall@1 偏向第一候选的召回——读数字时留意它们分属两个不同的基准。更有说服力的是规模对比:在约 30B 参数下,它能与其他 agentic 方法打平甚至超过,意味着不必上更大的模型也能拿到这个定位质量。 但定位准本身只是中间产物,真正的落点在它能不能让修复变好。论文把 SHERLOC 产出的位置和诊断结论注入到修复 agent 里,结果是 SWE-Bench Verified 上平均解决率提升 5.95 个百分点(pp),同时定位 token 降 36.7%、总 token 降 23.1%。也就是说,把"出错在哪"和"为什么错"一起递给下游,既省了钱又提了准——这正好回应了开头那个"一半预算花在定位"的痛点。 对不同栈的从业者,意义不太一样。做 coding agent 产品和 infra 的人最直接受益:这是一个免训练、可以挂进现有 pipeline 的模块,目标是降本提质,而不是又一个要从头训练的新模型。做评测和研究的人则可以关注它对"定位该如何被评测"的主张——从"文件检索"转向"可执行的诊断",这个评测视角的转变可能比单点分数更有长期价值。 诚实的保留也要说清楚。这些数字都是论文自报的单篇结果,等第三方在未污染条件下复现才好下定论;SWE-Bench Lite 与 Verified 是社区常用基准,但"约 30B 参数"具体指哪个底座模型、自我纠错的细节如何实现,原文摘要未给出,需要看正文。+5.95pp 是平均值,不同任务上的方差也未在摘要中披露。总体而言,它指向的方向——把定位从"给位置"升级成"给诊断",并用更小的模型省更多 token——对正在被定位成本拖累的 coding agent 团队是个务实的新选项。