1. 问题与动机
这篇论文讨论的不是“deep research agent 是否能搜索”,而是更底层的一个问题:当 agent 依赖搜索来完成多跳、开放域、证据密集的问题时,底层文本排序方法到底贡献了什么。现有 deep research 系统通常把搜索当成黑盒 API,agent 只看到搜索返回的网页或片段,很难判断失败来自推理、查询生成、检索召回、重排,还是上下文窗口截断。作者指出,这种黑盒化会遮蔽 IR 社区长期积累的检索单元、BM25 参数、稀疏/稠密召回、重排深度等设计经验。
动机里最关键的 gap 有三个。第一,deep research 常把网页当完整 document 返回,但网页平均长度很长,论文实验设置中返回文档会被截断到前 512 tokens;对于 130K context 的 gpt-oss-20b,若平均网页约 8K tokens,也只能容纳十几篇完整网页,因此 document-level retrieval 很容易发生信息丢失。第二,传统搜索中的重排已被证明有效,但 deep research 的“读者”是 LLM agent 而不是人,重排是否仍然提升最终 answer accuracy 并不清楚。第三,agent 生成的查询往往是 web-search-style 的关键词、短语、引号精确匹配,而许多神经检索器和重排器是在 MS MARCO 风格自然语言问题上训练的,训练-推理查询格式错配可能严重影响效果。
2. 方法详解
作者把 deep research text ranking 明确定义成 agent 的每一次 search invocation:agent 在某一轮 reasoning 后生成 search query,排序系统返回 top-ranked texts,这些 texts 再进入下一轮 reasoning。实验围绕 BrowseComp-Plus 进行,该数据集提供固定文档语料和人工验证相关性判断。因为原始数据只有 document-level corpus,作者额外构造 passage corpus,从而能比较“返回完整/截断网页”与“返回段落片段”两种检索单元。
实验使用两个本地部署 agent:gpt-oss-20b 和 GLM-4.7-Flash。gpt-oss-20b 的最大上下文窗口是 131,072 tokens,GLM-4.7-Flash 约 202,752 tokens;两者最大输出长度都设为 40,000 tokens,最大迭代次数设为 100,并用 vLLM 0.15 部署。每次 search call 返回 top-5 文档或段落,文档返回时截断到前 512 tokens,以避免网页过长耗尽 context。passage retrieval 的评估用 Max-P 策略,把命中的 passage 分数映射回 document,因为 BrowseComp-Plus 的相关性标注是 document-level。
检索器覆盖四类代表方法:BM25 作为 lexical sparse baseline;SPLADE-v3 作为 learned sparse retriever;RepLLaMA 和 Qwen3-Embed-8B 作为 single-vector dense retriever;ColBERTv2 作为 multi-vector late-interaction retriever。重排器选择三个效率-效果点:monoT5-3B,RankLLaMA-7B,以及带显式 CoT reasoning 的 Rank1-7B。monoT5 的 relevance score 来自输出 “true” token 的概率;Rank1 会生成推理 token 后再给 relevance 判断。实现上,BM25 用 Pyserini 默认参数,SPLADE/RepLLaMA/RankLLaMA/Qwen3-Embed 用 Tevatron,ColBERTv2 用 PyLate,monoT5 用 PyTerrier_t5。
为处理查询格式错配,作者提出 Query-to-Question, Q2Q。它把 agent 发出的关键词式搜索查询改写成自然语言问题,分两种:Q 只用原始 search query;Q+R 同时加入 agent 最近的 reasoning trace。例如原始查询 "61,880" football attendance,Q+R 会改写成“哪场足球比赛的 attendance 是 61,880”,比只看 query 更能恢复真实搜索意图。Q2Q 用 gpt-oss-20b 低 reasoning-effort 模式实现,并用 TREC-DL 2019 中抽样的自然语言问题作为 few-shot 示例。
3. 核心技术贡献
第一,论文把 deep research 的搜索问题拆成可复现实验,而不是只比较 end-to-end agent。它同时控制检索单元、retriever 类型、reranker 类型、rerank depth、agent 模型和 query format,能判断“搜索组件”对最终 accuracy 的影响。这比黑盒搜索 API 更接近工业搜索链路调优方式。
第二,论文证明 passage-level retrieval 在 deep research 中不是简单的 chunking trick,而是缓解 context budget 与 document length normalization 的关键设计。gpt-oss-20b 在 passage corpus 上用 BM25 达到 0.616 recall 和 0.572 accuracy,而 document corpus 上默认 BM25 只有 0.366 recall 和 0.259 accuracy。作者进一步说明,document-level BM25 对长度归一化参数敏感,截断到 512 tokens 或调大长度惩罚都能显著改善。
第三,论文重新校准了“更大的 dense retriever 一定更好”的直觉。单向量 RepLLaMA 和 Qwen3-Embed-8B 虽然参数更大,但在 agent 关键词式查询上经常不如 SPLADE-v3 和 ColBERTv2。原因是 learned sparse 和 late interaction 对关键词、短语、精确匹配更友好,而 single-vector dense 表示在新任务和新查询格式上容量受限。
第四,论文给出了 Q2Q 的边界:Q2Q+reasoning trace 对神经检索器和 reasoning reranker 有帮助,但对 BM25 可能伤害效果。也就是说,查询改写不是一律改成自然语言,而要看下游 ranker 的训练分布和匹配机制。
4. 实验结果分析
核心对比可以压缩成下表:
| 设置 | #Search | Recall | Accuracy | Completion |
|---|
| BM25 passage, no rerank | 30.97 | 0.616 | 0.572 | 0.980 |
| BM25 document, default | 32.22 | 0.366 | 0.259 | 0.805 |
| BM25 document, 512-token index | 28.00 | 0.642 | 0.513 | 0.812 |
| BM25 + monoT5 depth 10 | 29.89 | 0.660 | 0.631 | 0.971 |
| BM25 + monoT5 depth 20 | 28.96 | 0.701 | 0.674 | 0.960 |
| BM25 + monoT5 depth 50 | 27.57 | 0.716 | 0.689 | 0.974 |
| SPLADE raw query | 32.75 | 0.545 | 0.516 | 0.980 |
| SPLADE Q2Q(Q+R) | 31.70 | 0.585 | 0.557 | 0.983 |
| Qwen3-Embed raw query | 37.83 | 0.470 | 0.417 | 0.963 |
| Qwen3-Embed Q2Q(Q+R) | 35.82 | 0.507 | 0.459 | 0.965 |
最强结果来自 gpt-oss-20b + BM25 passage + monoT5-3B depth 50:recall 0.716,accuracy 0.689,平均 search calls 27.57。相比无重排 BM25 passage,recall 相对提升 16.23%,accuracy 相对提升 20.45%,search calls 下降 10.98%。这个结果很有冲击力,因为它只用 20B agent、BM25 和 3B reranker,就接近论文引用的 GPT-5 agent accuracy 0.701。
消融里最重要的是三个结论。第一,retrieval unit 非常关键。document corpus 默认 BM25 因长度归一化和截断问题表现很差;只索引前 512 tokens 使 recall 从 0.366 到 0.642,accuracy 从 0.259 到 0.513,分别是 64.2% 和 98.1% 相对提升。第二,rerank depth 越深通常越好:BM25-monoT5 从 depth 10 到 20,recall/accuracy 分别增加 6.21%/6.81%,search calls 减少 3.11%;从 20 到 50 又带来 2.14%/2.23% 增益,并减少 4.80% search calls。第三,显式 reasoning reranker 不一定更好。Rank1 有失败案例:它把独立关键词 “radiation” 和 “protein” 错当成一个语义单元,给无关 passage 打出 0.999 高分,说明 reasoning 可能误读关键词式查询。
Q2Q 的结果也很细。对 SPLADE-v3,Q2Q(Q+R) 相比 raw query recall 从 0.545 到 0.585,accuracy 从 0.516 到 0.557,相对提升 7.34% 和 7.95%。对 Qwen3-Embed-8B,accuracy 从 0.417 到 0.459。对 Rank1 reranker,Q2Q(Q+R) 也把 recall/accuracy 从 0.617/0.580 提到 0.638/0.613。但 BM25 上 Q2Q 不增反降,说明原始 keyword-style query 本来就适合 lexical retrieval。
5. 局限与未来方向
作者明确限制了研究范围:实验只考察 text ranking 在 deep research 中的作用,没有扩展到更多 agent 模型规模,也没有研究所有可能的 LLM search/reasoning 策略。GLM-4.7-Flash 的实验因 GPU 资源限制排除了 Qwen3-Embed-8B、Rank1 和部分重排深度;这意味着不同 agent、不同上下文长度和不同 search policy 下的结论仍需要复验。
另一个局限是 BM25 参数调优使用了 BrowseComp-Plus 全量查询,因为没有独立 validation set。作者也提醒,调参后的 BM25 不能和其他模型做完全公平的泛化比较。对工业落地来说,这点尤其重要:如果用线上查询日志调 BM25/RRF/rerank depth,必须保留时间切分或业务分桶验证,否则很容易过拟合某批 query。
作者未来方向集中在更系统地理解 deep research 中的 ranking 行为,包括 agent-issued query 与 ranker training query 的错配、passage/document 粒度选择,以及不同 re-ranker 对最终答案质量的贡献。论文没有深入讨论线上延迟、成本、索引更新和缓存,这些是工业搜索必须补上的部分。
6. 工业实践意义
对搜索/推荐从业者,最大启发是不要把 LLM search agent 的底层检索简单等同于“换成最大 embedding 模型”。在 deep research 这类多轮搜索中,agent 查询常常像真实用户搜索一样短、碎、包含引号、数字和实体名。BM25、SPLADE、ColBERT 这种保留词面匹配能力的检索器,在这种查询分布上可能比更大的 single-vector dense 模型更稳。
对社区 UGC 短文本搜索,可以直接落地三条策略。第一,召回层保留 lexical + learned sparse + dense/multi-vector 的多路结构,用真实 query 分布而不是单一 benchmark 决定权重。第二,把文档切分粒度纳入 A/B 设计:帖子、评论、问答楼层、长图 OCR 结果都可能需要 passage-level 或 block-level index,而不是整篇内容一个向量。第三,把 query rewrite 绑定到下游 ranker:BM25 适合保留关键词式 query,神经 ranker 可以尝试 Q2Q(Q+R) 或类似“查询+用户近期行为/会话上下文”的自然语言化改写。
部署上需要注意成本。论文的最佳设置使用 depth 50 reranking,虽然减少 search calls,但 reranker 本身会带来额外 GPU/CPU 开销。工业系统可先在 top 20 或 top 50 候选上离线复现类似曲线,找到 accuracy、latency 和成本的拐点,再决定是否按 query 难度动态增加 rerank depth。对于高频短 query,可缓存 BM25/稀疏召回结果;对于长尾复杂 query,可触发更深重排或 Q2Q。整体上,这篇论文把 deep research 的经验拉回了经典 IR 工程:检索单元、词面匹配、重排深度、查询格式和长度归一化,仍然是决定最终体验的核心变量。