StateAct: Program State, before Pixels, for Long-Horizon Computer-Use Agents
Yan Yang, Xiangru Jian, Ziyang Luo, Zirui Zhao, Yutong Dai, Ziji Shi, Hanshu Yan, Jun Hao Liew, Silvio Savarese, Junnan Li
cs.SE, cs.CV
2026-07-24
Salesforce 提出 StateAct,让主 agent 用 bash/Python/文件编辑器直接操作程序状态,只在 1.1% 的步骤调用看像素的 GUI 子 agent;在 OSWorld 2.0 上 Claude Opus 4.8 的成功率从 20.6% 提到 26.9%,成本约降到原来的 1/9。
现在的电脑操作 agent(computer-use agent)主要靠看截图来决策。截图是有损的、非单射的(non-injective):Excel 单元格里的公式、被隐藏的行、后台状态,从像素里根本看不出来。长程任务要走上百步,每步的小误读会累积成一份错的交付物。Salesforce AI Research 这篇的核心判断是:像素把任务相关的关键区别藏起来了,而其中绝大部分其实在程序状态里直接可读。
StateAct 是一个代码优先(code-first)的多 agent 框架,三条原则:
它把任务分成三类:状态可达(有代码路径)、混合(大部分走状态、一个视觉子目标)、纯渲染(判断靠像素外观)。
OSWorld 2.0(108 个任务,主干 Claude Opus 4.8):
| 系统 | 二元成功率 | 部分成功率 | 每任务成本 |
| StateAct | 26.9% | 61.6% | $7.8 |
| 参照 CUA | 20.6% | 54.8% | $72 |
| GPT-5.5 | 13.0% | 49.5% | $25.5 |
| Opus-4.7 | 18.2% | 48.9% | $33.6 |
消融说明哪个组件最重要:去掉 act-on-state,部分成功率从 61.6% 掉到 51.3%;去掉 finish gate 掉到 57.5%;去掉上下文管理掉到 58.7%;纯 bash(不要 Python 和编辑器)只有 45.9%,反而低于参照基线。按能力看,多状态项 66.7%、流式 66.7%、跨来源 64.9% 都不错,最弱的是人在回路(human-in-the-loop)43.9%。
对做 agent 的人,这是一份可复用的工程蓝图:别让大模型对着截图空想,先把能通过代码拿到的状态拿到手。9 倍的成本下降不是靠换更小的模型,而是靠减少每步的视觉感知开销和重试。它也划清了边界:纯视觉任务(图像编辑、排版、图表外观、所见即所得输出)这条思路没有优势,论文明确说「no advantage」。
最关键的局限是验证器的天花板。finish gate 只抓结构性缺陷,判不了「值对不对」:76 个走到 gate 的非完美任务里,它只正确拦下 8 个(10.5%),68 个推理错误被放行。约 20% 的失败卡在主干模型本身过不去的模态上(音频、视频、实时交互),或指令本身有歧义。另外 GUI 子 agent 不能随便降级:把看像素的模型从 Claude Opus 4.8 换成紧凑的 3B 模型(SFR-CUA),部分成功率从 61.6% 掉到 43.2%。所有数字都来自 108 个任务的 OSWorld 2.0,样本不算大,泛化到其他基准还需验证。