搜索Agent提分记录
从 31 到 80 分:一条不训练模型的 Agent 优化路径
基于 Qwen3.5-35B-A3B,在 BrowseComp Plus(830 题)上将归一化 F1 从 31.43 提升至 80.74 的完整工程记录。感觉除了搜索,其他很多场景也可以使用,比如法律条文检索、历史故障相似案例检索等,只要有rag的地方,就都可以使用文中的一些技巧。
原始链接:Search Eval Harness(一):不训练,我是如何在Browsecomp Plus上把一个35B搜索Agent从29分优化到61分的
一、问题:信息链上的结构性断裂
BrowseComp Plus 是一个固定语料库的 deep-research 评测基准,包含 830 道需要多跳检索与推理才能回答的问题。它用静态的约 10 万篇文档替代了动态网页搜索,使得检索器与推理器的贡献可以被分离和精确测量。cite🛠web_search:1#9:~:text=BrowseComp+ is a fixed-corpus benchmark…reproducible deep-research evaluations
初始基线使用 Qwen3.5-35B-A3B(35B 总参数量、3B 激活参数的 MoE 架构,128K 上下文窗口)cite🛠web_search:1#6:~:text=Total Parameters: 35B…Active Parameters: 3B per forward pass 构建单轨迹搜索智能体,归一化 F1 仅 31.43 分。诊断后发现,失败并非因为模型"不够聪明"或"搜索不够努力",而是信息在从检索器到模型、从模型到答案的整个链条上发生了多次结构性断裂。
核心观察:最终正确率 ≈ 检索到候选 × 外显给模型 × 打开取证 × 正确综合证据 × 在预算内输出合法答案 × 独立探索互补路径 × 证据驱动的答案选择。任何一个环节断裂,后续环节再强也无济于事。
二、第一阶段:单轨迹基础架构修复(31 → 61 分)
2.1 终止协议与回答机会(+9.57 分:31.43 → 41.00)
旧框架没有可靠的终止协议。模型研究后常因轮次上限被直接截断,或 token 预算耗尽停在未闭合的 <answer> 标签中,526 题无答案——占总题数的 63.4%。
修复措施:
- 硬性预留 8192 token 给最终综合回答,防止答案阶段被截断
- 轮次上限到达时,最后一个合法工具调用仍执行完毕,不中途丢弃
- 最终作答使用独立的 user message,与工具调用阶段明确分离
- 无合法答案时允许一次有限重试
- 强制要求非空的
<answer>标签 - 连续两回合仅重复调用时由框架主动收口,避免无限循环
- 显式将单轮最大并行调用数设为 3,控制并发粒度
效果:无答案题从 526 骤降至 73,原始 F1 从 29.69 提至 40.99(归一化约 41 分)。这一步没有提升模型的推理能力,只是确保模型"有机会把答案说完"。
2.2 证据外显质量(+10.00 分:41.00 → 51.00)
旧工具链返回内容平均仅 1983 字符,且 95.2% 被二次截断;更致命的是,1.7B 参数的摘要模型对原始文档进行过度压缩,导致关键证据退化或丢失。
修复措施:
- 搜索返回全局去重重排后的前 10 条结果:第 1-5 名返回丰富原文片段,第 6-10 名返回简洁候选片段
open和find工具直接读取原文窗口,不再经过摘要模型
效果:单次返回内容平均提升至约 11400 字符(提升 475%),原始 F1 从 40.99 提至 51.30,总工具调用反而减少 39%。一个关键发现:用过 open 的 731 题平均分 57.42,未用的 99 题仅 6.11——差距达 51.31 分。这说明模型一旦能看到完整原文,就能有效利用;问题出在"看不到",而非"看不懂"。
2.3 候选池可持续探索(+6.00 分:51.00 → 57.00)
离线诊断显示:目标文档前 10 召回率仅 7.3%,前 50 召回率 47.5%。但旧框架固定只返回前 10 条,导致模型在相似查询上循环往复,始终看不到真正需要的文档。
修复措施:实现有状态候选翻页——首次搜索返回前 10 条;相同搜索词再次出现时返回轨迹未见的下一页(每页 10 条);内部最多探索前 50 名;候选池耗尽后才进入重复调用拦截。
效果:原始 F1 从 51.31 提至 56.84。116 题在后续页面首次看到目标文档,其中 70.3% 来自第 11-50 名。这证明前 10 条的召回率瓶颈是真实存在的,且翻页机制有效突破了它。
2.4 答案补救与中途复盘(+4.95 分:57.00 → 61.95)
答案补救:工具循环结束后,若模型输出中 <answer> 为空或只有"无法确定""证据不足"这类含糊表述,框架追加一条指令,要求模型只允许基于已搜集的证据,从已有候选中选出一个最可能的具体答案,补一次正常作答。关键细节:去掉 <answer> 预填,允许模型按熟悉格式先思考再作答——硬塞开头会破坏推理模型的生成结构,反而降低质量。这一步从 56.84 提至 57.71。
中途复盘:在连续重复调用或候选池翻完仍未有答案时触发,要求模型回答六个结构化问题(原题条件、现有候选、证据支持、已证否方向、缺失证据、下一步行动)。回答后模型带着这张"小纸条"回到正常搜索循环继续执行,不关闭工具、不强迫立刻作答。复盘迫使模型重新对齐原题条件和证据缺口,接下来的行动围绕"最缺的那条证据"展开。这一步从 57.71 提至 59.56,归一化 F1 达 61.95。
无效尝试(第一阶段):单纯增加轮次至 120 轮、直接简洁外显前 50 条、强制先打开文档、回答阶段预填 <answer>、第三次答案尝试、上下文重置(保留原问题但删除旧历史导致搜索失忆)——均未带来正向收益。
三、第二阶段:检索意图补全与多轨迹聚合(61 → 81 分)
3.1 双路检索融合(+9.36 分:61.95 → 71.31)
核心问题:模型与检索器之间存在严重的信息不对称。模型已经推理了数百字、确认了实体、排除了候选,但传给检索器的只有压缩后的短查询(如"某演员 父亲 执法人员")。检索器只能按字面匹配,返回的结果回答的是更宽泛的问题,而非模型当前真正需要的那一跳证据。
修复措施:保留两路互补检索并行执行——
- 第一路:用原始搜索词(保留精确人名、年份、短语)
- 第二路:用"当前推理 + 原始搜索词"(将模型已完成的推理上下文注入查询,让检索器理解查询在整题中的真实目的)
两路各自召回前 50 条,按排名加权融合(当前推理检索权重为原始检索的 2 倍)。
离线验证:在 260 题"困难 A 类"(目标文档从未进入前 10)中,原始检索前 10 命中 8/113,AgentIR 方式命中 59/113;融合后净增 50 题。
在线效果:归一化 F1 从 61.95 提至 71.31。一个反直觉的副产品:平均搜索调用从 17.75 降至 12.11(减少 31.8%),目标文档首次出现的中位步骤从 4 降至 1。这意味着超过一半的题在第一次搜索就把目标文档送进了模型视野——检索质量提升使模型更早结束,而非更努力搜索。
3.2 候选翻页与答案抢救(+2.14 分:71.31 → 73.45)
候选翻页机制从第一阶段复用,使 62 题额外看到目标文档,40 题额外打开或定位到目标文档,贡献明确。
答案抢救机制同样复用:工具循环结束后检查最终输出,若为空或含糊则再给一次基于已有证据的作答机会。共触发 99 次,52 次产出结构可接受的答案,但仅 8 题完全正确、35 题仍为零分,另外 47 次抢救也全部为零分。根本原因是:绝大多数触发抢救的轨迹失败在"根本没打开目标文档、证据缺失",强迫猜答案解决不了问题。结论:候选翻页有效,答案抢救无可靠正收益;复现 73.45 需保留该开关,但做精简通用方案时应关闭它单独消融。
3.3 多轨迹独立探索与目标盲聚合(+7.29 分:73.45 → 80.74)
73 分后的最大单一问题是:目标文档进入前 10 但未被打开(119 题,缺口 10.42 分)。增加轮次或扩大候选数量不对症——模型已经看到了正确候选,只是没选中去打开。
关键观察:同一模型重采样会产生互补路径。不同随机种子下,模型会选择不同的拆分条件、起始实体、桥接关系、文档选择,四条轨迹因此看到不同的证据集合。
轨迹生成:同一 Qwen3.5-35B-A3B、同一套双路检索与候选翻页、温度 0.6 / 核采样 0.95、4 条独立随机种子(2026-2029)轨迹。不预设"深搜/广搜/反证/时间线"等人工角色,多样性完全来自采样随机性。
单条轨迹 F1 分布在 72.57-73.60 之间,说明 73 分非偶然。最低分轨迹(种子 2028)加入前两条后,完全正确答案并集增加 27 题——证明收益来自互补而非择优。
聚合器:输入为纯文本提示,包含原问题、每条轨迹的候选答案、搜索和打开过的证据、通用结束状态。看不到标准答案、目标文档标注或事后得分。只能在已有答案中选择,不能发明新答案。这与多数投票有本质区别:三条轨迹可能因相同的早期误判得出同一个错误答案,而一条轨迹打开了真正关键的文档,只数票数会选错。
830 题统计:504 题可自动处理(单答案或全空);326 题需判断,全部成功解析;276 题候选间存在真实得分差异,聚合器 210 次选到较优答案(选择正确率 76.1%)。
逐级增益:2 条轨迹聚合 77.86 分,3 条 79.88 分,4 条 80.74 分。边际收益递减但第四条仍提供足够互补答案使总分过 80。完全正确并集:2 条 600 题(72.3%),3 条 627 题(75.5%),4 条 641 题(77.2%)。四条逐题最好上界为 84.90,聚合器拿到 80.74,选择环节仍有约 4.16 分的提升空间。
四、关键设计原则
-
不训练、不喂标注:所有组件均使用同一 35B 模型,无外部监督信号。提升完全来自系统层面的工程优化。
-
信息接口即推理:模型生成的查询不等于检索器接收的意图。双路检索补回了推理过程中的信息损失——这是 61 → 71 分的核心驱动力。
-
随机性即搜索宽度:单轨迹的随机性从缺陷转为资源,通过证据聚合将其转化为可控的探索空间。4 条轨迹的互补性证明,同一模型的不同采样路径可以看到不同的证据世界。
-
减法优于加法:最有效的两次改动——双路检索(搜索调用减少 31.8%)和多轨迹聚合(单轨迹搜索量不变但聚合不增加新搜索)——均减少了单轨迹的搜索量,而非增加。质量提升来自"更早看到正确候选"和"从互补路径中选出最优",而非"搜得更久"。
五、完整提升路径回顾
| 阶段 | 措施 | 归一化 F1 | 提升 |
|---|---|---|---|
| 基线 | 原始单轨迹 | 31.43 | — |
| Step 1 | 终止协议与回答机会 | 41.00 | +9.57 |
| Step 2 | 证据外显质量 | 51.00 | +10.00 |
| Step 3 | 候选池可持续探索 | 57.00 | +6.00 |
| Step 4 | 答案补救 + 中途复盘 | 61.95 | +4.95 |
| Step 5 | 双路检索融合 | 71.31 | +9.36 |
| Step 6 | 候选翻页复用 + 答案抢救 | 73.45 | +2.14 |
| Step 7 | 多轨迹独立探索与聚合 | 80.74 | +7.29 |
| 上界 | 四条逐题最优 | 84.90 | +4.16 |
从 31.43 到 80.74,总分提升 49.31 分,相当于相对提升 157%。整个过程中没有修改模型权重,没有引入外部标注数据,没有增加单轨迹的搜索预算——只是在信息流的每个节点上,修复了那些让正确证据无法到达模型、让模型无法输出有效答案的结构性断裂。
BrowseComp Plus 是由 Chen 等人于 2025 年 8 月发布的固定语料库 deep-research 评测基准,包含 830 道人工验证的问题,每题配有标准答案文档和困难负例,支持检索器与推理器的分离评估。cite🛠web_search:1#11:~:text=BrowseComp-Plus is a large-scale…deep-research agents
更多推荐



所有评论(0)