跳转至

2026 年 5 月以来的 Search Agent:结构化记忆、过早承诺与检索的实际贡献

今年夏天我读 search agent 论文的时间大多夹在 rebuttal 之间,读得比较零散。ACL 结束后,我又在日常工作中用了一段时间 Deep Research 类产品,此前被我归为实现细节的几个问题开始显得关键。

早期的 search agent 基本是 ReAct 加一个搜索 API;现在的系统更接近一个多轮控制过程,需要决定发出什么 query、在上下文中保留什么、何时展开分支,以及如何避免把参数记忆当作检索证据。过去四个月的学术论文和几篇工业界技术笔记,讨论的核心基本就是这四个决策。

反复出现的三个方向

作为训练对象的搜索策略

搜索应当作为多轮策略来训练,单次 retriever 调用无法刻画其中的决策。

MemSearcher(ACL 2026 Findings)对训练侧问题的表述最清楚。把完整轨迹拼接进上下文时,上下文长度随轮数无界增长;改用紧凑的 memory 后,每一轮的优化上下文又各不相同。他们提出 multi-context GRPO,把轨迹级 advantage 分配到每一轮,使写入 memory 的策略与搜索策略联合训练。这个问题与我在多轮 agent 上反复遇到的 credit assignment 问题基本一致:奖励只落在最终答案上时,模型无法区分中途某次搜索是提供了有用信息,还是只增加了成本。

ITER(2026 年 8 月)和稍早的 LRAT 系列工作从 retriever 一侧得出对应的结论:人类点击日志不适合作为 agent 检索的监督信号。Agent 在第 t 步发出的 query 同时条件于原始问题和此前的子查询。用这类轨迹训练 dense retriever,并把此前步骤中已经有用的文档作为 redundancy negative,能在 InfoSeek-Eval 和 BrowseComp-Plus 上带来 7% 到 13% 的提升,这一提升在多个 agent backbone 上都成立。我以前认为改进检索主要靠换用更强的 embedding 模型,这些结果说明发出 query 的 agent 及其上下文才是决定检索质量的主要因素。

免训练的方法中,HypoSearch(2026 年 9 月)是我最近推荐最多的一篇。单轨迹 agent 容易过早承诺:遇到分叉时选定一条路径,之后的 tool call 大多在为这条路径寻找支持。HypoSearch 先生成一组轻量假设,在数量有限的独立分支中分别探索,比较各分支的证据后再给出答案。在 BC-small 上,Qwen3.5-122B 的准确率从 46.7 提升到 60.0,所用 tool call 还少于五条独立 rollout。这一思路与多轮策略优化中的 tree grafting 相近,两者都避免第一条看似合理的路径占满上下文。

IGPO(EMNLP 2026 Industry Track,自 5 月起已上线)处理的是部署中的问题。商品目录持续变化,搜索策略无法固化在模型权重中。作者把 policy guideline 和 inventory fact 分开处理,在 14 天的 A/B 测试中报告了 3.17% 的 CTR 提升。实验室论文很少讨论这类设定,许多 search agent 默认检索对象是静态的 Wikipedia dump,而线上搜索面对的是持续更新的数据。

带出处的结构化记忆

Memory 正在走向结构化,原因是原始轨迹中混有未经核实和已被推翻的内容。

ReTree(2026 年 8 月)把搜索过程组织成一棵证据树,每个节点保存有界长度的摘要、带出处的证据和修订历史。新证据与旧结论冲突时,ReTree 回到引入该结论的节点进行改写,并剪除建立在该结论之上的分支。保留完整轨迹的 ReAct 每步推理所用的上下文是 ReTree 的 1.27 到 1.51 倍,准确率最多低 25.6 个点。这篇论文值得关注的地方不在压缩本身,而在于没有出处信息的压缩只能丢弃内容,无法修正下游推理。

SearchAtlas(2026 年 9 月)从诊断角度处理同一问题。它把轨迹解析为 evidential query graph,识别出的过程错误与最终答错之间的相关性,强于让 LLM judge 直接阅读原始日志得到的判断。这些过程错误包括证据碎片化、问题中的约束没有传递到最终答案,以及未经验证的参数知识混入推理。只按最终答案字符串打分,训练出的 agent 会倾向于用搜索确认已有答案,而不是收集证据。

Anthropic 关于 dynamic filtering 的技术笔记(配合 Sonnet 与 Opus 4.6)从工业界得出一致的结论。搜索结果进入上下文之前先由代码过滤,BrowseComp 和 DeepsearchQA 的平均分因此提升 11%,输入 token 减少 24%。性能瓶颈在于允许模型看到哪些内容,浏览更多页面对此帮助有限。

参数知识对搜索评测的干扰

许多看起来是搜索的行为,实际上是模型在核对自己已经知道的答案。

LiveBrowseComp(2026 年 5 月)让我开始怀疑 BrowseComp 上的分数。作者把这一现象称为 Intrinsic Knowledge Dependence:agent 不调用工具也能答对最多 44.5% 的 BrowseComp 题目,发出的 query 有一半以上来自模型内部的假设而非检索到的线索,移除支撑证据后表现甚至低于 closed-book 基线。换成 335 道依赖最近 90 天事实的题目后,closed-book 准确率降到 2% 以下,带搜索的分数下降 25 到 40 个点,模型之间的排名也随之翻转。

这一结论针对的是评测方法,而不是某个榜单。训练集和评测集覆盖的都是模型参数中已有的知识时,训练奖励的是核对能力而非搜索能力,因此我不会再只用 BrowseComp 训练搜索策略。

我会采用的 benchmark

我会把评测拆成四项任务分别报告,而不是汇总成一个数字。

任务 Benchmark 理由
真实网页上的困难多跳问题 BrowseComp / BrowseComp-ZH 仍是默认的压力测试,但受参数知识污染
分离 retriever 与 reasoner 的贡献 BrowseComp-Plus(ACL 2026) 固定约 10 万篇文档的语料。BM25 + Search-R1 为 3.86%,GPT-5 为 55.9%,GPT-5 + Qwen3-Embedding-8B 为 70.1%
检验 agent 是否真的在搜索 LiveBrowseComp 335 道依赖最近 90 天事实的题目,排除依赖参数记忆的捷径
接近真实使用方式的深度调研 DeepResearch Bench、DR-Arena、LMSYS Search Arena 评测长报告与成对偏好;DR-Arena 实时构建信息树,与 Search Arena 排名的 Spearman 相关达到 0.94

GAIA、WebWalkerQA、HLE、xbench-DeepSearch 和 InfoSeek-Eval 仍适合作为低成本的回归测试集,但我不会只凭其中某一个来选择方法。

我最希望 RL 论文更多采用 BrowseComp-Plus。在 live-web API 上,“比 Search-R1 高 4 个点”这类结论几乎无法解释;固定语料才能区分增益来自 retriever、策略,还是一次更有利的 SERP。

我反复思考的几个问题

只用 outcome 奖励的 GRPO 在搜索轨迹上是欠定的,Search-R1++(2026 年 2 月)已经报告,在这一设定下 GRPO 是最不稳定的优化器,除非加入 action-level penalty,F1 奖励会使模型退化为拒绝给出答案。MemSearcher 的 multi-context GRPO 把 credit 分配回每一轮,我认为这个方向是对的。但我还没有看到有说服力的 token 级或 span 级 credit 方法,能够说明“答案正确是因为检索到了这句话”。

过早承诺是搜索场景中的典型失败模式,但它的成因具有一般性。HypoSearch 对分叉的分析描述的是一个缺乏探索能力的策略:第一个 query 稍有偏差,后续轨迹就主要在为这个偏差寻找支持。先分支再比较目前仍是 harness 层面的技巧,它同样可以被训练进策略本身。

Retriever 和 agent 应当联合训练,ITER 的消融也支持这一点:原始问题加上历史子查询是最稳定的 query 表示,此前有用的文档是最有效的负例。这既是模型问题,也是 retriever 与 agent 之间的接口设计问题。

评测已经成为方法的一部分:如果 LiveBrowseComp 上的排名与 BrowseComp 不一致,那么“BrowseComp SOTA”衡量的是参数记忆与搜索的混合能力,而不是搜索能力本身。我更倾向于成对报告两个数字,一个来自静态、可分解的 BrowseComp-Plus,另一个来自在线、有时间窗口的 LiveBrowseComp 或 DR-Arena。

我还不确定这个领域是否已经想清楚,search agent 究竟是 偶尔检索的推理器,还是 偶尔推理的检索器。过去四个月的论文在向后者倾斜,却仍在用为前者设计的指标做评测,这种错位是我反复回到的问题。

2026.09.12