跑得好不等于选得对:Taste-Bench 用"后视镜"量出 Agent 的品味

你有没有观察过 Agent 跑长任务时的一个诡异现象——它会在某个岔路口选错方向,然后一条道走到黑。明明当时另一个方向明显更有戏,它就是看不见。任务最后挂掉,你回看轨迹,发现败因不是执行不力,而是第 17 步那个决策本身就错了。

这种"在岔路口选对方向"的能力,作者给它起了个很妙的名字:品味(taste)。工程 Agent 选哪个假设先验证、研究 Agent 沿哪条技术路线往下走,这些岔路口的选择决定了整次运行的成败。但尴尬的是,现有 benchmark 全都在测"端到端成功率"——SWE-bench 只告诉你任务最终解没解出来,没人测 Agent 在决策点上到底有没有判断力。

这篇 arXiv 2609.25804 的论文把这件事给做了:构建了 Taste-Bench,一个从 Agent 真实轨迹里自动挖掘"决策岔路"的 benchmark,还顺手证明了品味这东西是可以训练出来的。

📌 核心摘要

痛点:长程 Agent 的成败往往由中途几个关键决策决定,但所有现有 benchmark 都只测最终结果,测不出"决策质量"本身。

方案:用"后视镜"思路——Agent 已经跑完的轨迹里天然藏着标注好的岔路口:平行尝试在同一任务上分道扬镳(一成一败),或者单个 Agent 自己走弯路后自我纠正。把这些岔路挖出来,遮住岔路之后发生的事,让被测模型纯靠前缀信息选方向。

效果:最强模型 GPT-5.6 Sol 只答对 59.7%;越需要"预见未来"的岔路越难,最难一档准确率跌到 21.0%,比随机猜(25%)还低;加大推理预算毫无帮助。蒸馏"看过答案的老师"的判断力后,Qwen3.6-27B 学生在未见任务上判断准确率从 30.0% 涨到 47.9%,用它给执行 Agent 当顾问,SWE-bench Pro 成功率从 14.6% 拉到 33.7%。

我的评价:benchmark 构建思路是真的漂亮——零人工标注、标签由真实结果背书,这比让专家标"哪个方向好"靠谱得多。蒸馏部分的 advisor 架构也很实用。这篇值得细读。


📖 论文信息

  • 标题:The Tasteful Agent: Measuring and Improving Taste in Long-Horizon Tasks
  • 作者:Wenbo Pan, Zhichao Liu, Shujie Liu, Jingying Zeng, Chin-Yew Lin, Xianfeng Tang, Yan Lu, Qi He, Xiaohua Jia
  • 链接:https://arxiv.org/abs/2609.25804 (v2,2026 年 9 月 23 日)
  • 代码:https://github.com/wbopan/tastebench
  • 数据集:https://huggingface.co/datasets/wenbopan/taste-bench

🎯 问题动机:端到端 benchmark 测不出的东西

先想清楚一件事:为什么端到端成功率不够?

两个 Agent 跑同一个 SWE 任务,一个 20 步搞定,一个折腾 200 步最后还是错了。端到端 benchmark 给出的结论是"前者成功后者失败",但它没法回答:后者的失败是执行问题还是决策问题?是第 3 步选错了调试方向,还是第 50 步代码写错了?

更微妙的是,有些 Agent 端到端分数很高,但其实是靠"暴力试所有方向"堆出来的——它的判断力可能很差,只是算力管够。反过来,一个判断力强的 Agent 可能因为执行细节失手。这两种能力在现有榜单上完全混在一起。

我之前在做 Agent 评测的时候也碰到这个困扰:失败轨迹归因全靠人工看,又慢又主观。这篇论文给出的答案是——别归因了,直接把决策点抠出来单独测。

🏗️ Taste-Bench:从轨迹里挖岔路

核心 idea 一句话:轨迹本身就是标注数据。

如果一个岔路口有两条方向,其中一条后来被证明是对的(任务成功了),另一条是错的,那这个岔路就是一道现成的"品味题"——题目是岔路前的轨迹前缀,选项是两个方向,答案由后续真实结果背书。被测模型看不到岔路之后发生的任何事,纯靠前缀里的信息做判断。

形式化一点:任务 \(q\),共享前缀 \(h_t = (o_0, a_0, \ldots, o_t)\),在时刻 \(t\) 分岔为候选方向 \(c_1\) 和 \(c_2\)。标签取结果更好的那个分支:

\[y = \arg\max_{i \in \{1,2\}} U(E_i)\]

题目就是 \(x = (q, h_t, c_1, c_2)\),\(t\) 之后的一切对模型隐藏。

Taste-Bench 的构建与过滤流程

图 2:Taste-Bench 的完整流水线。左侧是两种轨迹挖掘方式(平行轨迹 + 弯路轨迹),中间是问题生成,右侧是质量过滤(去掉太简单的和无法判定的)。

两种挖法,抓两种错误

岔路从哪来?作者用了两种互补的挖掘方式:

平行轨迹(parallel):同一个任务跑多次独立尝试,轨迹在某个点对同一状态产生分歧,一个分支最终成功一个失败。这种岔路抓的是 Agent 从头到尾都没意识到的错误——它选了错方向,一路跑到死。

弯路轨迹(detour):单个轨迹内部,Agent 先走了一条路,撞到失败,退回来换方向最终完成。一个生成模型读完整轨迹,定位三个事件:走错方向的那一步、宣告此路不通的那个观察、换方向的那一步。岔路设在"走错方向之前"的位置。这种抓的是 Agent 后来自己纠正了的错误——题目考察的是被测模型能不能比当事 Agent 更早认出这条是弯路。

这个互补设计挺讲究的。只挖平行轨迹会漏掉"自我纠正型"的判断失误,只挖弯路轨迹又漏掉"死不回头型"的。

数据从哪来

两个轨迹池子:

领域 来源 规模
工程 GPT-5.4 / GPT-5.5 跑 SWE-bench Pro 的 517 个任务 2,677 条带评分的 rollout
研究 RE-Bench 的 47 个 AI R&D 任务 1,132 条 Agent 运行记录

生成模型(带 rubric)从这些轨迹里提出候选岔路,共产出 4,657 个候选。但候选不等于好题,还要过两道过滤器:

  • Trivial filter:光看选项措辞就能猜出答案的题,扔掉(比如一个方向明显写得含糊,另一个明显具体)
  • Undecidable filter:标签和任务完整记录对不上的题,扔掉

最终通过率只有 10.8%,留下 502 道题,按 2×2 设计组织:平行/弯路 × 工程/研究,其中工程 390 道、研究 112 道。

过滤漏斗

过滤漏斗:4,657 个候选岔路经过 generator rubric、trivial filter、undecidable filter 三层筛选,最终剩 502 道题。可以看到弯路挖掘在工程领域贡献了最多题(266 道)。

10.8% 的通过率说明过滤相当狠。你可能会担心:挖出来的标签靠谱吗?作者做了人工复核——100 道抽样题,两个评审各自独立判断,172 个明确 A/B 判断中 170 个与挖掘标签一致(98.8% 一致率),评审之间的 Cohen's κ 达到 0.973。这个标注质量比很多人工标注的 benchmark 都高。

评测协议:位置偏见直接判零

二选一题目有个经典坑:位置偏见。很多模型交换两个选项的顺序就会改答案。作者的解法很硬核——每道题用两种顺序各测一遍,两次都答对才算对。

这个设计的杀伤力在于:随机猜的准确率是 25%(每种顺序各 50%),而一个总是偏爱某个位置的模型直接得 0 分。想刷分?没门。

📊 实验:前沿模型的品味集体不及格

作者测了 14 个当代模型,覆盖 Claude、GPT、Grok、DeepSeek、GLM、MiniMax、Mistral 各大前沿家族,统一接口和 token 预算。主指标是 Average(研究子集和工程子集的 1:1 均值)。

模型在 Taste-Bench 上的表现

图 3:14 个模型的成绩。左列是 Average,中列是研究子集(112 题),右列是工程子集(390 题)。实心柱是"两种顺序都答对"的严格准确率,虚线延伸部分是两种顺序的平均准确率。

结果说实话有点难看:

模型 Average 研究 工程
GPT-5.6 Sol 59.7 62.5 56.9
GPT-5.5 59.5 63.4 55.6
Claude Opus 5 55.5 64.3 46.7
Grok 4.5 54.6 57.1 52.1
GPT-5.6 Terra 54.0 58.0 50.0
GLM-5.2 53.9 59.8 47.9
DeepSeek V4 Flash 43.3 48.2 38.5
GPT-5.4 Nano 36.6 41.1 32.1
Grok 4.20 Reasoning 15.7 8.9 22.6

最好的 GPT-5.6 Sol 也只有 59.7%。也就是说,当前最强的模型在岔路口的判断力,跟一个认真读题的人类实习生比可能都够呛。Grok 4.20 Reasoning 的 15.7% 甚至低于随机猜测的 25%——这说明它有严重的位置偏见,交换顺序就翻答案。

一个有意思的细节:Claude Opus 5 在研究子集上排第一(64.3%),但工程子集掉到 46.7%;GPT 系正好反过来。不同家族的"品味"分布还真不一样。

发现 2:越需要预见未来的岔路越难

作者给每个岔路标注了时间视野(time horizon)——一个站在岔路口的观察者需要往未来看多远,才能明显判断出哪个方向对。分四档:

  1. in prefix:前缀里已经有决定性事实
  2. inferable:没有单一决定性事实,但前缀里的线索拼起来能推出来
  3. next step:要看岔路后第一步的观察才知道
  4. more work:要做完局部验证甚至更多实质工作才知道

14 个模型的平均准确率从 in prefix 档的 62.3% 一路跌到 more work 档的 21.0%——比随机猜的 25% 还低。

这个结果其实挺深刻的。它说明模型的错误不是均匀分布的,而是集中在"需要预测后续工作"的岔路上——模型不擅长在脑子里"预演"一个方向的后续展开。

发现 3:加大推理预算没用

你可能觉得,那让模型多想一会儿不就行了?作者测了——两个模型各跑三档 reasoning effort,题目、prompt、token 上限全保持一致。

没用。每个时间视野档位上,准确率纹丝不动。

更扎心的是附录里的发现:模型在最难的 more work 档上花的推理 token 最多——它们似乎知道这些题难,也在使劲想,但就是想不出来。因为决定性证据根本不在前缀里,在岔路后面的未来里,光靠思考变不出没见过的事实。

说实话这个结果让我有点意外,但细想又合理:推理预算解决的是"算得更深",而这里缺的是"看得更远"。

和 SWE-bench Verified 的相关性只有 0.63

Taste-Bench 有用的大前提是:它不能只是端到端能力的复读机。作者把 11 个模型(剔除了 3 个输出无法解析率超 9% 的)的 Taste-Bench Average 和公开的 SWE-bench Verified 分数对比。

Pearson 相关系数 \(r = +0.63\),\(R^2 = 0.39\)——SWE-bench Verified 只能解释模型间不到四成的方差。而工程子集(明明就是从 SWE-bench Pro 任务挖出来的)相关性更低,只有 \(r = +0.37\)。

最有说服力的对比:SWE-bench Verified 前四名的模型彼此只差 4.0 分,挤成一团;但它们在 Taste-Bench 上拉开了 10.7 分的差距。端到端分数分不出的高下,品味测得出来。

🔧 蒸馏品味:让学生学会"预见"

光测不行,得治。论文下半场回答:品味能不能训出来?

能。而且方法很优雅。

蒸馏与顾问注入的总览

图 6:左图是蒸馏流程——老师模型带着"特权上下文"(已知正确方向)生成推理过程,学生只看到题目本身,用 SDPO 式 token 级蒸馏对齐;右图是推理时的顾问架构——学生的判断写成建议注入任务上下文,固定的执行器独立完成任务。

为什么不直接拟合标签

最直接的思路是拿 502 道题的标签做 SFT。但每道题只有一个二值标签,没有中间推理,直接拟合就是背答案,学不到判断力。

作者的解法:老师和学生是同一个冻结基座模型(Qwen3.6-27B),只是上下文不同。老师能看到"演示"——正确方向的简短描述,所以它生成的推理天然朝正确答案走;学生只看到被测模型能看到的东西(任务、前缀、打乱顺序的两个候选)。训练用 SDPO 式的前向 KL,在老师采样的推理 token 上做 token 级蒸馏,把老师"看过答案后的判断过程"蒸馏进学生权重。训练只更新 LoRA adapter。

这其实就是 context distillation 那一脉的思路(STaR、LEAP、SDPO 都是亲戚),但用在这里特别合适——因为 Taste-Bench 的题目本身就自带"答案 + 出题现场",蒸馏的原材料是现成的。

结果:判断力真的迁移了

390 道工程题切成两个任务不相交的 fold,学生在一个 fold 上训、另一个 fold 上测,保证测试题对应的源任务从没见过。

蒸馏结果

图 7:左图,held-out 题目上学生准确率 47.9% vs 基座 30.0%(提升 17.9 个百分点),虚线是 GPT-5.6 Sol 在同批题目上的 56.9%;右图,41 个 held-out SWE-bench Pro 任务上,无建议 14.6%、学生建议 33.7%、全对建议上限 39.0%。

  • 训练 fold 上单次顺序准确率从 48.6% 飙到 92.9%——但这可能是背答案,不算数
  • Held-out fold 上,双顺序严格准确率从 30.0% 涨到 47.9%,净增 17.9 个百分点,两顺序均值从 42.7% 涨到 62.4%

任务都没见过还能涨近 18 个点,这是真迁移,不是记忆。当然,离 GPT-5.6 Sol 的 56.9% 还有差距——一个 27B 的开源模型靠蒸馏摸到了这个水平,已经相当能打。

端到端验证:顾问建议值多少钱

最后一步最工程化:让学生给执行 Agent 当顾问。每个岔路的判断写成一条建议(当前处境、要避开哪个方向、该走哪个方向),注入任务上下文,一个固定的 Qwen3.6-27B 执行器独立完成 41 个 held-out SWE-bench Pro 任务。

三档对比:

设置 成功率
无建议 14.6%
学生建议 33.7%
全对建议(上限) 39.0%

学生的建议吃到了上限收益(+24.4 个点)里的大头(+19.1 个点)。也就是说,这个蒸馏出来的小顾问,已经把"完美判断力"能带来的提升兑现了将近八成。

🤔 我的判断

这篇论文我最欣赏的是构建方法的自洽性:标签不靠人标,靠轨迹自己的结局背书;难度不靠调参,靠过滤漏斗自然涌现;位置偏见不靠祈祷,双顺序协议直接判零。整套东西没有一处需要"相信我们的人工标注质量"这种软肋。

但也有几个地方我想追问:

岔路的"二选一"简化了真实决策。 真实 Agent 在岔路口面对的是一个连续的动作空间,不是两个候选。把决策压缩成 A/B 选择题,测的是"给定了选项后的判断力",而不是"自己生成好选项的能力"。这两者的关系论文没有展开。

detour 题的公平性存疑。 弯路题要求被测模型比当事 Agent 更早认出死路,但当事 Agent 是"边做边看"的,被测模型是"只读前缀"的——两者的信息条件其实不完全对等。作者过滤掉了"看到失败才能命名正确方向"的题,缓解了一部分,但我觉得这个边界还是有点模糊。

59.7% 的天花板是模型的极限还是题目的极限? more work 档准确率低于随机,有没有可能部分这类题本身就是"前缀信息不足、实际不可判"的漏网之鱼?undecidable filter 能抓多少,我持保留意见。

不过瑕不掩瑜。对工程实践来说,这篇论文直接给出了两条可落地的路径:

  1. 评测上:如果你在做 Agent 评测,Taste-Bench 的思路可以平移到自己的轨迹数据上——挖掘岔路 + 双顺序协议,零人工标注就能造出一个决策质量指标
  2. 训练上:advisor 蒸馏架构完全可以照搬——用带特权信息的老师生成推理轨迹,蒸馏给小模型当顾问,注入建议而不动执行器。这个"小顾问 + 大执行器"的组合,成本上比直接 RL 整个 Agent 便宜太多了

品味能不能像推理能力一样,通过 RL 规模化地训出来?这篇论文用蒸馏证明了"能训",但蒸馏的天花板是老师。如果哪天有人把 Taste-Bench 的岔路当成环境,直接 RL 出超越任何单一模型的判断力,那就有意思了。


参考资料

  • 论文:https://arxiv.org/abs/2609.25804
  • 代码:https://github.com/wbopan/tastebench
  • 数据集:https://huggingface.co/datasets/wenbopan/taste-bench

觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我