首页
看点啥
插画图片
首页 科技看点 Claude Code vs Codex:Computer Use实现方式原理深度拆解实用指南

Claude Code vs Codex:Computer Use实现方式原理深度拆解实用指南

2026-10-28 0

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“Claude Code vs Codex:Computer Use实现方……”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

一、核心概念澄清

在深入技术细节之前,首先厘清两个容易混淆的事实:

产品底层模型Computer Use 集成方式
Claude CodeClaude Sonnet 3.5/3.7、Claude 4 Opus/Sonnet、Claude 4.6、Opus 4.7直接借助 Anthropic API 的 computer_use 工具集实现
OpenAI CodexGPT-5-Codex、GPT-5.4GPT-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 接口
截图screenshotscreenshot()
左键点击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—
等待waitwait()
自定义环境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 模型演进路线

时间AnthropicOpenAI
2024-10Claude 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-05Claude Sonnet 4.6 / Opus 4.6 发布—
2026-07Claude Opus 4.7 发布,更高分辨率兼容—

4.2 视觉输入能力

维度Claude 4.6 FamilyClaude Opus 4.7GPT-5.4
Max 长边1568 px2576 px6000 px (original)
Max 总像素1.15 MP3.75 MP10.24 MP (original)
建议分辨率1280×7201920×1080—
图片 detailAPI 内部自动缩放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 基准测试成绩

BenchmarkClaude 4.6Claude Opus 4.7GPT-5.4Human
OSWorld-Verified~48%72.7%75.0%72.4%
WebArena-Verified——67.3%—

注意:这些数字来自不同时间点的官方发布,具体测试设置(最大步数、分辨率)可能有差异,不完全可比。

五、安全机制对比

5.1 Prompt Injection 防护

方面ClaudeOpenAI
检测层模型内置抵抗 + 额外分类器检测截图中的恶意指令API 层三类安全检查
触发方式自动运行分类器 → 引导模型请求用户确认得到 pending_safety_checks → 应用层决定是否确认
检查类型统一的 prompt injection 分类器malicious_instructions(恶意指令)
irrelevant_domain(不相关域名)
sensitive_domain(敏感域名)
用户确认若检测到,模型会主动请求用户确认下一步pending_safety_checks 必须借助 acknowledged_safety_checks 回传才能继续
可关闭可联系 Anthropic 关闭额外保护—

5.2 沙箱隔离

方面Claude CodeCodex
默认隔离参考实现提供 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 工具。

七、开发体验对比

维度ClaudeOpenAI
API 类型Messages API (beta)Responses API
上下文管理手动传递 messagesprevious_response_id 自动链接
工具声明tools 数组 + beta headertools 数组
Beta 状态需 beta header 标记computer-use-preview 模型专用
参考实现Docker + Python,GitHub 开源Azure OpenAI 提供 Playwright 示例
SDK 兼容Python/SDK + CLIPython OpenAI Agents SDK + JS Agents SDK
可组合性computer + bash + text_editorcomputer + 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 MP10.24 MPGPT-5.4
enable_zoom 局部放大Claude
hold_key 等复合操作Claude
安全检查细化统一分类器三类检查OpenAI
上下文管理效率手动 historyprevious_response_idOpenAI
通用模型原生兼容是(但借助 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

两者共同的工程挑战:

  1. 坐标缩放 —— 模型坐标系 vs 实际屏幕坐标系的对齐是 click 准确率的基础
  2. 图片下采样 —— 必须在发送前手动控制,不能依赖 API 自动处理
  3. Agent Loop 终止条件 —— 需设置最大迭代次数防止无限循环
  4. Prompt injection 防护 —— 两边都有机制,但开发者仍需做好隔离

九、核心结论

理解这一步时,两者底层都是「视觉模型理解截图 → 输出鼠标/键盘坐标 → 用户端执行 → 得到新截图」的 Agent Loop 范式,但设计哲学不同:

  • Claude:给模型更多动作选项,让它用丰富词汇表达意图(17 种动作 + enable_zoom)
  • OpenAI:用更好的训练和更高的分辨率让模型看清楚(RL 训练 + 10.24MP 输入)

选择哪一个更多取决于你的具体场景和已有的技术栈。

落到代码里,总的来说,Claude适合结合实际项目边做边理解。先抓住核心思路,再逐步补上细节和边界处理,最后效果会更稳定,也更容易复用。

喜欢(0)

上一篇

C#中StringBuilder的核心机制与最佳实践实用指南

C#中StringBuilder的核心机制与最佳实践实用指南

下一篇

使用CC-Switch将DeepSeek接入Codex的完整配置教程实用指南

猜你喜欢