你的 Agent 其实是「模型 + 脚手架」:交替优化让小模型 Agent 涨 24 个点

  • 关联论文:2609.00196

现在做 Agent 训练的人,都踩在一个隐形的坑里:把"模型能力"和"外面那圈代码"当成两件独立的事。算法同学负责微调权重,Agent 同学负责调提示词和工具路由。两边各自变强,但每次一边动了,另一边就悄悄成了新的天花板——你费劲调好的工作流,被一次权重更新打回原形。

更尴尬的是,主流"联合优化"方法(RAFT、Self-Refine 之类)联合的往往只是"权重 + 一段提示词"。可提示词只是 harness 的一小部分:工具选谁、控制流怎么转、状态存哪、失败怎么重试——这些真正决定 Agent 能不能干活的逻辑,都在提示词之外,根本没被优化到。

KRAFTON 的 WHALE(Weight-Harness Alternating LEarning)给出的答案朴素得有点反直觉:别管哪个更重要,轮流优化就行。在 Qwen3.5-2B/4B 上跨搜索问答、数学推理、国际象棋谜题三个领域,最佳平均 8 次采样准确率比"只训权重""只搜 harness"和 Fast-Slow Training 基线高 4.15 到 24.38 个百分点。

为什么重要

一个 Agent 的实际表现由两件事共同决定:模型权重,和围绕模型的 harness——管理上下文、工具调用、状态、控制流的整套脚手架。论文最有价值的一个观察是:瓶颈不是固定的,它会在任务之间换位。

在搜索问答任务上,harness 搜索用少得多的 rollout 数就追上了只训权重的峰值准确率,说明瓶颈在脚手架;在数学推理上,harness 搜索在权重更新之前几乎纹丝不动,只有权重先到位,harness 优化才开始有意义。

这直接推翻了"先训模型、后调脚手架"的一次性分段式流程——因为分段式在早期做的 harness 搜索是无效功,后期权重又被早期那版 harness 卡住。论文的结论是小步交错(多轮小相位交替)在准确率和 rollout 成本上都优于一次性分段式。

核心机制

WHALE 的循环只有两步:

  • Phase A · 权重更新:冻结当前 harness,用它采样数据做在线拒绝采样微调。所谓在线拒绝采样,是对每个提示采样多条回答、滤掉错误的,用剩下的做 SFT/DPO——比 PPO 稳,比离线方案更适配 harness 同步变化的情况。
  • Phase B · harness 搜索:冻结刚更新的权重,把 harness 当可调对象去搜索评分,保留目前见过的最佳版本。

两个操作者都是黑盒接口,可以随便替换——想更激进就把 Phase A 换成 GRPO。

真正的设计难点在什么时候切换。太频繁浪费算力,太稀疏又错过另一侧的改进。论文给了两条规则:固定相位时长,适合算力预算明确的团队(比如"总共 8 块 H20 训 3 天,两边对半分");以及基于训练信号的自适应耐心规则,监控改善速度,达标才换边。工程上建议从固定时长起步,摸清数据分布再切自适应。

证据边界

这部分得实话实说:

  • 社区对比数字(SemIf 81.0%、Hopper 82.3%、reflex 79.2%、Plumb 89.6%)多为间接引用;4.15–24.38 pp 这个区间跨度高达 20 个点,三个领域各贡献多少没有分解,跨任务照搬要小心。
  • JevBench 公共集只有 231 条题,官方测试集私有,论文报的是诊断准确率而非正式排行榜。
  • 实验只覆盖 Qwen3.5-2B/4B 两个 backbone,是否 instruct 版、LoRA 还是全参,论文都没明确交代;SearchQA 具体数据集、数学题难度等级同样未说明。
  • 论文已开源代码(github.com/krafton-ai/WHALE,Apache 2.0),工程复用信号很强——但读 README 和核 PDF §4 是必要的动作。

工程局限

  • 依赖可判定的 reward:rejection sampling 假设"错的回答是错的"这个判断干净利落。数学、搜索问答成立;创意写作、长对话这类任务上会退化成随机采样,WHALE 未覆盖这类任务。
  • Meta-Harness 搜索空间会爆炸:不加约束的话,5 个工具 × 3 种路由 × 4 种上下文窗口就是 60 个候选,评估成本远超直觉。做法是先固定非关键维度,只搜 1–2 个最关键变量。
  • checkpoint 与版本管理的隐性账:每个相位切换都要存一份权重 + 一份 harness,六轮交替就是 12 组 checkpoint;下游业务的 A/B 测试也会被频繁打断。
  • 噪声传染:Phase A 采样时 harness 刚换过,原来对现在错的回答会被当正例存下来,反过来污染下一阶段。
  • 决策前置:动手前先跑一次 weight-only vs harness-only 单侧 sweep,差距不足 2 个百分点,说明瓶颈根本不在单侧。

标题变体

  1. 训练 Agent 时最贵的浪费:模型和脚手架轮流当瓶颈
  2. 交替优化 24 个百分点:为什么「先训模型」是过时流程
  3. 你的 Agent 性能卡住,不一定是模型不够强

小红书卡片文案

「你的 Agent 变强了,为什么线上没变好?」

因为 Agent = 模型 + 脚手架(harness)。大部分团队只训一边,结果一边刚变强,另一边就成了天花板。

🔹 WHALE 的解法:轮流优化 A 阶段冻结 harness 训权重 → B 阶段冻结权重搜 harness → 循环 🔹 效果:Qwen3.5-2B/4B 上跨 3 个领域,比只训权重 / 只搜 harness 高 4.15–24.38 个点 🔹 反直觉发现:瓶颈会换位。搜索问答卡在 harness,数学卡在权重——所以「先训模型再调脚手架」的顺序本身就是错的 🔹 小步交替 > 一次性分段式,准确率和成本双赢 🔹 开源:github.com/krafton-ai/WHALE,Apache 2.0,可直接 fork

⚠️ 但有三个前提别忽略: ① 依赖可判定的 reward,创意写作类任务不适用 ② 论文没公开冻结 baseline 具体分数、模型是 base 还是 instruct ③ 每次相位切换的 checkpoint 和版本管理成本没算在论文里

👉 动手前先做一件事:跑一次 weight-only vs harness-only,看差多少个点。差不到 2 个点,说明瓶颈不在单侧,别急着上这套流程。

收藏了,周末试。