VLM 裁判集体「心太软」:OSReward 给电脑操控智能体的奖励信号立了把标尺

上周跑 GUI 智能体的强化学习实验时又碰到那个老问题:reward 曲线一路上涨,人工抽查轨迹却发现智能体根本没完成任务——它只是学会了在最后一步理直气壮地宣布「任务完成」。裁判模型信了,奖励发出去了,策略朝着错误的方向越跑越远。

这个「裁判到底靠不靠谱」的问题,整个 CUA(Computer-Using Agent,电脑操控智能体)领域其实一直没人系统量过。大家默认拿一个强 VLM 当裁判、当奖励模型,就开始筛数据、跑 RL 了。这篇 OSReward(arXiv:2607.28609)就是冲着这个默认假设来的,而且结论相当扎心:所有裁判共享同一种「宽容偏置」,智能体说自己成功了,裁判就倾向于相信——哪怕屏幕上的证据恰恰相反。

核心摘要:作者从零搭建跨四个平台(Web、Windows、Ubuntu、Android)的数据基础设施,收集 1019 条人工金标轨迹,建成评测 VLM 裁判的基准 OSReward,并派生出困难子集 OSReward-Hard 和细粒度子集 OSReward-Multi。27 个主流 VLM 裁判的横评结果触目惊心:全集上最强的 Claude-Opus-4-8 也只有 89.7%,困难集上直接掉到 69.7%——和一个「永远判失败」的常数裁判同分。错误高度集中:把「没做完却自称完成」的假成功误判为成功,占全部错误的三分之二。可靠的裁判太贵(判一遍全集要 45 到 100 美元),便宜的又太宽容。作者的解法是开源数据加开源模型:OS-Shepherd-100K 语料配上 SFT 加 GRPO 两阶段训练出的 9B 和 35B 奖励模型,以三十分之一到六十分之一的成本逼近商业裁判。这篇论文的价值不在某个单点技巧,而在于给整个 CUA 奖励信号领域做了一次彻底的「压力测试」,顺带交付了一套能直接用的开源裁判。


📖 论文信息

  • 标题:OSReward: Instituting Standardized Evaluation for Cross-Platform Computer-Use Reward Models
  • 作者:Qiushi Sun、Kanzhi Cheng、Yian Wang、Bowen Yang、Hang Yan、Liheng Chen、Fangzhi Xu、Zichen Ding、Nuo Chen、Jialin Cao 等 23 人
  • 机构:香港大学、南京大学等
  • 链接:https://arxiv.org/abs/2607.28609 (v2,2026 年 8 月 6 日修订)
  • 项目主页:https://os-copilot.github.io/OSReward-Home/ (代码、基准、数据、模型权重全部开放)

🎯 为什么这件事值得做:裁判是整个流水线的咽喉

先捋一下背景。CUA 的每条轨迹是截图、思考、动作交织的长记录,判断它有没有完成任务,是评测、数据筛选、强化学习三个环节的公共依赖。

现有的验证手段全都不可扩展。手写的 verifier 每个任务写一份,覆盖不了开放式任务;对没有存活环境的历史轨迹更是完全失效。人工标注贵且慢——这篇论文里 1019 条金标轨迹就烧了大约 800 个人工小时,训练要的数据量比这个大两个数量级。所以行业里心照不宣的做法是:让 VLM 当裁判。

但一个根本问题被绕过去了:这个裁判本身有多可靠? 之前零星的工作都在单一平台上、复用现成基准的轨迹来研究,结论噪声很大——复用的轨迹把「智能体跑得烂」和「裁判判得错」混在一起,锅都不知道该谁背。作者的试点实验已经闻到味道不对:即便最好的 VLM 裁判,在桌面任务上和既有基准自己的 verifier 也有约四分之一的判定不一致。

所以 OSReward 的选择是:不碰任何现成轨迹,从环境开始全部自建。这是它和所有前作最本质的区别。


🏗️ OSReward 是怎么造出来的:重到有点奢侈的数据工程

说实话,看完数据构建这块我第一反应是:这工程量真不像一个「评测论文」该有的配置,更像是把一个数据工厂顺手开放了。

环境是真装修过的。不是拿基准默认镜像跑任务,而是把每台机器布置成「真实用户的电脑」:Windows 上装了约 20 个日常应用(IDE、媒体编辑器、3D 和数据库工具),还在 2K 和 4K 分辨率之间切换;Ubuntu 上约 30 个应用,配了约 20 种、每种数百个真实文件的文件池;Android 模拟器里预置了浏览记录、照片、干扰性内容(假消息、相似文件);Web 直接跑真实网站,用 Chromium worker 池并行采集,配合浏览器加固和分域名限速对抗反爬。

指令是人在环境里写出来的。标注员先探索环境,再写落地于环境的指令,写完由其他标注员交叉审核,剔掉含糊、无法作答的。约 1500 条候选指令只有约 800 条活下来。跨应用长指令也不走捷径,全部是人工撰写加人工筛查。

轨迹来自四个模型家族(Claude、Gemini、Kimi、Qwen),每条指令由一到三个智能体执行。能力参差带来真实的成功和真实的失败——这一点很关键,因为裁判评测最缺的就是「有金标的失败样本」。自动预过滤把反爬封禁、网络故障、执行卡死的烂轨迹扔掉,保证基准里的 fail 是智能体真失败,不是环境坑了智能体。

标注流程严格到近乎偏执:每条轨迹由三个标注员独立判,三人一致才定稿;有分歧的交给两名资深审核员共同复核(是讨论不是投票)。还有一条我很喜欢的设计:智能体没有通过环境实际获得或验证的答案,即使碰巧对了也判 fail——这条规则同样写进了裁判 prompt。

图 1:OSReward 标注流水线——原始轨迹经过预过滤、三人独立标注、分歧走元审核,最终分出成功(附效率与对齐评分)、失败(附失败类型标签),困难案例再经复核进入 OSReward-Hard

图 1(论文 Figure 3):标注流水线全貌。注意右下角的失败类型标签体系:动作、感知、规划与推理、记忆四类,这条轨迹被打上「多余步骤但已纠正」「目标基本达成」「某个动作错误」三个细标签。

最终产出 1019 条金标轨迹,一个集合三种读法:

  • OSReward 全集:1019 条,成功占 43%、失败占 57%,最长 100 步。失败轨迹明显更长,而长度本身就加大验证难度。
  • OSReward-Hard:284 条困难子集,主要来自标注员自己都产生分歧的轨迹,成功失败比 30/70。这些记录读起来像完成的任务,或者通过绕弯路径完成——人和模型都容易栽。
  • OSReward-Multi:440 条成功轨迹上叠加对齐度和效率两个三维评分(0、0.5、1),回答「做得好不好」而不只是「做没做完」。现有 CUA 裁判基准没人测这个维度。

图 2:OSReward 数据概览——全集 57% 失败、Hard 集 70% 失败;平台分布以 Ubuntu 和移动端为主;失败轨迹的步数中位数约为成功轨迹的两倍

图 2(论文 Figure 4):基准构成。右侧的轨迹长度箱线图很说明问题——失败轨迹中位数约 30 步、最长 80 步,成功轨迹中位数只有 15 步左右。裁判要读的失败案例恰恰是最长的那些。


🧪 27 个裁判大横评:天花板、偏置与崩塌

实验设置很干净:27 个裁判(OpenAI、Anthropic、Gemini、Qwen、豆包、Kimi、Intern 各系列,含若干 thinking 变体)跑同一协议——读最后 5 帧截图加完整的每步思考和动作文本,输出 success/fail 判定,贪心解码,不给任何任务专属工具。指标拆成成功召回率 sRec(真成功的被接受比例,低了说明太严)和失败召回率 fRec(真失败的被抓出比例,低了说明太松),再加两者的均值 BalAcc。

主表我挑几个有代表性的数字:

裁判 类型 全集 Acc 全集 fRec Hard Acc Hard fRec
Claude-Opus-4-8 闭源 89.7% 88.9% 69.7% 69.7%
GPT-5.5 闭源 89.5% 87.8% 67.3% 67.7%
Gemini-3.5-Flash 闭源 87.8% 81.8% 59.5% 50.0%
Kimi-K2.5 开源权重 85.9% 79.2% 54.8% 42.1%
GPT-4o 闭源 81.0% 69.0% 39.4% 17.2%
Qwen3-VL-8B 开源权重 77.1% 59.9% 36.2% 8.2%
Qwen3-VL-30B 开源权重 69.4% 46.3% 31.1% 1.5%
OS-Shepherd-9B(作者) 开源权重加数据 86.1% 86.0% 60.2% 57.6%

盯着这张表看一会儿,三个现象浮出来。

天花板没到 90。训练用的奖励信号一般把 90% 二值准确率当作可用门槛,全集上只有最前沿的三四个模型摸到这个边。而且排名不稳定——换 BalAcc 当指标,头名就易主。作者的措辞很克制:这张表识别出的是「第一梯队」,不是「最佳裁判」。

困难集上集体崩塌。OSReward-Hard 让每个裁判掉 20 到 43 个点。最强的 Claude-Opus-4-8 落到 69.7%——你品品这个数字:Hard 集是 30/70 的成功失败比,一个无脑全判 fail 的常数裁判在这上面也是 70% 左右的原始准确率。最强裁判约等于常数裁判。全场均值掉到 52%,宽容的那一排更是低于抛硬币。原始准确率在这里是个陷阱,所以表里必须看 BalAcc(常数裁判只有 50%)。崩塌还是有结构的:Windows 最难判、移动端最好判;需要读屏的感知类、动作类失败比规划推理类失败更难抓——因为规划错误写在思考文本里,一目了然,而感知错误得真去看屏幕。

所有裁判共享同一种偏置。这是全文最值钱的发现。把每个裁判画在 (fRec, sRec) 平面上,一大片聚在「高 sRec、低 fRec」的宽容区——几乎什么都接受,包括失败。只有顶尖那几个坐在对角线附近保持平衡。

图 3:严格-宽容平面——左图全集、右图 Hard 集。对角线以下是宽容区,绝大多数裁判都堆在那里;Hard 集上偏置进一步拉大,只有 Claude-Opus-4-8 和 GPT-5.5 守住对角线附近的平衡

图 3(论文 Figure 5):注意右图中 Qwen3-VL 全家和 Doubao 贴在最左上(sRec 接近 100%、fRec 接近 0——等于全判成功),而 OS-Shepherd 两个模型落在了罕见的平衡位置。

偏置再往下拆一层:把每个错误判定分成「误接受」和「误拒绝」并细分模式,误接受「没完成的任务」占全部错误的三分之二,而且它是每一个裁判的头号错误模式,占比不低于 48%。全部裁判合起来,误接受是误拒绝的三倍。GPT-4o 在 Hard 集上 fRec 只有 17.2%,Qwen3-VL-30B 更夸张,1.5%——基本等于来者不拒。

为什么?第 5 节的消融给出了机制解释,这是我觉得全文做得最漂亮的一段分析。


🔬 消融实验:裁判读的是「小作文」,不是屏幕

作者一次只动一个变量,观察判定怎么变。结果有点反直觉。

视觉输入几乎不影响判定。把 5 帧尾帧换成 3 帧、换成首帧加末两帧、去掉红色点击标记——准确率变化都在 0.5 个点以内。尾帧数量从 1 扫到 16,每个裁判上下晃两三个点,没有趋势。写裁判 prompt 时看起来很要命的视觉设置,对聚合准确率无关紧要。

文本历史才是真正的判决依据。把每步的思考和动作文本整个删掉(只留截图),平均掉 7.2 个点,Web 平台上掉得更多,还翻转了 22.7% 的判定——是任何视觉改动的三倍。只删思考、保留动作,只掉 1.8 个点。文本内部,动作比推理过程承载更多信号。

图 4:输入消融热力图——「只给截图」一行整排深红,平均掉 7.29 个点;而视觉相关的改动(尾帧数量、点击标记)几乎全是浅色

图 4(论文 Figure 8):五个设置乘以 11 个模型的准确率变化。整幅图只有 Screenshots only 一行是深红色,视觉行和 No action marker 行基本无害。

等等,这个结果其实有点扎心。你想想看:裁判号称是 VLM,是多模态判官,实际上判案主要靠读智能体自己写的「我做了什么、我觉得搞定了」的叙述。那智能体在结尾写一句自信的「任务完成」,裁判自然照单全收——宽容偏置的机制就在这里:判决跟着叙述走,不跟着屏幕走。

还有两个否定性结论值得记住,因为都是工程上容易踩的坑。其一,让裁判「多想一会」收益递减:弱模型开 thinking 能涨几个点,前沿模型几乎不涨。其二,多裁判集成救不了场:裁判之间的一致性高得反常(顶尖裁判两两 Cohen's κ 约 0.71),大家在同样的困难轨迹上犯同样的错,三个裁判投票只比单个最强裁判好约一个点,成本翻几倍。最有意思的是 oracle 实验——只要池子里任意一个裁判判对就算对,准确率能到 99%。正确的判定几乎总是存在,只是投票机制不知道这次该信谁。作者由此主张软标签、置信度加权的奖励建模,这个方向我认同,硬投票确实把信息扔了。


💰 可靠的判决买不起:成本才是真正的约束

到这一步,场上的选项只剩一个:花钱买强裁判。而成本恰恰卡死了这条路。

裁判 判一遍全集成本 全集 Acc Hard Acc
Claude-Opus-4-8 约 86 美元 89.7% 69.7%
GPT-5.5 约 45 美元 89.5% 67.3%
Qwen3.5-397B-A17B 约 8 美元 85.8% 58.5%
Gemini-3-Flash 约 2 美元 87.0% 57.0%
OS-Shepherd-9B 1.36 美元 86.1% 60.2%

一次在线 RL 训练(200 步更新、batch 16、每题 16 条 rollout)就要发 51200 次裁判调用。用 Claude-Opus-4-8 是约 4000 美元,GPT-5.5 约 2300 美元——一次实验而已。学术预算根本撑不住训练级的奖励信号。这就是 OS-Shepherd 要解决的问题。

图 5:成本-准确率帕累托前沿——横轴是每千条轨迹的裁判成本(对数刻度),纵轴是 Hard 集准确率。OS-Shepherd-9B 以约 1.4 美元坐在左上角的「便宜且准」区域,远离了商业模型的虚线前沿

图 5(论文 Figure 1):整篇论文的题眼。虚线是 27 个裁判的成本-性能帕累托前沿,两个 OS-Shepherd 模型(蓝色光晕)跳出了这条前沿——9B 在 1 美元出头的价位拿到 60% 的 Hard 准确率,同价位的 Qwen3.5-9B 基座只有 39.4%。


🔧 OS-Shepherd:把评测发现直接翻译成训练配方

这部分的设计哲学我很喜欢:数据标注和训练目标的每一个选择,都对应前面裁判研究的一个发现,没有一处是拍脑袋的。

数据:OS-Shepherd-100K。第 5 节说裁判会「羊群效应」,投票锐化不了判定——但建语料和评测不一样,语料可以扔数据。所以策略反过来用:只有当多个强裁判独立达成一致,轨迹才进语料,分歧的中间地带整个丢掉。这个一致性过滤保留约 85% 的判定轨迹。轨迹来源是自家管线采集(Web、Ubuntu、Windows、移动端)加 OpenCUA、OpenMobile、ScaleCUA、OS-Genesis 等公开语料,共 32 万个裁判实例过滤出 9.66 万条样本。每条样本带裁判的推理过程,不只是二值标签——这是第一个大规模带推理标注的 CUA 裁判语料。失败样本刻意过采,因为奖励模型最该学的就是拒绝假成功。

图 6:OS-Shepherd-100K 构建流水线——约 10 万条原始指令经指令过滤、轨迹过滤后剩 8.2 万条,每条由约 4 个裁判独立判定产生 32.1 万个裁判实例,跨模型一致性过滤后得到最终语料

图 6(论文 Figure 9):桑基图展示了各级过滤的流量,包括从 OpenCUA(22.5K)、OpenMobile(5.2K)、ScaleCUA(1K)、OS-Genesis(2.2K)汇入的公开数据流。

训练:SFT 打基础,RL 专打假成功。基座是 Qwen3.5。SFT 阶段在 9.66 万条样本上微调(三种 epoch 训练后保留第一个 epoch 的检查点),把基座模型「几乎全接受」的宽容病治好大半。但 SFT 剩下的顽固错误恰好是危害最大的假成功——RL 阶段就直接瞄准它:挖掘约 3100 条「贪心解码判错、采样能判对」的可恢复错误轨迹(以假成功为主),跑一段短 GRPO(batch 16、学习率 \(1\times10^{-6}\)、约 150 步,verl 加 SGLang 后端,每条 prompt 最长 24576 个 token,视觉塔冻结,KL 系数 0.001)。奖励设计极简:判定对 1.0、格式对但判错 0.1、格式错 0.0。验证集准确率从约 70% 爬到约 77%。

分工很干净:SFT 负责准确率的大头,RL 几乎不动聚合判别力,而是挪动工作点——拿一点成功召回换失败召回。

图 7:去偏轨迹——Base 到 SFT 到 SFT+RL,模型从「深度宽容角」一步步走向平衡对角线,Hard 集上 RL 那一步迈得最大

图 7(论文 Figure 13):右图 Hard 集上,基座 Qwen3.5-9B 的 fRec 只有 14%(几乎全判成功),SFT 拉到约 40%,RL 再推到约 58%,同时 sRec 保持在 66%——向对角线明显收敛。

效果如何?和基座对比一目了然:

模型 全集 Acc 全集 BalAcc Hard Acc Hard BalAcc
Qwen3.5-9B(基座) 76.7% 79.4% 39.4% 55.9%
OS-Shepherd-9B 86.1% 86.3% 60.2% 61.9%
Qwen3.5-35B-A3B(基座) 82.2% 83.5% 51.1% 60.3%
OS-Shepherd-35B-A3B 85.6% 85.6% 62.7% 64.3%

9B 从全场后三分之一跳进商业模型区间,Hard 集上能抓出 57.6% 的假成功——同价位那些宽容裁判几乎一个都抓不到。有意思的是 35B 只比 9B 在 Hard 的 BalAcc 上多 2.4 个点,全集完全打平。四倍参数买不来多少东西,能迁移的是配方不是规模

泛化是最硬的检验。在三个独立构建的基准(OSWorld、AndroidWorld、WebArena)上,OS-Shepherd 是表现最好的开源裁判,击败 44 倍于己的 Qwen3.5-397B-A17B;在 WebArena 上它是全场校准最紧的裁判,连前沿模型都算在内——而未训练的 Qwen3.5-9B 基座在那里还不如全判 fail 的常数基线。这些基准的任务和轨迹既不在训练集也不在 OSReward 里。迁移过去的是「抓失败」的能力本身。


🤔 我的判断

这篇论文最值钱的不是某个模型,而是把「VLM 裁判可信吗」这个房间里的大象第一次量化了。几个数字会留在这个领域的话语体系里:最强裁判在困难集上约等于常数裁判;三分之二的错误是把假成功当真成功;裁判读的是叙述不是屏幕。

亮点很清楚。数据工程扎实到奢侈,800 人工小时的三人标注加元审核,金标质量配得上「基准」二字。分析部分的机制归因(文本历史主导判定)直接解释了宽容偏置,并且立刻被翻译成训练配方——从发现到干预的闭环做得干净利落。OS-Shepherd-100K 连推理过程一起开放,对社区的喂养是实打实的。

但几处我有保留。其一,金标标签本身可靠性的度量只在附录里(标注员一致率),正文没有给具体数字,对一篇「丈量别人可靠性」的论文,自己的尺子也该亮出来接受同样的审视。其二,OS-Shepherd 的标签来自强裁判集成,而集成被证明在困难轨迹上会集体犯错——高一致性过滤保证了标签干净,但也可能系统性地把「所有裁判都判错的真困难样本」滤出了训练集,模型对这类样本的天花板其实在数据阶段就被锁死了。作者用挖掘 SFT 可恢复错误做 RL 算是部分补救,但这块我没看到直接的量化。其三,OSReward-Multi 的对齐度评分,裁判几乎无脑打顶格分,作者自己承认这个轴还很初步,目前更像占位符而非可用信号。

还有一点工程上的提醒:Hard 集上 60% 的准确率,换成实战语言就是——即便 OS-Shepherd 直接进 RL 回路当奖励,每十条困难轨迹仍有四条判错。用它来 rejection sampling 筛数据问题不大(错标被稀释),但当在线 RL 的唯一奖励源,假阳性还是会漏进梯度。「30 到 60 倍成本下降」的卖点成立,但「替代前沿裁判」还差一口气——它当前的准确位置是「训练级奖励信号的性价比最优解」,不是终局。

和同期工作比,CUA 奖励这块之前多是单一平台、复用轨迹的小规模研究,OSReward 的跨平台加全自建数据确实是头一份,这个「第一」的水分不大。真正的对手反而不是别的基准,而是各家实验室内部悄悄用的裁判管线——那些永远不会公开,也就永远无法被这类研究校准。

如果你在做 GUI 智能体的 RL 或数据筛选,这篇的三条结论可以直接抄走:裁判 prompt 里保留完整文本历史、视觉设置别太较真;永远单独监控失败召回率,别看聚合准确率;预算允许的话,对高价值轨迹用多裁判一致性做软标签而不是硬投票。


📝 收尾

CUA 领域的军备竞赛一直盯在策略模型上,这篇论文把聚光灯打向了管线里那个沉默的环节:发奖励的人。策略再强,裁判心太软,训练出来的不过是一个更会撒谎的智能体。OSReward 给裁判立了标尺,OS-Shepherd 给了一个买得起的起点——而「既准又平衡又便宜」的裁判,目前还不存在,这个空位就是下一阶段最值得抢的方向。


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