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 Use | OpenAI 托管环境,应用管理会话与审批 |
| 只查公开资料,不需要交互 | 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 只表示模型完成了调用生成,不代表你的应用已经执行操作。
完整工具循环:执行动作,再回传截图
- 从响应中读取
computer_call,保存原始call_id。 - 逐个验证 actions 是否在允许的域名、窗口、坐标、按键和任务范围内。
- 按顺序执行获准动作;遇到审批、未知动作或环境变化立即停止。
- 捕获动作后的完整屏幕,不复用动作前截图。
- 通过
computer_call_output回传截图,并用previous_response_id续接。 - 重复直到不再出现 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 和人工审核成本。
- 页面变化、弹窗、慢加载、缩放和断线下的恢复率。
- 高风险动作是否全部停在批准前,最终状态是否可独立验证。
常见错误与排查顺序
- 没有 computer_call:确认模型和项目支持 computer 工具,tools 配置与任务确实需要 UI 交互。
- 点击位置错误:检查截图 detail、viewport、缩放和坐标映射,动作前后不要复用旧截图。
- 模型说完成但界面没变:completed 不是已执行;检查驱动是否执行 actions 并回传动作后截图。
- 循环丢失状态:保留同一环境,并用最新 previous_response_id 和原始 call_id 续接。
- 卡在安全检查:停止执行并触发明确的人工审批,不要自动确认。
- 成本失控:限制步骤、截图、时长和重试,固定流程改回普通自动化。
- 旧示例报错:检查是否仍在使用 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。