Skip to content

E4|Computer Use:看、点、打的是本机 GUI,不是 Seatbelt 里的 shell ​

先别把「能看屏幕」当成一种沙箱模式 ​

读完 B3 和 C3,下一件错事是把 Computer Use 理解成 danger-full-access,或理解成 Chronicle 的主动版。然后在 sandboxing/ 里找点击事件,找不到就给 exec_command 开显示器。

判断先说清楚:Computer Use 是桌面插件让 agent 像人一样操作 GUI——看窗口、点按钮、打字。 官方用途:测桌面应用、复现只在 GUI 里出现的 bug、用没有 MCP/插件的数据源(Computer Use)。它的权限模型是 OS 辅助功能 + 应用白名单,和 cwd 上的 Seatbelt/bwrap 并列,不是替换。文件读写和 shell 仍走线程的沙箱与审批。

本仓库没有点击循环。插件 id 是 computer-use@openai-bundled(core-plugins/src/discoverable.rs:46-47)。feature computer_use 默认开(features/src/lib.rs:1453-1456),打开的是「允许这条产品能力」,不是 CLI TUI 里已经能点 Slack。真正看/点发生在 macOS/Windows 的 Codex App 壳里。


1. 适用:CLI 够不着的图形界面 ​

官方点名的场景:检查桌面应用、用浏览器、改应用设置、没有结构化集成的数据源、只在 GUI 里能复现的 bug。Use case 页的起手是 @Computer 或 @Slack / @Messages。

不该用它的:能 exec_command / apply_patch / MCP 解决的事。多一层屏幕,就多一层 prompt injection 和误点。Record & Replay(把你演示的流程收成 Skill)也依赖 Computer Use 已开,那是 D1 的生成器,不是又一套沙箱。

和 C3 切开:

Chronicle / Computer HistoryComputer Use
方向被动采上下文进 Memories主动看、点、打
产物扩展目录里的笔记GUI 副作用
本仓库feature chronicle + 扩展槽捆绑插件 + requirements

Appshots(前台窗口当上下文)是 E5 的感知通道:一次快照进 thread,不是持续操作 GUI。


2. 两套权限:系统级看见/动手,应用级允不允许碰谁 ​

官方写得很白:macOS 的 Screen Recording + Accessibility 让 Codex 看见并操作应用;App approvals 决定允许碰哪些应用。shell / 文件仍跟线程沙箱走。Windows 要求目标应用在活动桌面可见;Computer Use 在前台跑,Remote(E3)时最好把 host 桌面让给它。

企业闸在 config requirements,不是 Seatbelt profile:

  • 总开关 allow_browser_and_computer_use(config_requirements.rs:1043)
  • ComputerUseRequirementsToml(browser_computer_use_requirements.rs:90-96):allow_locked_computer_use、allow_persistent_approval、default_app_access
  • macOS:bundle_ids 的 Allow/Deny
  • Windows:aumids + 按 publisher/product/exe 的白名单

这些经 app-server 暴露给桌面设置 UI(app-server-protocol/.../computer_use_config.rs,config_processor.rs:528-534)。管理员能否锁机操作、能否持久批准、默认允不准,都在这里拧,拧的不是 SandboxMode。

Guardian 把 Computer Use 当成独立 scope(GuardianScope::ComputerUse,openai_models/guardian.rs:48, 63)。MCP 服务器名 node_repl / cua_repl 走 ComputerUse 而不是普通 Mcp(protocol/src/mcp.rs:38-40,guardian.rs:73-76)。自动审批策略可以按「点 GUI」和「跑 shell」分开——B3 的同意链在这里多了一条轨。

没有「OS 权限 ≠ 应用批准 ≠ 沙箱」会怎样?开了 workspace-write 被理解成能点系统设置;或 Accessibility 一开,所有 app 默认能点。三道闸必须分开。


3. 地区与企业:feature 开着不等于你能用 ​

官方:Computer Use 在 支持地区 的 Codex App 上,macOS 和 Windows。Record & Replay 初始排除 EEA / 英国 / 瑞士。具体名单以当时产品为准,不要把 features.computer_use = true 当成全球已开。

CLI/Linux TUI:没有 Screen Recording 对话框,也没有捆绑插件的 GUI 驱动。Remote 可以在 host 上启用 Computer Use(E3),点的是 host 的屏幕,不是手机屏幕。

企业 allow_browser_and_computer_use = false 可以从 requirements 层关掉(测试里就有这个键)。那是托管约束,用户 toml 拧不回来(B5 origins)。


4. 和宠物画中画:吸附的是状态灯,不是第三套权限 ​

桌面 Pets overlay 让你在别的 app 里仍能看见 thread 在跑、在等输入、还是就绪(官方 Settings / Pets)。Computer Use 在前台点应用时,这只画中画 吸在边上看状态,避免你找不到 Codex 窗口。

它不是 Computer Use 的一部分:

  • Pets 不准进 ToolRouter(C4 / E8)
  • hatch-pet 是 Skill(D1),教怎么孵宠物皮肤
  • overlay 不授予 Accessibility,也不进 bundle_ids 白名单

TUI /pet 是终端里的 Sixel/Kitty 精灵,更不是 GUI 自动化。不要把「宠物跟着点」理解成 agent 在操作宠物窗口。


5. 实现落点:插件 + requirements,不是 linux-sandbox ​

抄 Computer Use 不要抄 Seatbelt。本仓库能抄的是:

  • 能力做成 可安装插件,走 D2 市场(computer-use@openai-bundled)
  • 企业政策做成 requirements,按 bundle id / exe 身份 Allow-Deny
  • Guardian 单独 scope,别和 shell 审批混成一个 bool
  • 看屏幕的字节当 不可信(和 C3 同一条 prompt injection 纪律)

点击、录屏、辅助功能桥在闭源 App。F3 周末切片明确第一周不做 Computer Use。


6. 结语:带走一句话 ​

Computer Use 是桌面插件对 GUI 的看、点、打:OS 辅助功能管能不能看见,应用白名单管能点谁,线程沙箱仍然管文件和 shell——它不是 danger-full-access,也不是 Chronicle,更不是那只吸在角落里的宠物。