计算机控制(Computer Use)
Computer Use 让 Claude 能够通过截图、鼠标和键盘控制与计算机环境交互,实现自主的桌面操作自动化。
Beta 功能:Computer Use 目前处于 beta 阶段,需要使用 beta 标头:
"computer-use-2025-01-24"(Claude 4 模型和 Claude Sonnet 3.7)"computer-use-2024-10-22"(Claude Sonnet 3.5 [已弃用])
功能概览
Computer Use 是一项 beta 功能,让 Claude 能够与桌面环境交互。该工具提供:
- 截图捕获:查看屏幕上当前显示的内容
- 鼠标控制:点击、拖动和移动光标
- 键盘输入:输入文本和使用键盘快捷键
- 桌面自动化:与任何应用程序或界面交互
虽然 Computer Use 可以与 bash 和文本编辑器等其他工具结合使用以实现更全面的自动化工作流,但 Computer Use 特指计算机使用工具查看和控制桌面环境的能力。
模型兼容性
Computer Use 在以下 Claude 模型中可用:
| 模型 | 工具版本 | Beta 标头 |
|---|---|---|
| Claude 4 系列模型 | computer_20250124 | computer-use-2025-01-24 |
| Claude Sonnet 3.7 | computer_20250124 | computer-use-2025-01-24 |
| Claude Sonnet 3.5 v2(已弃用) | computer_20241022 | computer-use-2024-10-22 |
安全注意事项
安全风险:Computer Use 是一项 beta 功能,具有与标准 API 功能不同的独特风险。这些风险在与互联网交互时会加剧。为了降低风险,请考虑采取以下预防措施:
- 隔离环境:使用具有最小权限的专用虚拟机或容器,以防止直接系统攻击或意外。
- 保护敏感数据:避免让模型访问敏感数据(如账户登录信息),以防止信息盗窃。
- 限制网络访问:将互联网访问限制在允许列表域名内,以减少接触恶意内容。
- 人工确认:对于可能导致重大现实后果的决策以及需要明确同意的任务(如接受 Cookie、执行金融交易或同意服务条款),请人工确认。
提示注入风险:在某些情况下,Claude 会遵循内容中发现的命令,即使它与用户的指令冲突。例如,网页或图像中包含的 Claude 指令可能会覆盖指令或导致 Claude 出错。
我们建议采取预防措施,将 Claude 与敏感数据和操作隔离,以避免与提示注入相关的风险。我们已经训练模型抵抗这些提示注入,并添加了额外的防御层。如果您使用我们的 Computer Use 工具,我们会自动在您的提示上运行分类器以标记潜在的提示注入实例。
如果您想选择退出并关闭此保护,请联系我们。
最后,请告知最终用户相关风险,并在您自己的产品中启用 Computer Use 之前获得他们的同意。
快速开始
参考实现
我们提供了一个 Computer Use 参考实现,包含 Web 界面、Docker 容器、示例工具实现和代理循环。
基本使用示例
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
tools=[
{
"type": "computer_20250124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
"display_number": 1,
},
{
"type": "text_editor_20250124",
"name": "str_replace_editor"
},
{
"type": "bash_20250124",
"name": "bash"
}
],
messages=[
{
"role": "user",
"content": "打开浏览器并访问 example.com"
}
],
betas=["computer-use-2025-01-24"]
)工具定义
Computer 工具
{
"type": "computer_20250124",
"name": "computer",
"display_width_px": 1024, # 显示宽度(像素)
"display_height_px": 768, # 显示高度(像素)
"display_number": 1 # X11 显示编号(可选)
}支持的操作
Computer Use 工具支持以下操作:
| 操作 | 说明 | 示例 |
|---|---|---|
key | 按键盘按键 | {"action": "key", "text": "Return"} |
type | 输入文本 | {"action": "type", "text": "Hello"} |
mouse_move | 移动鼠标 | {"action": "mouse_move", "coordinate": [100, 200]} |
left_click | 左键点击 | {"action": "left_click"} |
left_click_drag | 拖动 | {"action": "left_click_drag", "coordinate": [300, 400]} |
right_click | 右键点击 | {"action": "right_click"} |
middle_click | 中键点击 | {"action": "middle_click"} |
double_click | 双击 | {"action": "double_click"} |
screenshot | 截图 | {"action": "screenshot"} |
cursor_position | 获取光标位置 | {"action": "cursor_position"} |
使用场景
1. Web 自动化
# 自动填写表单
response = client.beta.messages.create(
model="claude-sonnet-4-5",
max_tokens=2048,
tools=[computer_tool],
messages=[{
"role": "user",
"content": "访问 example.com/signup,填写注册表单,用户名是 'testuser',邮箱是 'test@example.com'"
}],
betas=["computer-use-2025-01-24"]
)2. 应用程序测试
# 自动化 UI 测试
response = client.beta.messages.create(
model="claude-sonnet-4-5",
max_tokens=2048,
tools=[computer_tool],
messages=[{
"role": "user",
"content": "打开计算器应用,执行 123 + 456 的计算,验证结果是否为 579"
}],
betas=["computer-use-2025-01-24"]
)3. 数据收集
# 从网站提取信息
response = client.beta.messages.create(
model="claude-sonnet-4-5",
max_tokens=2048,
tools=[computer_tool],
messages=[{
"role": "user",
"content": "访问 news.example.com,收集首页的所有新闻标题"
}],
betas=["computer-use-2025-01-24"]
)4. 工作流自动化
# 自动化办公任务
response = client.beta.messages.create(
model="claude-sonnet-4-5",
max_tokens=2048,
tools=[computer_tool, text_editor_tool, bash_tool],
messages=[{
"role": "user",
"content": "打开 report.docx,找到所有包含 'TODO' 的段落,提取出来并保存到 todos.txt"
}],
betas=["computer-use-2025-01-24"]
)最佳实践
1. 明确的指令
提供清晰、具体的步骤:
# ✅ 好的指令
"打开 Chrome 浏览器,访问 example.com,点击页面顶部的 'Login' 按钮,在用户名字段输入 'testuser'"
# ❌ 模糊的指令
"登录网站"2. 错误处理
实现重试和错误恢复机制:
max_retries = 3
for attempt in range(max_retries):
try:
response = client.beta.messages.create(
model="claude-sonnet-4-5",
max_tokens=2048,
tools=[computer_tool],
messages=messages,
betas=["computer-use-2025-01-24"]
)
break
except Exception as e:
if attempt == max_retries - 1:
raise
time.sleep(2 ** attempt)3. 安全隔离
在隔离环境中运行:
# 使用 Docker 容器
docker run -it --rm \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=$DISPLAY \
anthropic/computer-use-demo4. 监控和日志
记录所有操作以便调试和审计:
for block in response.content:
if block.type == "tool_use":
print(f"Tool: {block.name}")
print(f"Input: {block.input}")与其他工具结合
与 Bash 工具结合
tools = [
{
"type": "computer_20250124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768
},
{
"type": "bash_20250124",
"name": "bash"
}
]
# Claude 可以在使用 computer use 的同时执行命令行操作与文本编辑器结合
tools = [
{
"type": "computer_20250124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768
},
{
"type": "text_editor_20250124",
"name": "str_replace_editor"
}
]
# Claude 可以编辑文件并在 UI 中查看结果限制和注意事项
当前限制
- 性能:复杂的 UI 交互可能需要多次迭代
- 准确性:点击小目标或密集 UI 元素时可能不准确
- 文本识别:OCR 能力有限,可能无法识别所有文本
- 动态内容:处理动画或快速变化的内容可能有困难
不支持的操作
- 访问需要特殊权限的系统资源
- 直接操作硬件设备
- 绕过操作系统安全限制
- 与专有或加密内容交互
定价
Computer Use 工具使用的 token 计费方式:
- 输入 token:按标准输入价格计费
- 输出 token:按标准输出价格计费
- 图像处理:截图按图像 token 计费
成本优化:
- 仅在必要时使用截图
- 合理设置
max_tokens - 考虑使用更小的显示分辨率
常见问题
Q: Computer Use 可以在任何操作系统上工作吗?
A: Computer Use 主要针对 Linux 环境进行了优化和测试。虽然理论上可以在其他操作系统上工作,但我们建议使用 Linux(特别是在 Docker 容器中)以获得最佳体验。
Q: 如何处理需要人工确认的操作?
A: 在代理循环中实现人工确认机制:
if requires_confirmation(action):
user_approval = input(f"确认执行: {action}? (y/n): ")
if user_approval.lower() != 'y':
continueQ: Computer Use 可以访问互联网吗?
A: 可以,但强烈建议限制互联网访问到允许列表域名,以降低安全风险。
相关资源
下一步
- 探索 Extended Thinking 增强 Claude 的推理能力
- 了解 Agent Skills 构建可复用的技能系统
- 查看 Cookbook 获取更多自动化示例