模型说“成功了”,不等于真成功了
计算机使用智能体里,"模型说成功了"只是一个输出,不是结论。真实任务是否完成,要由运行时或人工依据可验证的外部状态来确认。决策和执行必须拆开,这是整套架构的第一原则。
先分清两个东西:模型和运行时
Qwen-CUA 是 Qwen 团队与 XLang Lab 联合发布的截图驱动计算机使用模型和参考实现。要理解它,先分清两个组成部分:
- 模型:理解指令和截图、跟踪任务进度,提出基于可见界面的原生动作。它的核心约束是从截图而非应用隐藏状态工作:不接收 DOM、无障碍树、终端或任务专用 API,只在归一化的坐标空间里输出点击、拖动、滚动、按键和输入。
- Agent Runtime:采集截图、管理多模态历史、验证和执行动作、触发人工确认、保存回放证据。
这个边界的含义很直接:模型输出"我完成了"这句话,和它真的完成了,是两件不同的事。前者是一个 token 序列,后者需要运行时去验证。
三个可复用的工程原则
这套参考架构沉淀了三个原则,放在任何 Agent 系统里都成立:
- 模型决策与动作执行分离:运行时校验模型输出,不让模型响应直接成为无约束的系统调用。模型负责想,运行时负责把关和动手。
- 敏感动作设人工门禁:密码输入、上传、下载、表单提交、跨域导航,这类操作需要人工复核。能自动化的和必须人看的,按风险分开。
- 成功结论绑定外部证据:内置测试用明确的界面状态做确定性验证;自定义运行一律标记为未验证,不以模型自述替代结果验证。
第三条最值得展开。验证一个"订票成功",正确做法是去查订单状态,而不是听模型说"我看到确认页了"。模型看到的和实际发生的之间,隔着渲染、网络、弹窗、登录态过期一整条链,任何一环都能让"自述成功"变成假阳性。
项目方数字只能参考,不能直接用
Qwen-CUA 在公开评测上报告了 86.2 分(OSWorld-Verified),大版本报到 87.6。这些数字来自项目方的 README 和技术报告,属于自报结果,没有经过独立复现。
这意味着它们可以用来理解项目目标和训练方法,但不能直接推导实际业务成功率。评测环境是干净的,真实业务有登录态、分辨率差异、长流程和各种脏状态。把 benchmark 分数当成上线成功率,是把"实验室结论"自动升级成了"生产结论"——这正是第 9 篇里说的证据等级错配。
和传统自动化的分工
视觉 Agent 和 Selenium/Playwright 脚本不是替代关系:
| 维度 | 视觉 Agent | 传统脚本 |
|---|---|---|
| 输入 | 截图与自然语言 | DOM、选择器、程序化断言 |
| 动作 | 模型按当前画面动态决策 | 开发者预先写好确定性步骤 |
| 界面变化 | 可尝试视觉重定位和恢复 | 通常要更新选择器 |
| 结果证明 | 需要运行时验证器、回放或人工复核 | 明确断言和测试报告 |
有意思的是,Qwen-CUA 的 Demo 自己就用 Playwright 做隔离和浏览器动作执行,只是刻意不把 DOM 暴露给模型。生产系统的合理分工:传统自动化负责确定性执行和验证,视觉 Agent 处理难预编程的界面理解与恢复。前者保证下限,后者扩展上限。
安全上的一句提醒
截图驱动不等于安全。网页内容仍然可以通过提示词注入诱导模型执行错误动作。隔离浏览器、URL 限制、动作审批只能降低风险,不能推断每个真实操作的业务后果。涉及权限、资金、正式发布、外部写入时,需要独立的人类确认和事后反查。
小结
模型负责在截图里做决策,运行时负责在真实世界里验证。把"模型说成功了"当成"真的成功了",等于让考生自己改卷子。