深度解读 · LLM / 深度搜索 Agent 训练数据
结构复杂 ≠ 真搜得动: 给搜索 Agent 喂「抗捷径」数据
现有方法靠堆图结构复杂度造难度,但模型总能找到更便宜的「识别捷径」绕过预期搜索过程。FORT 把捷径分析变成数据合成的控制旋钮,仅靠 SFT 就训出同尺寸最强搜索 Agent。
原文:arXiv 2606.12087 · 论文阅读 · RUCAIBox(人大 AI Box) · 解读视角:search-agent 训练实操启发
一句话抓住重点
训练深度搜索 Agent 需要「答案必须搜够证据才能拿到」的可验证题,但把图结构堆复杂并不等于真的难搜 ——模型常能走一条更便宜的识别路径绕开预期的多步检索。FORT 把这种「捷径」形式化为四类风险 (证据共覆盖、单线索选择性、暴露常量、先验绑定),并在实体选择→证据图构造→问题生成→对抗精修 四阶段逐一压制;用产出的轨迹仅做 SFT,FORT-Searcher(激活仅 3B)就在同尺寸开源搜索 Agent 中取得最佳综合成绩 。
141.0
FORT 数据求解步数 $\widehat{\Omega}$
01 · 问题在哪
为什么「图越复杂」的数据,训出来的 Agent 反而没变强?
深度搜索 Agent 的目标能力不是检索,而是在开放网络上持续发现证据 :多轮改写查询、找到难找的信息、判断证据可靠性、串联零散线索后才给出答案。要训这种能力,需要「答案只有搜够证据才能拿到」的可验证题。
主流合成方法靠堆结构 造难度——增加跳数 / 图形状、加分层约束、提升证据分散度(treewidth)。问题是:这些结构先验只定义了「预期的解题过程」,却不保证 Agent 真执行时也走这条路 。
⚡ 核心错位
一道题可以线索很多、证据图很长,但只要求解器能在实际搜索时找到一条更便宜的识别路径,它
依然很简单 。在这种数据上训练收益有限——因为它几乎不激励模型去做长程搜索、规划与信息综合。
🧱
结构复杂度(intended)
跳数、图形状、约束数——你以为的难度
🏃
实现难度(realized)
Agent 真跑时被迫付出的检索成本——真正的难度
02 · 难度框架
把「真难度」写成公式:由最便宜的识别路径决定
论文用一个「捷径感知」的难度框架把这件事说清楚。一道任务记为 $q=(\mathcal{X},\mathcal{C}_q,\Sigma)$:$\mathcal{X}$ 是答案空间,$\mathcal{C}_q$ 是问题表达的约束(线索)集合,$\Sigma$ 是检索接口(如网页搜索)。对任意线索子集 $\mathcal{P}$,$\mathrm{Ans}(\mathcal{P})$ 是只用这些线索后剩下的候选池:
$$ \mathrm{Ans}(\mathcal{P})=\left\{x\in\mathcal{X}:\bigwedge_{c_i\in\mathcal{P}}c_i(x)=1\right\},\qquad \mathrm{Ans}(\mathcal{C}_q)=\{y^{\star}\} $$
题目良定义:全部约束唯一锁定金标答案 $y^{\star}$
关键洞察:一个「无先验、不瞎猜」的参考求解器 $\Pi_{\mathrm{post}}$ 不需要验证所有线索 ,只要找到某个已足以唯一识别答案的子集就行。于是任务本身强加的成本(纯后验成本)下界为最便宜识别路径 的长度:
$$ D_{\mathrm{post}}(q)\;\geq\;Q_{\Sigma}^{\star}=\min_{\mathcal{P}:\,\mathrm{Ans}(\mathcal{P})=\{y^{\star}\}}\;Q_{\Sigma}(\mathcal{P}) $$
难度由「最便宜的能锁定答案的子集路径」决定,而非线索总数
而单条路径成本又被两个量同时下界:
$$ Q_{\Sigma}(\mathcal{P})\;\geq\;\max\!\left(M_{\mathrm{ev}}(\mathcal{P}),\;\mathrm{dep}(\mathcal{P})\right) $$
$s(\mathcal{P})$ 线索子集的选择性 :剩余候选数 $|\mathrm{Ans}(\mathcal{P})|$。越小越「一击命中」
$M_{\mathrm{ev}}(\mathcal{P})$ 验证该子集所需的独立证据获取次数 。被一条网页同时覆盖多条线索 → 它变小
$\mathrm{dep}(\mathcal{P})$ 路径的串行依赖深度 。题面暴露了本该后续才发现的常量 → 它变小
求解器侧再叠一层:具体模型可以靠先验知识省掉一部分搜索。记实际成本 $\Omega(q,\pi_0)=D_{\mathrm{post}}(q)-U_{\pi_0}(q)$,其中 $U_{\pi_0}(q)$ 是先验带来的成本削减 。难度坍塌就发生在 $Q_{\Sigma}^{\star}$ 被压小,或 $U_{\pi_0}(q)$ 被推大这两条通道上。
💡 我的看法
这个框架最值钱的一句话是:
难度的下界是「最便宜识别子集」而不是「全部约束」 。我们做 search-agent 数据时常默认「线索越多越难」,但只要任意一个线索子集就能唯一定位答案,模型就会奔向那条捷径。换句话说——
难度不是你加了多少约束,而是你有没有堵住所有便宜的旁门 。这直接解释了为什么很多「看起来很复杂」的合成题,训练曲线却不动。
03 · 四类捷径
模型会从哪四扇「后门」溜走?
论文把可操作的捷径归为四类:前三类通过压低 $Q_{\Sigma}^{\star}$ 起作用(route-level,题目结构层面),第四类通过推高 $U_{\pi_0}(q)$ 起作用(solver-level,模型层面)。
捷径 它是什么 压低了哪个量 层级
单线索选择性 single-clue selectivity 某一条 / 一小撮线索就把候选缩到一两个 $s(\mathcal{P})\!\downarrow$ → $Q_\Sigma^\star\!\downarrow$ 路径级
证据共覆盖 evidence co-coverage 一条网页 / 片段同时验证了多条预期线索 $M_{\mathrm{ev}}\!\downarrow$ → $Q_\Sigma^\star\!\downarrow$ 路径级
暴露常量 exposed constants 题面直接给出本该后续检索才发现的名字/日期/数字 $\mathrm{dep}\!\downarrow$ → $Q_\Sigma^\star\!\downarrow$ 路径级
先验绑定 prior-knowledge binding 模型在证据支撑前就凭参数化知识说出答案 $U_{\pi_0}\!\uparrow$ → $\Omega\!\downarrow$ 求解器级
⚡ 注意:第四类是「模型相关」的
前三类是题目本身的结构缺陷,换谁来做都偷得了懒;
先验绑定却因模型而异 ——同一道需要长程检索的题,对一个「恰好背过这个冷门实体」的模型来说就直接秒了。所以根治先验绑定的手段(选长尾实体)跟根治结构捷径的手段是两套思路。
04 · 轨迹信号
难度看不见?用三个可观测信号给数据「体检」
$s,M_{\mathrm{ev}},\mathrm{dep},U_{\pi_0}$ 这些理论量在开放网络里无法精确计算。论文转而用三个从真实轨迹里能直接量出来 的信号来诊断「实现难度」:
⏱️
$\widehat{\Omega}$ · 求解成本
成功轨迹的平均检索调用次数。高 ≠ 难,可能在答案出现后空转
🎯
$\overline{T}_{\mathrm{hit}}$ · 答案命中时刻
答案首次在证据/生成里出现的步号。越晚 = 前置搜索越长
🧠
$\widehat{p}_{\mathrm{prior}}$ · 先验捷径率
证据锚定之前模型就说出答案的轨迹占比
$$ \widehat{\Omega}=\frac1N\sum_{i=1}^{N}|\tau_i|,\quad \overline{T}_{\mathrm{hit}}=\frac1N\sum_{i=1}^{N}T_{\mathrm{hit}}(\tau_i),\quad \widehat{p}_{\mathrm{prior}}=\frac1N\sum_{i=1}^{N}\mathbf{1}\!\left[T_{\mathrm{model}}(\tau_i)\lt T_{\mathrm{tool}}(\tau_i)\right] $$
$T_{\mathrm{hit}}=\min(T_{\mathrm{tool}},T_{\mathrm{model}})$;模型先于工具说出答案 → 计为先验绑定
🔥 关键诊断现象
论文实测:
OpenSeeker 的 $\widehat{\Omega}=84.7$(看着很长),但 $\overline{T}_{\mathrm{hit}}$ 只有 9.3、先验率高达 31.9 ——也就是说答案第 9 步就出来了,后面 75 步都在「事后验证 / 绕路 / 空转」。$\widehat{\Omega}$ 与 $\overline{T}_{\mathrm{hit}}$ 之间的大缺口,正是「假长」数据的指纹。
💡 我的看法
这套「轨迹体检三件套」对我们最有直接价值——它
不依赖任何理论量,拿现成的强 Agent 跑 200 条样本就能算 。我建议把它做成我们自己 search 数据集的常规体检指标:尤其盯住
Ω - T_hit 这个缺口,缺口大说明你的题「长而不难」,多半在浪费训练算力。这比单看平均轨迹长度靠谱得多。
05 · FORT 合成方法
把捷径分析「反过来」:四阶段逐一堵门
FORT(F ramework o f Shortcut-R esistant T raining-Data Synthesis)把难度框架当成「反向构造问题」:不是让题看起来复杂,而是让便宜识别路径更少、先验绑定更难 。它在一个内部「证据图」工作区上操作(节点=真实实体,边=可核验事实),最后才把子图渲染成自然语言问题。
阶段 1
图初始化
选长尾根实体(治先验绑定)+ 预挖环结构种子(治暴露常量)
→
阶段 2
图构造
多源采集 + 派生事实 + 选「单看普通、合看致命」的通用事实
→
阶段 3
问题生成
隐去中间实体名、把精确常量模糊成真实范围/类别/间接描述
→
阶段 4
对抗精修
强 Agent 实跑每道草稿,按轨迹信号修复过易 / 过难
论文 Fig.2: FORT 抗捷径合成流水线。① 绿框「图初始化」从 Wikidata 候选里按主题覆盖 / 实体冷门度 / 信息密度过滤根实体,并生成初始环;② 蓝框「图构造」由 enricher(多源采集→派生事实→事实校验)与 expander(弱事实选择→子节点扩展)迭代交互,长出推理图 $\mathcal{G}$;③ 橙框「问题生成」做答案选择+子图剪枝、线索组合、模糊化,产出草稿题;④ 紫框「对抗精修」由对抗 Agent 诊断,分「捷径易解」(修捷径/加强模糊)与「初始无解」(修歧义/收窄模糊)两路,最终输出精修题。
四类风险 → 四组构造控制
捷径风险 FORT 的对策 作用机理
先验绑定 选无英文维基页的长尾根实体;对抗发现先验则换根 降低 $U_{\pi_0}(q)$
暴露常量 用预挖环种子;生成时隐去中间名、模糊精确常量 保住 $\mathrm{dep}(\mathcal{P})$
证据共覆盖 多源异构采集(维基/网页/学术/地图)+ 构造派生事实 抬高 $M_{\mathrm{ev}}(\mathcal{P})$
单线索选择性 优选「单看普通、合看才识别」的通用事实 抬高 $s(\{c_i\})$,堵死小子集
# 派生事实的四种构造器(让答案不会在单条证据里逐字出现)
coincidence bridging 巧合桥接
count aggregation 计数聚合
numerical relation 数值关系
meta-fact extraction 元事实抽取 ← 单条网页搜不出,必须综合
💡 我的看法
三个设计我认为最可迁移:
(1) 长尾根实体 + 预挖环种子 ——环结构让你能用「关系」间接指代而不暴露实体名,这是把 $\mathrm{dep}$ 撑起来的巧招;
(2) 派生事实 ——「两个事实的交集 / 计数 / 数值关系」天然抗 keyword 检索,是堵证据共覆盖的好工具;
(3) 精确常量模糊化 (把日期改成「数字和为 7 的年份」),消融里这一步去掉后难度掉得最狠。
对我们的实操启发:合成数据的最后一道工序不该是「质检过滤」,而该是「对抗精修」——拿强 Agent 实跑,按 $T_{\mathrm{hit}}$ 把题校准回「可解但搜得久」的甜区。
06 · 训练 & 主结果
只用 SFT、激活 3B,打平甚至超过百亿级开源 Agent
基座是 Qwen3-30B-A3B-Thinking (推理时仅激活约 3B / 30B,256K 上下文)。只做 SFT,不用 RL :6 epoch、global batch 64、最长序列 262,144、bf16、cosine LR(峰值 $2\times10^{-5}$)。推理用「上下文管理」协议:rollout 内保留工具结果以复用证据;到达轮次上限仍无答案则清空历史、从原题重启 。
论文 Fig.1: FORT-Searcher(蓝)vs 同尺寸开源(灰)vs >30B 或闭源(浅蓝)在 BrowseComp / BrowseComp-ZH 上的得分。FORT-Searcher 在 BrowseComp 取 72.2 (同尺寸最高,超 MiroThinker 67.0),在 BrowseComp-ZH 取 75.0 ——是表中全部开源 Agent里的最佳中文成绩 ,且超过了不少 >30B 大模型(如 GLM-5、Step 3.5 Flash)。
BrowseComp · FORT-Searcher(~3B) 72.2
BrowseComp · MiroThinker-1.7-mini 67.9
BrowseComp · Qwen3.5-35B-A3B 61.0
BrowseComp-ZH · FORT-Searcher 75.0
同尺寸开源里 综合分 66.2 最高 :超 MiroThinker-1.7-mini 1.6 分、超 Qwen3.5-35B-A3B 6.3 分;在 BrowseComp、BrowseComp-ZH、xbench-DeepSearch-2505 上均第一。
🔥 上下文管理的威力(容易被忽视)
消融显示「到顶清空重启」这一个推理 trick 在难基准上收益巨大:
BrowseComp +16.3 分(55.9→72.2)、BrowseComp-ZH +12.9 分(62.1→75.0) ;但在其他基准上仅 +0.7~3.1 分。原因:BrowseComp 类题更易陷入低效搜索路径,重启给了模型换条路探索的机会。
💡 我的看法
对我们最直接的启发是
「数据质量 > 训练范式」 :FORT 用纯 SFT + 3B 激活就打平百亿级 RL Agent,说明
当数据真的逼模型长程搜索时,SFT 就能学到行为,RL 不是必需的入场券 。另一条要划重点的是:
那 +16 分的「清空重启」是几乎零成本的推理侧改造 ,值得我们在自家搜索 pipeline 里先复现验证——它和数据质量是正交的两个增益来源。
07 · 消融 & 证据
逐一拆掉抗捷径组件,难度像滑梯一样塌下来
累积消融(在 2K 题上,每行比上一行多去掉一个组件,用同一强 Agent 测准确率,准确率越高 = 题越简单 ):
配置 Acc.(越低越难) $\widehat{\Omega}$ $T_{\mathrm{hit}}$ $\widehat{p}_{\mathrm{prior}}$
完整 FORT 29.0(最难) 141.9 46.5 11.4
逐步移除组件… ↑ 一路变易 ↓ ↓ 提前 ↑
全部移除 81.6(最易) 43.7 11.8 22.3
在这个累积顺序里,去掉「模糊化」造成的难度跌幅最大 ——印证混淆/模糊对提升搜索难度尤其关键。
对抗精修:不只是「加难」,而是双向校准
草稿类型 $\widehat{\Omega}$ 精修前→后 $\overline{T}_{\mathrm{hit}}$ 前→后 $\widehat{p}_{\mathrm{prior}}$ 前→后
捷径易解型 33.9 → 82.7 12.4 → 31.4 17.0 → 12.0
初始无解型 (无解)→ 123.0 (无解)→ 50.2 —
捷径题被「修难」、无解题被「修可解但仍搜得久」——精修把两端都拉回甜区。
数据集横评:FORT 的「真难度」最高
数据集 $\widehat{\Omega}$ $T_{\mathrm{hit}}$(越晚越好)
REDSearcher(最强开源基线) 92.1 18.7
FORT 141.0 46.9
同一诊断设置下,FORT 不只是轨迹更长,而是答案命中被推到第 46.9 步 (REDSearcher 仅第 18.7 步)——证明它延长的是「前置搜索」而非事后空转,且先验率没有因此升高。轨迹级代理指标(低 $R_{\mathrm{low}}$、高 $R_{\mathrm{ev}}$、高 $\widehat{C}_{\mathrm{dep}}$、低 $\widehat{p}_{\mathrm{prior}}$ 等)也全部朝期望方向移动。
💡 我的看法 · 这篇对「微信搜索做 search-agent」的三条落地建议
① 把「轨迹体检」纳入数据准入: 任何合成 / 采购的 search 数据,先用强 Agent 跑 200 条算 $\widehat{\Omega}$、$\overline{T}_{\mathrm{hit}}$、$\widehat{p}_{\mathrm{prior}}$,盯死 $\widehat{\Omega}-\overline{T}_{\mathrm{hit}}$ 缺口与先验率,缺口大 / 先验高的数据直接打回。
② 中文场景尤其值得复刻: BrowseComp-ZH 上 75.0 是全开源最佳,说明 FORT 的长尾实体 + 模糊化思路在中文长尾知识上同样成立——而这正是微信搜索的主战场。
③ 先抄两个低成本组件: 「精确常量模糊化」(消融里增益最大)和「到顶清空重启」(+16 分、纯推理侧),这两个不依赖重训,可以最快验证收益。
解读基于 《FORT-Searcher: Synthesizing Shortcut-Resistant Search Tasks for Training Deep Search Agents》 (RUCAIBox,arXiv 2606.12087)· 图表与数据均来自原文
本页为通俗中文导读,含整理者见解、不代表原作者立场 · 建议结合 arXiv 原文 阅读 · 部分解读为 search-agent 训练视角的延伸
⌂ 返回首页
≡ 返回「论文阅读」专栏