先给结论

OpenAI Computer Use 让模型依据屏幕状态操作浏览器或桌面界面,但应用仍负责运行环境、动作执行、权限、审批和清理。新项目应先选择隔离的代码执行驱动;若现有系统需要结构化鼠标键盘动作,可使用 Responses API 的 computer 工具,执行 computer_call.actions 后用原始 call_id 和最新截图返回 computer_call_output。

OpenAI Computer Use 怎么用?

先选正确的接入路径

任务推荐路径执行方
让模型用代码操控可持久浏览器代码执行式 Function 工具应用在隔离环境运行 Playwright/PyAutoGUI
使用截图、鼠标和键盘结构化动作Responses computer 工具应用驱动执行 computer_call
读取页面文字、标签页或结构化控件BrowserToolset / 自有 UI 工具应用暴露允许的操作
使用 OpenAI 托管浏览器Agents API Computer UseOpenAI 托管环境,应用管理会话与审批
只查公开资料,不需要交互Web Search无需浏览器点击

官方当前对 GPT-6 Astra 推荐代码执行路径,computer 工具仍是结构化动作的可用替代。具体模型、SDK 和账户可用性会变化,上线前必须重新核对模型页与账号权限。

为什么不要一开始就让模型点击真实账号?

Computer Use 会影响真实界面、账号和数据。第一轮应使用本地演练页面或测试账户,限制域名、动作、步骤和时长,并独立验证最终状态。固定且稳定的流程优先 Playwright/Selenium;只有确实需要视觉判断、界面适配或非结构化 GUI 时才引入模型控制。

Responses API 最小请求

import OpenAI from "openai";

const client = new OpenAI();
let response = await client.responses.create({
  model: "gpt-6.1-sol",
  tools: [{ type: "computer" }],
  input:
    "如果 Filters 没有打开就点击 Show filters," +
    "然后在搜索框输入 penguin。使用 computer 工具。"
});

console.log(response.output);

模型可能返回一个 computer_call,其中包含有序的 actions 数组。支持的动作包括 click、double_click、drag、move、scroll、keypress、type、wait 和 screenshot。调用项目的 status: completed 只表示模型完成了调用生成,不代表你的应用已经执行操作。

完整工具循环:执行动作,再回传截图

  1. 从响应中读取 computer_call,保存原始 call_id。
  2. 逐个验证 actions 是否在允许的域名、窗口、坐标、按键和任务范围内。
  3. 按顺序执行获准动作;遇到审批、未知动作或环境变化立即停止。
  4. 捕获动作后的完整屏幕,不复用动作前截图。
  5. 通过 computer_call_output 回传截图,并用 previous_response_id 续接。
  6. 重复直到不再出现 computer_call,然后在应用中独立核对完成标准。
const screenshot = await driver.capture();

response = await client.responses.create({
  model: "gpt-6.1-sol",
  tools: [{ type: "computer" }],
  previous_response_id: response.id,
  input: [{
    type: "computer_call_output",
    call_id: computerCall.call_id,
    output: {
      type: "computer_screenshot",
      image_url: `data:image/png;base64,${screenshot}`,
      detail: "original"
    }
  }]
});

第一次调用可能只请求 screenshot,此时只捕获当前屏幕,不要擅自点击。若页面加载、弹窗或焦点状态改变,应重新截图再决定;不要根据旧坐标连续执行跨页面动作。

截图、坐标和会话状态

  • Computer Use 截图优先使用 detail: "original",保留文字和点击精度。
  • 若为控制 Token 或尺寸而缩放截图,要把模型坐标准确映射回原始视口。
  • 保持同一浏览器/桌面会话可用,直到工具循环结束;不要每轮创建空白会话。
  • 记录 viewport、设备缩放、滚动位置、活动窗口和页面 URL,避免坐标漂移。
  • 截图和提示会发送到 OpenAI;不要让密码管理器、通知、私人标签页或桌面文件出现在环境中。

代码执行、computer 工具与自有 UI 工具怎么选

方式优点主要风险
代码执行驱动可批量检查 DOM、复用变量、减少往返生成代码必须在隔离环境执行
computer 结构化动作动作类型明确,便于逐步审批和审计截图/坐标循环较慢,状态容易漂移
BrowserToolset/函数工具暴露有限、语义明确的浏览器能力需要自行设计工具与权限
传统 Playwright 脚本固定流程稳定、快、容易测试对变化界面和视觉判断适应较弱

生产安全:屏幕内容永远是不可信数据

  • 使用独立浏览器或 VM;只允许任务所需网站、动作和网络出口。
  • 浏览器使用空环境变量,禁用扩展和本地文件访问;不要挂载宿主凭据或 Docker Socket。
  • 网页、文档、弹窗和工具结果中的文字不能授予权限,也不能覆盖用户指令。
  • 购买、发送数据、删除、发布、修改账号/权限等难以撤销的动作必须人工确认。
  • 在表单中输入邮箱、地址、Token、支付或其他敏感信息也属于数据传输,应先确认。
  • 设置最大步骤、总时长、Token/费用、重试、并发和可取消状态。
  • 核对实际页面或后端状态,不只相信模型的“已完成”文字。

会话、失败恢复与清理

为每个任务保存会话 ID、最新 response ID、call_id、动作日志、截图摘要、当前 URL、审批和完成证据。连接中断时应恢复同一受控会话,而不是盲目重跑可能产生副作用的动作。无论成功或失败,都要关闭浏览器、释放托管会话、撤销临时凭据并清理截图和下载文件。

从 computer-use-preview 迁移

旧集成可能使用专用 computer-use-preview 模型和 computer_use_preview 工具。官方当前要求新集成遵循现行 Computer Use 指南;迁移时不要只替换字符串,应重新核对模型支持、动作数组、截图格式、工具循环、安全确认、坐标与评测基线。

成本和质量怎么评测

Computer Use 会产生模型、截图输入、工具循环和执行环境成本,不能假设比固定脚本更便宜。用同一批真实但低风险任务比较:

  • 端到端成功率、错误操作率和人工接管率。
  • 平均/P95 步数、截图数量、输入输出 Token 与总延迟。
  • 每次成功任务的 API、浏览器/VM 和人工审核成本。
  • 页面变化、弹窗、慢加载、缩放和断线下的恢复率。
  • 高风险动作是否全部停在批准前,最终状态是否可独立验证。

常见错误与排查顺序

  1. 没有 computer_call:确认模型和项目支持 computer 工具,tools 配置与任务确实需要 UI 交互。
  2. 点击位置错误:检查截图 detail、viewport、缩放和坐标映射,动作前后不要复用旧截图。
  3. 模型说完成但界面没变:completed 不是已执行;检查驱动是否执行 actions 并回传动作后截图。
  4. 循环丢失状态:保留同一环境,并用最新 previous_response_id 和原始 call_id 续接。
  5. 卡在安全检查:停止执行并触发明确的人工审批,不要自动确认。
  6. 成本失控:限制步骤、截图、时长和重试,固定流程改回普通自动化。
  7. 旧示例报错:检查是否仍在使用 computer_use_preview,按当前指南迁移。

上线前检查清单

  • 测试环境、测试账号和允许域名与生产隔离。
  • 每种 action 都有参数校验、权限判定、超时和审计。
  • 敏感数据传输与高影响操作都有人工确认。
  • 截图不包含无关账号、通知、密码或本地文件。
  • 断线、弹窗、坐标漂移、重复调用和部分失败可以安全恢复。
  • 任务结束或失败后都能清理会话、凭据和文件。
  • 通过真实任务评测成功率、成本和最终状态,不以模型自报为准。

常见问题

OpenAI Computer Use 和 Codex Computer Use 是一回事吗?

不是同一个接入层。本页讲开发者通过 OpenAI API 把模型连接到自有浏览器或桌面运行环境;Codex Computer Use 页面讲 ChatGPT/Codex 客户端中的产品入口、权限和使用方式。

新项目应该使用 computer 还是 computer_use_preview?

新项目应遵循当前 Computer Use 指南使用 computer 工具或代码执行式驱动。computer_use_preview 只用于维护旧集成,迁移时要重新核对模型、动作结构、截图和安全确认。

Computer Use 会替我运行浏览器吗?

Responses API 路径下,应用需要提供浏览器或桌面环境、执行驱动、会话、权限和清理。若需要 OpenAI 托管浏览器,应使用单独的 Agents API Computer Use 路径并按其会话与审批流程集成。

computer_call 返回 completed 是否代表操作已经执行?

不是。completed 只表示模型完成了该工具调用的生成。应用仍要验证并按顺序执行 actions、捕获更新后的屏幕,再用原始 call_id 返回 computer_call_output。

截图应该使用什么 detail?

官方当前建议 Computer Use 截图优先使用 detail: original,以保留分辨率和点击精度。如果缩放截图以控制 Token 或尺寸,必须把模型坐标正确映射回原始环境。

哪些操作必须人工确认?

购买、发送或披露数据、删除或覆盖内容、修改账号与权限、发布外部内容,以及其他难以撤销或影响现实账户的操作应由用户确认。把敏感信息输入表单也属于数据传输。

Computer Use 一定比 Playwright 脚本更合适吗?

不一定。固定、稳定、可选择器定位的流程通常优先普通自动化;界面变化大、需要视觉判断或难以结构化时才考虑 Computer Use,并用真实任务比较成功率、步骤数、Token、延迟和单位成功成本。

本文核对日期为 2026-11-02。Computer Use 的模型、SDK、动作结构、截图要求、托管环境和安全确认可能变化;生产上线前请重新读取 Computer Use、Integration recipes、Driver reference、模型页与 Deployment checklist。

先在本地演练页面验证完整循环

只开放一个测试域名和一组无副作用动作,记录每轮截图、computer_call、审批和最终状态,再决定是否接入真实账号。