论文
召回陷阱:召回最大化 检索器 配置减少了固定预算代码上下文中的问题解决率
The Recall Trap: A Recall-Maximizing Retriever Configuration Reduces Issue Resolution in Fixed-Budget Code Context
摘要
代码助手的检索配置通常按召回率等指标优化,并默认检索改善能带来更高的任务成功率。本文报告代码修复中的受控案例,检验已知的相关性与多样性、检索目标与任务目标之间的权衡。在SWE-bench Verified上,研究把检索结果放入固定的12槽上下文包,禁用搜索工具,仅切换“每个文件只保留一个片段”的去重开关。开启去重时,参考文件出现在87.8%的上下文包中,关闭时为80.6%;但关闭去重、用文件覆盖广度换取文件内信息深度,反而提高单次修复成功率:gpt-5.6-sol从39.2%升至46.8%,提高7.6个百分点(n=500,McNemar精确检验p=0.0003);预注册的Qwen3.6-27B开放权重复现实验提高3.6个百分点(n=499,p=0.0133)。按代码仓库聚类处理后,两项结果仍成立。改善与同一文件中关键片段的数量有关,随机片段对照排除了仅由argmax选择造成的假象。该结果存在明确的适用范围:使用词法BM25检索器时方向逆转,下降3.2个百分点;允许智能体无限制使用Read工具时未检出改善;四种语言的SWE-PolyBench实验提高2.6个百分点,但不显著(N=617,p=0.056)。在严格的固定上下文预算下,应按任务表现对上下文打包策略做A/B比较,而不能仅凭检索指标决定是否按文件强制去重。