让 Agent 一边操作软件,一边把它重新做出来;再用 reference 生成的隐藏测试验收
RecreationWorld 研究的是一条完整 hybrid loop:探索 reference GUI → 写代码 → 启动 candidate → 观察差异 → 继续修改。RecreationBench 用隐藏的 programmatic 与 visual assertions 评估最终行为。
Hybrid 不是把 GUI agent 和 coding agent 前后拼接,而是让信息在两边反复流动
点击、输入、打开菜单;发现窗口、状态与计算结果。
写 source、build script 与 launch entry;选择自己的架构。
启动成品,操作并观察错误,再决定去哪里复查或修改。
Recreation 既迫使 Agent hybrid,又让成功条件可以执行和复验
Hybrid by necessity
只点 GUI 无法交付代码;只写代码又不知道 reference 真正怎样响应。
Verifiable by construction
reference 是运行时 oracle;同一组 actions 和 assertions 可以重放到任意 candidate。
Scalable experience
大量开源软件可转换成新 task,高分 rollout 可筛选成训练轨迹。


五个平台各 50 个 task,但来源和可见边界并不完全相同
| 平台 | Reference 来源与筛选 | 交付物 | Programmatic interface |
|---|---|---|---|
| Ubuntu | 开源应用,固定 upstream revision;排除不稳定 build / live service | source + build/launch | AT-SPI |
| macOS | 开源 AppKit / SwiftUI 等,也含 menu-bar app | source + build/launch | AXUIElement |
| Windows | 开源 .NET / JVM 等,固定 revision | source + build/launch | UI Automation |
| Android | 无 Internet permission、核心状态在本机 | Gradle → APK | UiAutomator |
| Web | 44 synthetic + 6 public-derived sites | React scaffold → index.html | DOM / ARIA |
Desktop / Android 尽量 source-blind;Web 必然暴露 client code,因此改为保护 captured ground truth 与 tests。
Expected outcome 不是模型猜的:它来自 reference 的真实运行,并经过回放与人工复核
从 source / page analysis 找功能入口与可测试状态。
实际操作 reference,记录 action-conditioned outcome。
生成 fixture、action sequence、Prog / VLM assertions。
在 clean reference 上跑;不稳定或不通过的 case 淘汰。
人工检查 fixture、actions 与 expected observations,随后冻结。
Prog 和 VLM 看的是互补证据;缺证据是失败,judge 自己报错才重跑
Prog
用 AT-SPI / AXUIElement / UI Automation / UiAutomator / DOM-ARIA 读取准确 text、widget state、navigation outcome 与 computed value。Build 或 launch failure 直接使 task 为 0。
VLM
在冻结 checkpoint 截取完整 application window,用 Qwen3.7-Plus、temperature 0 判断 layout、color、canvas、legend 等视觉 assertion。输出必须是逐项 JSON verdict。
SYSTEM_PROMPT: pass=true only when the assertion is clearly and fully satisfied missing / incorrect / placeholder / visibly mismatched element → FAIL transport or parsing error → rerun; do not silently score as model failure
仓库的 shared VLM judge 还区分 authored、verdict total 与 errors,避免“judge 没回答”伪装成“0 项通过”。
58.06 是两条 assertion 通道的五平台等权平均,不是“58% 的 task 全部完成”
每个 Prog / VLM condition 得到 pass 或 fail。
在 task 内汇总各通道通过率。
50 个 application 做 macro average。
Ubuntu、macOS、Windows、Android、Web 等权。
让模型在 persistent REPL 里组合 GUI calls,质量近似不变,交互与上下文开销显著下降
Quality
Prog 35.05→35.60;VLM 31.00→32.29。
Runtime
4.12→3.04 h/task,下降 26.1%;output tokens 增加 15.7%。
证据边界
每个 task/config 一次 rollout;完整配置一起变化,不是单变量因果实验。
效率数字来自两种配置都有完整 usage 的 39 对;质量分使用所有 evaluator-valid pairs。
Recreation trajectories 与五项 OOD benchmark 的提升同向,但训练证据还缺少关键控制
Qwen3.8-Max 生成五平台 recreation trajectories。
每个平台 7,000 条,组成 35,000 条 balanced SFT mixture。
训练两个 model initializations。
五项 coding / visual coding / hybrid CUA benchmark,最大 +17.9 pp。
看见的信号
两个 run 最后 checkpoint 都高于第一个 evaluated checkpoint;自查 render 更频繁。
没公开
selected trajectories、checkpoint、完整 hyperparameters。
没控制
multiple seeds 与 equal-data non-recreation baseline。
最完整的是可执行链路;最需要补的是 VLM 校准、重复运行和训练消融
论文已经讲清
- 一个五平台 task contract 连接 GUI 探索与 coding。
- reference-grounded tests 经 clean replay 与人工复核后冻结。
- Prog 与 VLM 互补,五平台等权聚合。
- 强模型平均分提高,但完整 programmatic fidelity 仍罕见。
仍然不能推出
- 有限 hidden suite 不能证明行为完全等价。
- VLM judge 没有 human calibration / agreement。
- 公开软件的 pretraining contamination 无法排除。
- 单次 rollout 不足以说明小分差稳定,也不能把 harness 节省归因于单一组件。