CAFE:自我改进的搜索智能体需要共同进化的反馈 CAFE: Self-Improving Search Agents Need Co-Evolving Feedback
智能体与批评者共享参数交替进化,在轨迹中主动纠错,领先最强RL基线2.1 EM
前置知识
GRPO(组相对策略优化)
GRPO 是 DeepSeekMath 提出的在线 RL 算法:不训练价值网络,而是对同一提示采样一组轨迹(本文每组 8 条),用组内奖励的均值 $\mu_x$ 和标准差 $\sigma_x$ 归一化得到优势 $A_i = (R_i - \mu_x)/(\sigma_x + \epsilon)$,组内所有 token 共享同一优势,再用 PPO 式裁剪目标更新策略。它省去了独立 critic 模型的显存与训练开销,是 Search-R1、IGPO 等搜索智能体 RL 训练的标准底座。
CAFE 的两大在线组件——CFE 奖励和反馈感知优势塑形——都直接建立在 GRPO 的组归一化框架之上,公式 (2)-(5) 全部是对 GRPO 的增补,不懂 GRPO 就无法理解塑形发生在哪一步。
结果奖励与稀疏信用分配
结果监督(outcome-supervised)只在轨迹结束时给二元奖励(答案对/错),中间每次查询、每次推理都拿不到直接信号。这是稀疏信用分配问题:终端正确性无法指出哪一步出错。对长时程搜索更麻烦的是,一个早期方向性错误的代价会传播到后续所有步骤;而被反馈“救回”的轨迹和一帆风顺的轨迹拿到同样的正奖励,奖励来源无法区分。
本文所有设计(CFE、优势塑形、RDPO)本质上都在为“反馈介入点周围”重新分配信用:CFE 跨 rollout 给“请求”动作定价,塑形在 rollout 内区分请求前后的角色,理解这一问题意识才能看懂各组件的动机。
DPO(直接偏好优化)
DPO 是一种离线偏好学习算法,从“偏好对”(chosen 与 rejected 回复)直接优化策略,无需训练奖励模型和 RL 采样。其损失随 $\log\frac{\pi(y_w)}{\pi_{ref}(y_w)} - \log\frac{\pi(y_l)}{\pi_{ref}(y_l)}$ 的差增大而降低,把策略推向 chosen、远离 rejected,同时被参考模型约束防止漂移。
本文的 RDPO 把 DPO 用在反馈生成上:chosen 是成功轨迹的反馈,rejected 是前缀匹配的失败轨迹的反馈,从而绕开“环境只给终端标签”的结果混淆。同时 DPO 的参考模型锚定特性也解释了为何共享参数下选它而非 SFT。
搜索智能体与多轮工具调用
搜索智能体以 LLM 为大脑,在环境中迭代执行“规划→发查询→读检索结果→再决策”的循环直到给出答案。训练后的 agent(Search-R1、R-Search 等)自己学会何时检索、如何改写查询。本文设定每条轨迹最多 30 次工具调用,使用 E5 检索器与固定本地语料库,沿 R-Search 协议评测。
理解这一交互结构是理解“轨迹内反馈”的前提:CAFE 的反馈必须插在活跃轨迹中间、在错误复合之前重定向搜索,这与 Reflexion 等轨迹结束后才复盘的事后反思有本质区别。
研究动机
结果监督搜索智能体(Search-R1、R-Search、IGPO 等)用终端二元奖励学会了何时和如何检索,但这种自主性是“向外”的——只学找什么外部知识,缺乏对自身搜索轨迹的内省。问题分三层。第一,长时程搜索中早期方向性错误没有即时纠正信号,代价会传播到整个后续轨迹:例如 agent 对初始候选集应用了某个约束却在后续步骤悄悄丢弃、把必需子目标留着不探索、或反复改写同一查询却不获取新证据——轨迹“开头正确、结尾失败”,终端奖励说不出错在哪。第二,已有的更细粒度信号(IGPO 的信息增益、TIPS 的置信度变化、局部状态比较)本质上是评估性而非指导性的:它们事后分配信用,把纠正推迟到未来的策略更新,无法重定向当前正在进行的轨迹。第三,提示式事后反思(Reflexion、Self-Refine、CRITIC)用的是未经训练的模型、在轨迹结束后才给出自然语言批评,既不能在错误复合前介入,也不随 agent 进化。而把反馈做成可学习的轨迹内干预会耦合两个角色:agent 必须学何时请求,且“被救回的轨迹”与“一帆风顺的轨迹”奖励完全相同(奖励混淆);critic 必须在没有真值的情况下,从被前置搜索和后续动作共同污染的结果中推断有效纠正,而这些失败模式还随 agent 提升不断漂移。
本文的目标是本文的目标是构建一个能“主动内省”的搜索智能体训练框架 CAFE(Coupled Agent–Feedback Evolution):在轨迹中间引入可选的反馈请求动作,让模型在检测到搜索卡住、变重复、找不到有用证据或对下一步低置信时请求批评性指导,在错误复合成失败之前重定向搜索方向。作者将其拆成三个研究问题:RQ1——轨迹内反馈应如何结构化、模型如何学会生成它;RQ2——agent 如何学会何时请求反馈、以及“被救回的成功”应该强化哪个行为;RQ3——单个共享模型如何让 agent 与 critic 两种能力随彼此进化而共同进化。工程目标上,作者希望只用一个 7B 级开源模型(Qwen2.5-7B-Instruct)同时扮演两个角色(避免维护独立 critic 的开销),在七个 agentic SearchQA 基准上超过现有 RL 训练的搜索智能体,并在六个域外基准上保持增益,同时降低答案级幻觉率。
与已有工作不同的是,独特切入角度在于把“自我改进的搜索”重新表述为耦合的 agent–feedback 学习问题,并指出两个时间尺度的耦合:轨迹内(agent 请求并使用反馈)与迭代间(最近 rollout 的结果更新反馈生成,改变下一轮双方可用的经验)。与现有工作的本质差异有三点。其一,反馈不是事后总结而是轨迹内的可选干预——最接近的共同进化方法 ECHO 也要等轨迹结束才调用 critic,无法阻止错误复合。其二,为解决“救回的轨迹与完美轨迹同奖”的混淆,CAFE 不去标注单条轨迹内的某一步,而是用提示级的 call–skip 成功差距(CFE)从组间对比中估计反馈效用,再配合把“请求前(导致跑偏)”与“请求后(负责修复)”token 分开计分的优势塑形。其三,为解决 critic 与策略分布漂移失配,RDPO 从最新在线 rollout 中挖掘前缀匹配的成功/失败偏好对来更新 critic,且两角色共享同一套参数——每次更新都同时改变另一个角色的数据分布,从而实现真正意义上的共同进化,而非一次性训练一个静态监督者。
核心方法
先说直觉:人在检索卡住时会问自己“我哪一步走偏了、下一步该试什么”。CAFE 把这个动作显式化——给搜索智能体的动作空间加一个 $\langle request\_feedback \rangle$ 动作,触发时同一个模型切换成 critic 角色,读入当前轨迹并生成诊断性的下一步建议,然后切回 agent 角色从增强后的上下文继续搜索,两个角色推理时分立但共享骨干。技术路线分三段。第一段 SFT 引导:直接从稀疏结果学“何时请求”太难,所以先从基础 agent 自己的失败轨迹构造恢复演示——保留错误前缀、插入请求动作、用教师模型 Kimi-K2.5 定位最早出错轮并生成反馈与成功续写,只保留最终答案正确的修复轨迹,让模型在“自己会去的状态”上学会请求、生成和使用反馈。第二段在线 RL:以 GRPO 为底座,加入 CFE 奖励(跨 rollout 估计“请求反馈值不值”)和反馈感知优势塑形(rollout 内区分请求前后的信用归属)。第三段离线 RDPO 与迭代交替:每 100 步在线 RL 后,从最新 rollout 挖掘前缀匹配的偏好对做一次 DPO 更新(学习率压到 $2\times10^{-7}$ 防止覆盖任务能力),重复 5 轮,共 500 在线 RL 步。整体在 8 张 A100 上训练约两天。
核心创新有三个本质区别。第一,SFT 数据不替换失败:传统蒸馏用教师生成“理想轨迹”,CAFE 保留基础 agent 自己犯错的前缀直到最早错误轮 $t^\star$,再插入请求并给出修复——模型学到的是“在自己实际会到达的状态上如何求救和得救”,而非策略永远到不了的完美状态。第二,奖励混淆的解法是组间比较而非步级标注:GRPO 的单一优势 $A_i$ 会把“把搜索带跑偏的前缀”和“负责修复的续写”一起强化,等于奖励了 agent 本应抛弃的行为。CAFE 用 CFE 的 call–skip 成功差距 $\hat{u}(x)$ 给“请求”动作本身定价(请求组的成功率减去跳过组的成功率),再用优势塑形把 pre 段优势下调 $\lambda g_i$(带 0 下限)、post 段上调 $\lambda g_i$,实现“不奖励走偏、专门奖励修复”。第三,critic 不是静态模型而是共同进化的一半:RDPO 的偏好对全部来自最新 on-policy rollout,且要求首个请求处历史前缀 Jaccard 相似度 $\geq 0.7$ 以控制混杂;由于两角色共享参数,每个 RDPO 更新直接作用在下一轮采样的策略上。单侧消融证明这不是锦上添花——只改 agent(84.2 峰值后停于 83.6)或只改 critic(71.3)都会平台化,交替更新才能到 86.6。
方法步骤详情
完整流程分两阶段。阶段 I(SFT 初始化):收集基础 agent 的失败轨迹集合 $\mathcal{F}$;对每条 $\tau$,教师 Kimi-K2.5 定位最早错误或停滞轮 $t^\star$;保留前缀 $\tau_{\leq t^\star}$ 并插入 $\langle request\_feedback \rangle$;教师生成纠正反馈及反馈条件下的续写,得到修复轨迹 $\tau^+$;仅当 $\tau^+$ 到达正确答案才加入 $D_{SFT}$。阶段 II(迭代 $k=0..4$,每轮 100 在线步 + 1 次 RDPO):(a) 在线优化——每个 prompt 采 $n=8$ 条 rollout;按是否请求反馈分成 call/skip 两组,计算 $\hat{u}(x) = \frac{1}{|G_{x,call}|}\sum_{j} r_j - \frac{1}{|G_{x,skip}|}\sum_{k} r_k$(某一路由缺失时退回 batch 级估计);CFE 奖励 $R_i^{CFE} = r_i + \beta C_i u_i - \gamma[n_{fb,i}-1]^+$,其中 $\beta=0.5$、$\gamma=0.05$ 只惩罚第二次及以后的请求;组内归一化得 $A_i$;对请求轨迹按首个请求切分为 $T^{pre}, T^{call}, T^{post}$ 三段,塑形为 $\tilde{A}_{i,t} = \max(A_i - \lambda g_i, 0)$ / $A_i$ / $A_i + \lambda g_i$($\lambda=0.5$,$g_i=\text{clip}(u_i, 0, b)$,$b=0.5$),观测与反馈 token 不进策略损失;GRPO 更新(lr $10^{-6}$、KL 系数 0.001、batch 128)。(b) 离线优化——从本轮 rollout 按 prompt 分桶,配对 called-correct 与 called-incorrect 轨迹,前缀 Jaccard $\geq \tau_{sim}=0.7$ 且反馈长度可比,经 LLM 裁判二次质检得 $D_{fb}^k$;从 $\theta^{k+\frac{1}{2}}$ 做 RDPO(lr $2\times10^{-7}$、2 epochs)得 $\theta^{k+1}$,进入下一轮。
技术新颖性
技术新颖性可从四个坐标系看。相对细粒度信用分配工作(IGPO 信息增益、TIPS 置信度势、StepSearch 步级 PPO、GiGPO 组中组),它们都在改进“评估信号”,CAFE 引入的是“指导性信号”——反馈直接改写上下文,且首次为“反馈请求”这一元动作本身设计奖励(CFE)与信用边界(塑形把请求前后当作对立角色计分)。相对自反思工作(Reflexion、Self-Refine、CRITIC、S2R),反馈从 prompt 驱动的事后行为变成训练出来的、可选的轨迹内行为,并显式建模“何时不该请求”(repeat 惩罚、路由熵保持 0.496 bits 防止坍缩)。相对共同进化工作(ECHO 轨迹后批评、ReSeek 证据判断与重规划),CAFE 的反馈在轨迹中间介入,能阻止错误复合。理论上,Theorem 1 证明当扰动范数 $\Delta_{CAFE} = B_\pi[c_{norm}\eta_R + \lambda b] < \|G_{task}\|$ 时,$\langle G_{CAFE}, G_{task}\rangle \geq \|G_{task}\|(\|G_{task}\| - \Delta_{CAFE}) > 0$,即 CFE 与塑形不会逆转原任务更新方向——为“学反馈不伤任务能力”提供形式化保证。工程上,单模型双角色省掉独立 critic 的训练与推理成本,但代价是两种能力在参数层面互相牵制,作者只能用极低 DPO 学习率管理这一张力,这既是巧妙之处也是隐患。
实验结果
主要结果分五块。第一,7B 主表(Table 1):CAFE 平均 EM 52.5 / F1 60.7,是所有方法中最高的平均 EM 和第二高 F1,比最强 RL 基线 IGPO(50.4/59.4)高 2.1 EM / 1.3 F1,且六个域外基准全部一致优于 GRPO。训练阶梯清晰:基座 38.1/47.9 → 反馈 SFT 40.8/50.1 → +GRPO 49.7/58.0 → +CAFE 52.5/60.7。任务结构分析很说明问题:相对 Search-R1,四个多跳基准平均 +7.4 EM / +5.9 F1,三个单跳基准只有 +1.3 EM / +1.3 F1——印证“中间纠错对多跳搜索价值最大”。第二,规模泛化(Table 4):3B 上 CAFE 达 48.8/57.4,超过 Search-R1-3B(42.7/51.9)与 R-Search-3B(42.9/52.4),接近部分 7B 基线。第三,幻觉(Table 5):基座平均 29.88% → GRPO 17.63% → CAFE 12.60%,NQ 降 10.8、MuSiQue 降 9.4 个百分点,每个基准都优于 GRPO。第四,长时程(Table 7):BrowseComp-Plus 上 4.4/6.8 → SFT 5.3/7.9 → GRPO 6.8/9.9 → CAFE 7.7/10.6。第五,机制验证:在线消融(Table 2)CFE 单独 +1.1 EM、塑形单独 +1.5 EM / +1.4 F1、合并 51.9/60.3;离线消融(Table 3)RDPO 全面优于 RSFT(52.5/60.7 vs RSFT 最高 51.2/58.8);调度(Table 6)100×5 最优,50×10 为 49.7/58.0、250×2 为 49.9/57.8;共同进化(Figure 2a)feedback-only 67.7→71.3、agent-only 峰值 84.2 后收于 83.6、交替达 86.6;cross-play(Figure 3)显示第 3-5 轮每个 agent 与同代 critic 配对最佳,固定最终 agent 换第 5 代 critic 使 EM 80.6→84.0、F1 86.6→89.2;路由熵 CAFE 0.496 bits vs GRPO 0.221、GRPO+CFE 0.099。案例研究:同一 BrowseComp-Plus 轨迹题,BASE 用 25 次搜索调用仍答错(含 8 次逐字重复查询),CAFE 2 次调用答对,调用数差 12.5 倍。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 七个 agentic SearchQA 基准平均(Qwen2.5-7B) | 平均 EM | 52.5 | IGPO 50.4(最强 RL 基线);GRPO 49.7 | +2.1 EM(vs IGPO) |
| 七个 agentic SearchQA 基准平均(Qwen2.5-7B) | 平均 token-level F1 | 60.7 | IGPO 59.4;GPT-5-Mini 60.4 | +1.3 F1(vs IGPO) |
| 答案级幻觉率(七基准平均) | 幻觉率 (%),越低越好 | 12.60% | GRPO 17.63%;基座 29.88% | 相对 GRPO -5.03 个百分点,相对基座 -17.28 |
| 七个基准平均(Qwen2.5-3B) | 平均 EM / F1 | 48.8 / 57.4 | R-Search-3B 42.9 / 52.4;Search-R1-3B 42.7 / 51.9 | +5.9 EM / +5.0 F1(vs R-Search-3B) |
| BrowseComp-Plus 深度研究任务(7B) | EM / F1 | 7.7 / 10.6 | GRPO 6.8 / 9.9;基座 4.4 / 6.8 | +0.9 EM / +0.7 F1(vs GRPO) |
| 共同进化对照实验(2Wiki,EM/F1 均值,5 轮) | 均分 | 交替优化 86.6 | agent-only 83.6(峰值 84.2);feedback-only 71.3 | +3.0(vs agent-only 最终值) |
局限与改进
作者明确承认或可从文中推出的限制:其一,反馈请求预算固定为 1($\gamma$ 只惩罚第二次及以后的请求),多次、分层干预的空间没有探索;其二,所有评测都在固定本地语料库 + E5 检索器的受控环境完成,真实 web 的噪声、动态与对抗性未经验证;其三,BrowseComp-Plus 上绝对分数仍低(7.7 EM),长时程任务收益方向一致但幅度有限。我补充的观察:第一,SFT 初始化强依赖教师模型 Kimi-K2.5 的错误定位与反馈质量,教师偏差会系统性进入初始化数据,而论文没有消融教师选择;第二,CFE 的 $\hat{u}(x)$ 是 prompt 级统计,每组仅 8 条 rollout,估计方差高,batch 级 fallback 只部分缓解且把同批所有单路由 rollout 拉平;第三,请求时机靠模型“自觉”,0.496 bits 的路由熵被解读为健康探索,但也可能包含误请求,论文没有报告请求行为的精确率/召回率;第四,共享参数意味着两种能力互相牵制,DPO 学习率必须压到 $2\times10^{-7}$,暗示稍大的离线更新就会破坏任务能力,方法对超参敏感;第五,反馈不具备跨任务记忆,每条轨迹从零诊断;第六,3B 基座起点极低(11.0/21.2 EM/F1),其大幅提升部分来自 SFT+RL 流水线本身而非 CAFE 特有组件。
独立分析的弱点
独立分析的弱点与改进方向。弱点一:教师依赖。错误定位与反馈生成都靠 Kimi-K2.5,换弱教师可能显著降低 $D_{SFT}$ 质量。改进方向:用自举方式(模型多次采样的自一致性投票)定位最早错误,或用结果反推的最小修复集做弱监督定位。弱点二:CFE 统计功效不足。8 条 rollout 的 call/skip 组经常缺一边,只能退回 batch 级常量,削弱 per-prompt 区分度。改进:用历史 $\hat{u}(x)$ 的指数滑动平均或贝叶斯收缩估计,或自适应地把采样预算分配到能力边界附近的 prompt(论文已用“至少一条反馈路成功 + 一条无反馈路失败”筛选训练 prompt,可以把筛选和估计进一步耦合)。弱点三:单次请求预算是硬约束。BrowseComp 级长任务可能需要多次干预,$\gamma$ 惩罚一刀切。改进:把预算做成学出来的策略(按信息增益动态开放请求),或分层请求(轻量检查 vs 深度诊断)。弱点四:评测生态封闭。固定语料库使结论对“检索器—语料”组合敏感。改进:在在线 web 环境(BrowseComp 原版)或对抗性语料上复验,并报告对检索器更换的鲁棒性。弱点五:共同进化可能放大自我偏好。cross-play 显示同代对齐,模型可能对“自己写的反馈”过拟合形成回音室。改进:周期性引入外部强模型的反馈做校准集,或在 RDPO 中混入域外 prompt 的偏好对。弱点六:无跨轨迹记忆。每次反馈从零诊断同类错误。改进:维护经验库,把高频失败模式(如实体混淆、约束丢失)沉淀为可检索的检查清单供 critic 调用。
未来方向
作者提出的方向与可延伸的方向。作者层面:论文核心论点“行动与批评是耦合学习系统,每一方都在改变另一方学习的经验”暗示共同进化框架可推广到其他 agent 任务(代码生成、网页操作、具身任务),只需替换环境与动作空间;Theorem 1 的方向保持条件是通用的“辅助奖励不伤任务”判据,可用于指导过程奖励、格式奖励等混合奖励设计;反馈内容演化分析(Figure 4b)显示 critic 的关注点会自动从低级错误(误读结果、实体混淆)转向高级错误(重复查询、冗余调用、逻辑失败),这一自动课程现象值得显式建模与利用。延伸层面:第一,把“请求反馈”推广为连续的干预决策(何时、问什么、问多深),而非二元动作;第二,参数解耦的共进化——用 LoRA 分支承载 critic 角色,缓和共享参数的牵制,允许更高的 DPO 学习率与更频繁的离线更新;第三,与 self-rewarding 范式结合,让 agent 在没有外部教师时自我定位错误、自我构造修复数据;第四,跨任务的经验积累与反馈迁移(元学习式 critic),让一处学到的失败模式服务新任务;第五,scaling 研究:在 14B/72B 与更长时程任务上检验共进化收益是否随模型能力增长而变化——直觉上越强的 agent 失败越隐蔽,critic 越需要同步进化;第六,把 CFE 的 call–skip 定价思想推广到其他“可选元动作”(自检、回溯、放弃、换工具)的效用估计。
复现评估
复现评估:论文正文与附录均未给出开源代码仓库链接,代码开源情况未知。有利因素:所有评测数据集公开(2WikiMultihopQA、HotpotQA、MuSiQue 用 Trivedi et al. 2023 测试划分各 500 例,Bamboogle 用 FlashRAG 全部 125 例,NQ/PopQA/TriviaQA 各随机抽 500 例,BrowseComp-Plus 公开),评测协议完全明确(E5 检索器 + 固定本地语料、每轨迹最多 30 次工具调用、沿用 R-Search 协议);超参数完整披露($\beta=0.5$、$\gamma=0.05$、$\lambda=0.5$、$b=0.5$、$\tau_{sim}=0.7$、在线 lr $10^{-6}$ / KL 0.001 / batch 128 / n=8 rollouts、RDPO lr $2\times10^{-7}$ × 2 epochs、100×5 调度);agent 与 critic 的 prompt 模板全文给出(附录 B);训练伪代码(Algorithm 1)清晰。算力需求:8×A100、在线 RL 约 2 天(7B 模型),另需 SFT 阶段的 Kimi-K2.5 教师推理——对学术实验室属于可负担但偏重。复现难度:中等偏高。最大不确定性在 SFT 数据构造:“定位最早错误轮”与“生成能修复的反馈”依赖教师能力,论文未报告 $D_{SFT}$ 的规模与教师定位准确率,这一步质量直接决定后续上限;其次是 GRPO+CFE+塑形的工程实现细节(塑形与 PPO 裁剪的相互作用、fallback 估计的实现)需要自行摸索。若作者释放代码与 SFT 数据,复现可信度将大幅提升;仅凭论文复现,预期分数会有数个点的波动。
论文图表