一、核心概念澄清
在深入技术细节之前,首先厘清两个容易混淆的事实:
| 产品 | 底层模型 | Computer Use 集成方式 |
|---|---|---|
| Claude Code | Claude Sonnet 3.5/3.7、Claude 4 Opus/Sonnet、Claude 4.6、Opus 4.7 | 直接通过 Anthropic API 的 computer_use 工具集实现 |
| OpenAI Codex | GPT-5-Codex、GPT-5.4 | GPT-5.4 是 OpenAI 第一个原生支持 computer use 的通用模型;早期 CUA(Computer-Using Agent)是 GPT-4o vision + RL 训练的专用浏览器 agent,已演化为通用能力 |
简单说:Claude 的所有视觉模型都内置了 computer use 能力;而 OpenAI 经历了从「专用 CUA 模型」到「GPT-5.4 通用模型原生支持」的演进。
二、架构全景对比
2.1 整体架构图
┌─────────────────────────────────────────────────────────────────────────┐
│ Claude Code 架构 │
│ │
│ ┌──────────────┐ tool_use 请求 ┌─────────────┐ 截图/动作执行 │
│ │ Claude API │ ───────────────▶ │ Agent Loop │ ──────┐ │
│ │ (Messages │ ◀─────────────── │ (用户端) │ ◀─────┤ │
│ │ API + Beta) │ tool_result └─────────────┘ │ │
│ └──────────────┘ ┌────────┴──────┐ │
│ tools: [computer_20251124, bash, text_editor] │ Sandbox 环境 │ │
│ Beta Header: "computer-use-2025-01-24" │ Xvfb + Mutter │ │
│ │ + Firefox/... │ │
│ 能力来源:模型基础视觉理解 + 工具调用对齐 └────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ OpenAI Codex / GPT-5.4 架构 │
│ │
│ ┌──────────────┐ computer_call 请求 ┌─────────────┐ 截图/动作执行 │
│ │ Responses │ ─────────────────▶ │ Agent Loop │ ──────┐ │
│ │ API │ ◀───────────────── │ (用户端) │ ◀─────┤ │
│ │ │ computer_call_output└─────────────┘ │ │
│ └──────────────┘ ┌────────┴──────┐ │
│ tools: [computer_use_preview] │ Sandbox 环境 │ │
│ 参数: display_width, display_height, environment│ 默认禁网络 │ │
│ │ │ │
│ 能力来源:GPT-5.4 原生视觉+推理+RL 训练 └────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
2.2 Agent Loop 对比
两者都采用 模型请求动作 → 用户执行 → 返回结果 → 循环 的架构,但 API 协议不同。
Claude(Messages API):
# 用户代码控制完整循环
while True:
response = client.beta.messages.create(
model="claude-opus-4-6",
tools=[...], # 工具定义在每次请求中
messages=messages, # 显式传递完整消息历史
betas=["computer-use-2025-01-24"],
thinking={"type": "enabled", "budget_tokens": 2000}
)
# 检查 stop_reason == "tool_use"
# 执行工具 → 构造 tool_result → 追加到 messages
OpenAI(Responses API):
# 可用 previous_response_id 自动链接上下文
response = client.responses.create(
model="gpt-5.4",
previous_response_id=prev_id, # 自动管理 history
tools=[{...}],
input=[...current step...] # 只传本轮输入
)
# 检查 output 中的 computer_call
# 执行动作 → 构造 computer_call_output → 下轮请求
关键差异:
- Claude 显式传递完整
messages数组 - OpenAI 支持
previous_response_id自动链接上下文,更省 token - Claude 用
tool_result类型返回结果;OpenAI 用computer_call_output类型
三、Computer Tool 能力对比
3.1 动作集对比
| 动作类型 | Claude (computer_20251124) | OpenAI Computer 接口 |
|---|---|---|
| 截图 | screenshot | screenshot() |
| 左键点击 | left_click (x, y) | click(x, y, button=left) |
| 右键点击 | right_click (x, y) | — ❌ |
| 中键点击 | middle_click (x, y) | — ❌ |
| 双击 | double_click (x, y) | double_click(x, y) |
| 三击 | triple_click (x, y) | — ❌ |
| 鼠标移动 | mouse_move (x, y) | move(x, y) |
| 拖拽 | left_click_drag (path) | drag(path) |
| 滚轮 | scroll (direction, amount) | scroll(x, y, scroll_x, scroll_y) |
| 输入文本 | type (text) | type(text) |
| 按键 | key (key_name) | keypress(keys) |
| 按住按键 | hold_key (key) + 其他动作 | — ❌ |
| 精确控制 | left_mouse_down / left_mouse_up | — ❌ |
| 等待 | wait | wait() |
| 自定义环境 | display_number (X11) | environment (browser/mac/windows/ubuntu) |
| 局部放大 | enable_zoom ✅ | — ❌ |
Claude 优势:动作集更丰富(约 17 种 vs 9 种核心),支持 hold_key(如 Ctrl+点击)、triple_click、鼠标按键精确控制(按下/释放)等细粒度操作。
OpenAI 优势:environment 参数显式告知模型当前环境类型,有助于模型选择正确的 GUI 交互策略。
3.2 工具声明方式
# Claude — tools 数组声明
tools = [{
"type": "computer_20251124", # 版本化工具类型
"name": "computer",
"display_width_px": 1280, # 坐标空间声明
"display_height_px": 720,
"display_number": 1,
"enable_zoom": True # 可选功能开关
}]
# OpenAI — tools 数组声明(Responses API)
tools = [{
"type": "computer_use_preview",
"display_width": 1024, # 坐标空间
"display_height": 768,
"environment": "browser" # 环境类型提示
}]
四、底层模型能力对比
4.1 模型演进路线
| 时间 | Anthropic | OpenAI |
|---|---|---|
| 2024-10 | Claude Sonnet 3.5(新版)首发 computer_use | — |
| 2025-01 | — | 发布 CUA(GPT-4o + RL 训练),用于 Operator |
| 2025-04 | Claude Opus 4 / Sonnet 4 发布,computer_20250124 | — |
| 2025-09 | — | Codex 升级 GPT-5-Codex,CUA 能力下放 |
| 2026-03 | — | GPT-5.4 发布,第一个原生支持 computer use 的通用模型 |
| 2026-05 | Claude Sonnet 4.6 / Opus 4.6 发布 | — |
| 2026-07 | Claude Opus 4.7 发布,更高分辨率支持 | — |
4.2 视觉输入能力
| 维度 | Claude 4.6 Family | Claude Opus 4.7 | GPT-5.4 |
|---|---|---|---|
| Max 长边 | 1568 px | 2576 px | 6000 px (original) |
| Max 总像素 | 1.15 MP | 3.75 MP | 10.24 MP (original) |
| 推荐分辨率 | 1280×720 | 1920×1080 | — |
| 图片 detail | API 内部自动缩放 | API 内部自动缩放 | low/high/original 可选 |
| 坐标空间匹配 | 需要显式声明 display_width_px/height_px | 同左 | display_width/height |
关键洞察:两边模型内部都会对超分辨率图片进行下采样,但处理方式不同:
- Claude 是隐式处理:API 内部自动缩放后返回对应坐标
- GPT-5.4 引入显式 detail level 选择,给开发者更多控制
Claude 官方特别强调:必须在发送前手动将截图缩放到 API 限制内,否则 API 会静默下采样导致「模型看到的图片」和「它返回的坐标空间」不匹配——这是 click 不准的第一大原因。
4.3 基准测试成绩
| Benchmark | Claude 4.6 | Claude Opus 4.7 | GPT-5.4 | Human |
|---|---|---|---|---|
| OSWorld-Verified | ~48% | 72.7% | 75.0% | 72.4% |
| WebArena-Verified | — | — | 67.3% | — |
⚠️ 注意:这些数字来自不同时间点的官方发布,具体测试设置(最大步数、分辨率)可能有差异,不完全可比。
五、安全机制对比
5.1 Prompt Injection 防护
| 方面 | Claude | OpenAI |
|---|---|---|
| 检测层 | 模型内置抵抗 + 额外分类器检测截图中的恶意指令 | API 层三类安全检查 |
| 触发方式 | 自动运行分类器 → 引导模型请求用户确认 | 返回 pending_safety_checks → 应用层决定是否确认 |
| 检查类型 | 统一的 prompt injection 分类器 | malicious_instructions(恶意指令) |
irrelevant_domain(不相关域名) | ||
sensitive_domain(敏感域名) | ||
| 用户确认 | 如果检测到,模型会主动请求用户确认下一步 | pending_safety_checks 必须通过 acknowledged_safety_checks 回传才能继续 |
| 可关闭 | 可联系 Anthropic 关闭额外保护 | — |
5.2 沙箱隔离
| 方面 | Claude Code | Codex |
|---|---|---|
| 默认隔离 | 参考实现提供 Docker 容器 | 默认沙箱,网络访问禁用 |
| 网络策略 | 建议域名白名单 | 默认禁网,可按需开启 |
| 权限控制 | 建议最小权限 VM/容器 | 工作区文件系统限制 |
六、技术实现细节
6.1 坐标缩放的关键陷阱
两边都需要开发者处理的问题:
截图原始分辨率 (screen_w × screen_h)
↓ 下采样
模型看到的图片 (display_w × display_h)
↓ 返回坐标
模型输出点击坐标 (click_x, click_y) —— 注意这是 display 坐标系!
↓ 缩放回去
实际执行位置 (click_x * screen_w/display_w, click_y * screen_h/display_h)
Claude 官方给出的代码模式:
# 模型返回 display 坐标系的坐标,需要缩放回实际屏幕
scale_x = screen_w / display_w # display_w 是传给 API 的值
scale_y = screen_h / display_h
actual_x = int(click_x * scale_x)
actual_y = int(click_y * scale_y)
6.2 Claude 的 enable_zoom 机制
Claude 4.6+ 新增 enable_zoom: True 功能:
- 模型可以自主决定「放大」某个屏幕区域
- 针对密集 UI 中的小目标(checkbox、系统托盘图标等)特别有效
- 放大逻辑在模型内部完成,开发者无需额外处理
6.3 OpenAI Responses API 的 previous_response_id
GPT-5.4 引入的对话上下文管理机制:
# 无需手动拼接消息历史
response1 = client.responses.create(model="gpt-5.4", ...)
response2 = client.responses.create(
model="gpt-5.4",
previous_response_id=response1.id, # 自动链接
input=[...] # 只传本轮
)
这比 Claude 每次显式传递完整 messages 数组更高效,节省 token。
6.4 Codex 的组合能力
Codex(GPT-5.4)可以同时使用多种工具:
bash— 执行 shell 命令computer— 视觉+鼠标键盘file_search— 文件搜索web_search— 网页搜索- 自定义 MCP 工具
Claude Code 类似,可以组合 computer + bash + text_editor 三个 beta 工具。
七、开发体验对比
| 维度 | Claude | OpenAI |
|---|---|---|
| API 类型 | Messages API (beta) | Responses API |
| 上下文管理 | 手动传递 messages | previous_response_id 自动链接 |
| 工具声明 | tools 数组 + beta header | tools 数组 |
| Beta 状态 | 需要 beta header 标记 | computer-use-preview 模型专用 |
| 参考实现 | Docker + Python,GitHub 开源 | Azure OpenAI 提供 Playwright 示例 |
| SDK 支持 | Python/SDK + CLI | Python OpenAI Agents SDK + JS Agents SDK |
| 可组合性 | computer + bash + text_editor | computer + Playwright + 任意工具 |
八、总结:谁更好?
8.1 技术特性对比矩阵
| 维度 | Claude (4.6/4.7) | GPT-5.4 | 胜出 |
|---|---|---|---|
| 动作丰富度 | ⭐⭐⭐⭐⭐ (17种) | ⭐⭐⭐⭐ (9种) | Claude |
| OSWorld 成功率 | 72.7% (Opus 4.7) | 75.0% | GPT-5.4 |
| 图片分辨率上限 | 3.75 MP | 10.24 MP | GPT-5.4 |
| enable_zoom 局部放大 | ✅ | ❌ | Claude |
| hold_key 等复合操作 | ✅ | ❌ | Claude |
| 安全检查细化 | 统一分类器 | 三类检查 | OpenAI |
| 上下文管理效率 | 手动 history | previous_response_id | OpenAI |
| 通用模型原生支持 | 是(但通过 beta 工具) | 是(原生能力) | 持平 |
| 训练基础 | 基础视觉模型 + 工具调用对齐 | RL 训练 CUA + 通用视觉 | 风格不同 |
8.2 选择建议
选 Claude 如果:
- 需要丰富的鼠标/键盘细粒度控制(hold_key、triple_click 等)
- 目标 UI 密集、小目标多(enable_zoom 能显著提升)
- 需要开源参考实现快速上手
选 GPT-5.4 如果:
- 追求最高 OSWorld 等 benchmark 成绩
- 需要处理高分辨率原始截图(10.24MP)
- 希望 API 更标准、上下文管理更高效
- 已经在使用 Codex 或 OpenAI Agents SDK
两者共同的工程挑战:
- 坐标缩放 —— 模型坐标系 vs 实际屏幕坐标系的对齐是 click 准确率的基础
- 图片下采样 —— 必须在发送前手动控制,不能依赖 API 自动处理
- Agent Loop 终止条件 —— 需要设置最大迭代次数防止无限循环
- Prompt injection 防护 —— 两边都有机制,但开发者仍需做好隔离
九、核心结论
两者底层都是「视觉模型理解截图 → 输出鼠标/键盘坐标 → 用户端执行 → 返回新截图」的 Agent Loop 范式,但设计哲学不同:
- Claude:给模型更多动作选项,让它用丰富词汇表达意图(17 种动作 + enable_zoom)
- OpenAI:用更好的训练和更高的分辨率让模型看清楚(RL 训练 + 10.24MP 输入)
选择哪一个更多取决于你的具体场景和已有的技术栈。
Sources
- Anthropic Computer Use API Docs — docs.anthropic.com/en/docs/age…
- Anthropic Best Practices for Computer and Browser Use — claude.com/blog/best-p…
- OpenAI Computer-Using Agent 发布 — openai.com/index/compu…
- OpenAI Introducing GPT-5.4 — openai.com/index/intro…
- OpenAI Agents SDK Computer 接口 — openai.github.io/openai-agen…
- Azure OpenAI Computer Use — learn.microsoft.com/en-us/azure…
- OpenAI Introducing Upgrades to Codex — openai.com/index/intro…
- OSWorld 2.0 Benchmark — arxiv.org/abs/2606.29…