Claude Computer Use 怎么用:1 小时跑通桌面操控
Claude Computer Use 怎么用?这篇用 Anthropic 官方 Docker 镜像 1 小时跑通桌面截屏 + 鼠标键盘控制,含 API 调用模板和踩坑清单
30 秒了解:Claude Computer Use 是什么
Claude Computer Use 是 Anthropic 让 Claude 模型能像人一样看屏幕、移动鼠标、敲键盘的能力。 你给一句指令「帮我去携程订张明天上海到北京的机票」,Claude 会自己截屏、识别页面、点击搜索框、填日期、点提交,全程不需要写脚本。
跟 ChatGPT Agent 模式 主要跑在 OpenAI 云端不一样,Computer Use 跑在你自己的机器(或自己的容器),所以理论上能操作任何你装的软件——Photoshop、Excel、本地数据库管理工具都行。
适用场景:
- 自动化测试:让 Claude 把你 App 所有按钮挨个点一遍
- 重复办公:每周从 5 个 SaaS 后台拉数据填到 Excel
- 数据搬运:从老系统截屏 OCR 到新系统手动录入
- 桌面自动化 demo:给客户演示「AI 能操作电脑」
谁应该开启:懂一点 Docker、能开发者模式接 API的人。完全不写代码请用 扣子 或 Dify 这类无代码平台。
准备工作
| 项目 | 要求 |
|---|---|
| 账号 | Anthropic 开发者账号 + API Key(console.anthropic.com) |
| 模型 | claude-3-5-sonnet-20241022 或更新版(支持 computer-use-2024-10-22 beta header) |
| 系统 | macOS / Linux / Windows(Docker Desktop 跑容器) |
| Docker | Docker Desktop 4.30+ 或 OrbStack |
| 内存 | 至少 8 GB(容器内跑 Xvfb + Firefox 比较吃内存) |
| API 余额 | 至少 10 美元(一次完整桌面任务大约 0.5-2 美元) |
为什么强烈推荐 Docker 方式:Anthropic 官方提供了 anthropic-quickstarts/computer-use-demo 镜像,预装好 Xvfb 虚拟桌面、Firefox、文件管理器、PyAutoGUI,省去自己搞虚拟桌面 + 权限授予的 80% 麻烦。在本机直接跑也能跑,但要给 Claude Code 全屏录屏 + 辅助功能权限,调试起来很折腾。
如果你想全本机跑而不用容器,先看下 Claude Code 安装教程 把基础环境装好,但还是建议第一次用 Docker。
详细操作步骤
第 1 步:拿到 API Key + 充值
打开 console.anthropic.com 注册账号,Settings → API Keys 新建一个 key,名字写「computer-use」方便后面查账。
去 Plans & Billing 充至少 10 美元。Computer Use 按 token 计费,每次截屏 Claude 看一张图算大约 1500-3000 tokens,桌面任务往往要 5-30 次截屏,单次任务成本 0.3-3 美元。
把 key 存到环境变量,别硬编码进代码:
export ANTHROPIC_API_KEY="sk-ant-api03-xxxxx"
第 2 步:拉官方 demo 镜像
Anthropic 官方在 GitHub 维护了一个开箱即用的容器镜像:
docker pull ghcr.io/anthropics/anthropic-quickstarts:computer-use-demo-latest
镜像大约 2.5 GB,第一次拉国内网络可能比较慢,可以用国内镜像加速器。
第 3 步:启动容器
新建一个工作目录存截图和日志:
mkdir -p ~/computer-use-workspace
cd ~/computer-use-workspace
启动容器,把 API key 注入进去,端口 8080 暴露成 Gradio Web 界面:
docker run \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
-v $HOME/.anthropic:/home/computeruse/.anthropic \
-p 5900:5900 \
-p 8501:8501 \
-p 6080:6080 \
-p 8080:8080 \
-it ghcr.io/anthropics/anthropic-quickstarts:computer-use-demo-latest
容器启动后浏览器打开 http://localhost:8080,左边是 Claude 对话窗,右边是虚拟桌面(VNC 实时画面)。
[此处放截图:computer use demo 的 Gradio 界面,左聊天右桌面]
第 4 步:发第一条指令
在左边对话框输入:
打开 Firefox,访问 anthropic.com,找到 Pricing 页面,把 Sonnet 模型的输入价格告诉我。
按发送,注意右边桌面:Claude 会先截屏一次看当前桌面长啥样,然后调用 computer 工具的 mouse_move、left_click 动作打开 Firefox,再 type 在地址栏输入 URL,整个过程像看一个实习生操作。
每一步 Claude 都会在对话区解释「我现在要点这个按钮,因为……」。这是 Computer Use 调试时最重要的信号,看它的推理就知道在哪一步开始走偏。
第 5 步:写第一个 API 调用脚本
Web 界面只适合 demo,真实用要靠 API。新建 computer_use_demo.py:
import anthropic
import base64
from pathlib import Path
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=4096,
tools=[
\{
"type": "computer_20241022",
"name": "computer",
"display_width_px": 1280,
"display_height_px": 800,
"display_number": 1,
\},
\{"type": "text_editor_20241022", "name": "str_replace_editor"\},
\{"type": "bash_20241022", "name": "bash"\},
],
messages=[\{
"role": "user",
"content": "打开计算器,算 1234 乘以 5678,把结果告诉我"
\}],
betas=["computer-use-2024-10-22"],
)
print(response.content)
跑:
python computer_use_demo.py
第一次跑会返回 Claude 的第一步动作(比如「截屏」),你需要写个循环把截屏结果回传给 Claude,它再给下一步。完整 agent loop 参考下面第 6 步。
第 6 步:搭一个完整 Agent Loop
Computer Use 不是「一问一答」,是 agent loop——Claude 出动作,你执行动作,把结果回传,Claude 再出下一步。
简化版 loop 长这样:
messages = [\{"role": "user", "content": "打开浏览器查今天上海天气"\}]
while True:
response = client.beta.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=4096,
tools=[...],
messages=messages,
betas=["computer-use-2024-10-22"],
)
# 取出工具调用
tool_uses = [b for b in response.content if b.type == "tool_use"]
if not tool_uses:
# 没工具调用说明任务结束
break
tool_results = []
for tool in tool_uses:
# 实际执行工具(截屏 / 点击 / 输入)
result = execute_tool(tool.name, tool.input)
tool_results.append(\{
"type": "tool_result",
"tool_use_id": tool.id,
"content": result,
\})
messages.append(\{"role": "assistant", "content": response.content\})
messages.append(\{"role": "user", "content": tool_results\})
execute_tool 是你自己实现的:截屏调 pyautogui.screenshot()、点击调 pyautogui.click(x, y)、输入调 pyautogui.typewrite()。官方 Docker 镜像里这部分代码已经写好了,看 /computer_use_demo/loop.py 直接抄。
OpenAI 的同类能力对比看 OpenAI Agents SDK 指南 和 Computer Use 概念解析。
5 个让 Computer Use 更稳的隐藏技巧
-
指令分步写:别一句话「帮我订机票」,拆成「打开携程 → 搜上海到北京 → 选明天 → 找最便宜的 → 截图给我看」。Claude 一次推理一步比一次推理 10 步成功率高得多。
-
截屏前 sleep 1.5 秒:页面没加载完就截屏,Claude 看到 loading 转圈圈会以为「这里啥都没有」乱点。
-
限制最大循环次数:写个
if step_count 大于 30: break,防止 Claude 陷死循环花光 API 余额。 -
关键场景加 prompt 提示位置:「页面右上角有个红色按钮,点它」比让 Claude 自己找快 5 倍。
-
永远在虚拟机里跑:哪怕 Docker 容器也算虚拟环境。别给 Claude 直接操作你主机——它有可能误点「清空回收站」「删除文件夹」。
常见坑 + 解决办法
| 现象 | 原因 | 解决 |
|---|---|---|
| API 返回 400 invalid_request_error | 没加 betas=["computer-use-2024-10-22"] 请求头 | 加上 beta header,并确认 SDK 版本大于等于 0.39 |
| Claude 一直点错位置 | 截屏分辨率和 display_width_px 不匹配 | 容器 Xvfb 启动参数和 API 配置都设成 1280x800 |
| 任务跑到一半卡住 | Claude 输出了 stop_reason=“end_turn” 但任务没完成 | 在 system prompt 加「除非用户确认完成,否则继续输出工具调用」 |
| 容器内 Firefox 打不开 | Xvfb 没起来或显存不够 | 重启容器,给 Docker 至少分配 8 GB 内存 |
| API 余额烧得飞快 | 每次都把完整截屏传上去 | 把 display_width_px 调到 1024 以下,截屏大小减半 |
| 桌面里看到 Claude 操作很慢 | VNC 延迟,不是 Claude 慢 | 用 noVNC 6080 端口或装本机 VNC client 看 |
API 报错具体原因看 Function Calling 是什么 里的工具调用原理;想自己接 MCP 工具看 MCP 是什么。
一个实战案例:让 Claude 自动整理桌面截图
每周末整理截图文件夹是个无聊活儿——按日期分文件夹、删除模糊截屏、重命名。让 Computer Use 干:
你的任务:帮我整理 ~/Desktop/screenshots 目录下的所有 PNG 文件。
执行步骤:
- 用 bash 工具列出 screenshots 目录下所有 PNG 文件,含创建日期
- 按年-月分组(例如 2026-05 一个文件夹)
- 用 bash 创建对应的子文件夹,把文件移动进去
- 对每张图截屏识别一下内容
- 如果图片明显是误截屏(全黑、全白、文件大小小于 50 KB),移动到 ~/Desktop/screenshots/trash
- 完成后输出报告:处理了多少张、分了几个月、放了多少张到 trash
约束:
- 不要删除任何文件,所有操作都是移动
- 每处理 10 张图截屏一次给我看进度
- 全部完成后告诉我「整理完毕,共 X 张」
把这段贴到容器的 Gradio 界面,Claude 会自己开终端 + 截屏 + 移动文件,全程不需要你点鼠标。一次大约花 0.5-1.5 美元 API 费用,对比手工整理 1 小时,性价比相当高。
更复杂的多步骤工作流学一下 扣子工作流指南、Dify 工作流指南,再回来加到 Computer Use 任务编排里。
下一步学什么
学完 Computer Use 基础,建议按这个顺序往下:
- Computer Use 是什么:补充概念背景和能力边界
- OpenAI Agents SDK 指南:对比 OpenAI 同类方案
- Multi-Agent 是什么:多个 Computer Use Agent 协作做更大任务
- AI Agent 完整指南:从概念到部署的全景
Computer Use 现在还是 beta,API 偶尔会变,生产环境用之前一定要看 Anthropic 官方变更日志(platform.claude.com/docs/build-with-claude/computer-use)。但即便是 beta,已经可以做出来很多以前要写 100 行 RPA 脚本才能做的事——这就是 Agent 时代的杠杆。