概述
计算机使用是一个测试版功能,使 Claude 能够与桌面环境交互。该工具提供:- 截图捕获:查看屏幕上当前显示的内容
- 鼠标控制:点击、拖拽和移动光标
- 键盘输入:输入文本和使用键盘快捷键
- 桌面自动化:与任何应用程序或界面交互
模型兼容性
计算机使用适用于以下 Claude 模型:| 模型 | 工具版本 | 测试版标志 |
|---|---|---|
| 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 |
Claude 4 模型使用针对新架构优化的更新工具版本。Claude Sonnet 3.7 引入了额外功能,包括思考功能,可以更深入地了解模型的推理过程。
较旧的工具版本不保证与较新的模型向后兼容。始终使用与您的模型版本对应的工具版本。
安全考虑
计算机使用是一个测试版功能,具有与标准 API 功能不同的独特风险。在与互联网交互时,这些风险会加剧。为了最小化风险,请考虑采取以下预防措施:
- 使用具有最小权限的专用虚拟机或容器,以防止直接系统攻击或意外事故。
- 避免让模型访问敏感数据,如账户登录信息,以防止信息盗窃。
- 将互联网访问限制在允许的域名列表内,以减少恶意内容的暴露。
- 要求人工确认可能导致有意义的现实世界后果的决定,以及任何需要肯定同意的任务,如接受 cookies、执行金融交易或同意服务条款。
计算机使用参考实现
通过我们的计算机使用参考实现快速开始,该实现包括 Web 界面、Docker 容器、示例工具实现和代理循环。注意: 该实现已更新,包含适用于 Claude 4 模型和 Claude Sonnet 3.7 的新工具。请确保拉取仓库的最新版本以访问这些新功能。
请使用此表单提供关于模型响应质量、API 本身或文档质量的反馈 - 我们迫不及待地想听到您的意见!
快速开始
以下是如何开始使用计算机使用:测试版标头要求:
- Claude 4 模型和 Claude Sonnet 3.7:仅计算机使用工具需要测试版标头
- Claude Sonnet 3.5(已弃用):计算机、bash 和文本编辑器工具都需要测试版标头
计算机使用的工作原理
1. 为 Claude 提供计算机使用工具和用户提示
- 将计算机使用工具(以及可选的其他工具)添加到您的 API 请求中。
- 包含需要桌面交互的用户提示,例如”保存一张猫的图片到我的桌面”。
2. Claude 决定使用计算机使用工具
- Claude 评估计算机使用工具是否可以帮助处理用户的查询。
- 如果是,Claude 构造一个格式正确的工具使用请求。
- API 响应的
stop_reason为tool_use,表示 Claude 的意图。
3. 提取工具输入,在计算机上评估工具,并返回结果
- 在您这边,从 Claude 的请求中提取工具名称和输入。
- 在容器或虚拟机上使用该工具。
- 使用包含
tool_result内容块的新user消息继续对话。
4. Claude 继续调用计算机使用工具,直到完成任务
- Claude 分析工具结果,确定是否需要更多工具使用或任务已完成。
- 如果 Claude 决定需要另一个工具,它会以另一个
tool_usestop_reason响应,您应该返回到步骤 3。 - 否则,它会为用户制作文本响应。
计算环境
计算机使用需要一个沙盒计算环境,Claude 可以在其中安全地与应用程序和网络交互。该环境包括:- 虚拟显示器:一个虚拟 X11 显示服务器(使用 Xvfb),渲染 Claude 将通过截图看到并通过鼠标/键盘操作控制的桌面界面。
- 桌面环境:在 Linux 上运行的轻量级 UI,带有窗口管理器(Mutter)和面板(Tint2),为 Claude 提供一致的图形界面进行交互。
- 应用程序:预安装的 Linux 应用程序,如 Firefox、LibreOffice、文本编辑器和文件管理器,Claude 可以使用这些应用程序完成任务。
- 工具实现:集成代码,将 Claude 的抽象工具请求(如”移动鼠标”或”截图”)转换为虚拟环境中的实际操作。
- 代理循环:处理 Claude 和环境之间通信的程序,将 Claude 的操作发送到环境并将结果(截图、命令输出)返回给 Claude。
- 接收 Claude 的工具使用请求
- 将它们转换为您的计算环境中的操作
- 捕获结果(截图、命令输出等)
- 将这些结果返回给 Claude
如何实现计算机使用
从我们的参考实现开始
我们构建了一个参考实现,包含您快速开始使用计算机使用所需的一切:理解多代理循环
计算机使用的核心是”代理循环” - 一个循环,其中 Claude 请求工具操作,您的应用程序执行它们,并将结果返回给 Claude。以下是一个简化的示例:使用计算机使用工具时,您必须为您的模型版本包含适当的测试版标志:
注意:对于 Claude 4 模型和 Claude Sonnet 3.7,仅计算机使用工具需要测试版标志。对于 Claude Sonnet 3.5(已弃用),计算机、bash 和文本编辑器工具都需要测试版标志。
Claude 4 模型
Claude 4 模型
使用
computer_20250124 时,包含此测试版标志:Claude Sonnet 3.7
Claude Sonnet 3.7
使用
computer_20250124 时,包含此测试版标志:Claude Sonnet 3.5 v2(已弃用)
Claude Sonnet 3.5 v2(已弃用)
使用
computer_20241022 时,包含此测试版标志:通过提示优化模型性能
以下是如何获得最佳质量输出的一些技巧:- 指定简单、定义明确的任务,并为每个步骤提供明确的指令。
- Claude 有时会假设其操作的结果而不明确检查其结果。为了防止这种情况,您可以提示 Claude:
在每个步骤之后,截图并仔细评估您是否达到了正确的结果。明确显示您的思考:"我已经评估了步骤 X..."如果不正确,请重试。只有当您确认步骤执行正确时,才应该继续下一步。 - 一些 UI 元素(如下拉菜单和滚动条)可能对 Claude 使用鼠标移动进行操作比较困难。如果您遇到这种情况,请尝试提示模型使用键盘快捷键。
- 对于可重复的任务或 UI 交互,在您的提示中包含成功结果的示例截图和工具调用。
- 如果您需要模型登录,请在您的提示中在 xml 标签内提供用户名和密码,如
<robot_credentials>。在需要登录的应用程序中使用计算机使用会增加由于提示注入而导致不良结果的风险。在向模型提供登录凭据之前,请查看我们的缓解提示注入指南。
如果您反复遇到一组明确的问题或提前知道 Claude 需要完成的任务,请使用系统提示为 Claude 提供关于如何成功完成任务的明确提示或指令。
系统提示
当通过 Claude API 请求 Anthropic 定义的工具之一时,会生成特定于计算机使用的系统提示。它类似于工具使用系统提示,但以以下内容开始:您可以访问一组函数,可以使用这些函数来回答用户的问题。这包括访问沙盒计算环境。除了调用以下函数外,您目前无法检查文件或与外部资源交互。与常规工具使用一样,用户提供的
system_prompt 字段仍然受到尊重,并用于构建组合系统提示。
可用操作
计算机使用工具支持这些操作: 基本操作(所有版本)- screenshot - 捕获当前显示
- left_click - 在坐标
[x, y]处点击 - type - 输入文本字符串
- key - 按键或组合键(例如,“ctrl+s”)
- mouse_move - 将光标移动到坐标
computer_20250124)
适用于 Claude 4 模型和 Claude Sonnet 3.7:
- scroll - 向任何方向滚动并控制数量
- left_click_drag - 在坐标之间点击并拖拽
- right_click、middle_click - 其他鼠标按钮
- double_click、triple_click - 多次点击
- left_mouse_down、left_mouse_up - 细粒度点击控制
- hold_key - 在执行其他操作时按住键
- wait - 在操作之间暂停
示例操作
示例操作
工具参数
| 参数 | 必需 | 描述 |
|---|---|---|
type | 是 | 工具版本(computer_20250124 或 computer_20241022) |
name | 是 | 必须是 “computer” |
display_width_px | 是 | 显示宽度(像素) |
display_height_px | 是 | 显示高度(像素) |
display_number | 否 | X11 环境的显示编号 |
为了获得最佳性能,请将显示分辨率保持在 1280x800(WXGA)或以下。由于图像调整大小,更高的分辨率可能会导致准确性问题。
重要:计算机使用工具必须由您的应用程序明确执行 - Claude 无法直接执行它。您负责根据 Claude 的请求实现截图捕获、鼠标移动、键盘输入和其他操作。
在 Claude 4 模型和 Claude Sonnet 3.7 中启用思考功能
Claude Sonnet 3.7 引入了一个新的”思考”功能,允许您在模型处理复杂任务时看到其推理过程。此功能帮助您了解 Claude 如何处理问题,对于调试或教育目的特别有价值。 要启用思考,请在您的 API 请求中添加thinking 参数:
budget_tokens 参数指定 Claude 可以用于思考的令牌数量。这将从您的整体 max_tokens 预算中扣除。
启用思考后,Claude 将返回其推理过程作为响应的一部分,这可以帮助您:
- 了解模型的决策过程
- 识别潜在问题或误解
- 从 Claude 的问题解决方法中学习
- 获得对复杂多步操作的更多可见性
使用其他工具增强计算机使用
计算机使用工具可以与其他工具结合使用,创建更强大的自动化工作流程。当您需要以下功能时,这特别有用:构建自定义计算机使用环境
参考实现旨在帮助您开始使用计算机使用。它包含让 Claude 使用计算机所需的所有组件。但是,您可以构建自己的计算机使用环境以满足您的需求。您需要:- 适用于 Claude 计算机使用的虚拟化或容器化环境
- 至少一个 Anthropic 定义的计算机使用工具的实现
- 与 Claude API 交互并使用您的工具实现执行
tool_use结果的代理循环 - 允许用户输入启动代理循环的 API 或 UI
实现计算机使用工具
计算机使用工具作为无模式工具实现。使用此工具时,您不需要像其他工具那样提供输入模式;模式内置在 Claude 的模型中,无法修改。1
设置您的计算环境
创建一个虚拟显示器或连接到 Claude 将与之交互的现有显示器。这通常涉及设置 Xvfb(X 虚拟帧缓冲区)或类似技术。
2
实现操作处理程序
创建函数来处理 Claude 可能请求的每种操作类型:
3
处理 Claude 的工具调用
从 Claude 的响应中提取并执行工具调用:
4
实现代理循环
创建一个循环,直到 Claude 完成任务:
处理错误
实现计算机使用工具时,可能会发生各种错误。以下是如何处理它们:截图捕获失败
截图捕获失败
如果截图捕获失败,返回适当的错误消息:
无效坐标
无效坐标
如果 Claude 提供超出显示边界的坐标:
操作执行失败
操作执行失败
如果操作执行失败:
遵循实现最佳实践
使用适当的显示分辨率
使用适当的显示分辨率
设置与您的用例匹配的显示尺寸,同时保持在推荐限制内:
- 对于一般桌面任务:1024x768 或 1280x720
- 对于 Web 应用程序:1280x800 或 1366x768
- 避免超过 1920x1080 的分辨率以防止性能问题
实现适当的截图处理
实现适当的截图处理
向 Claude 返回截图时:
- 将截图编码为 base64 PNG 或 JPEG
- 考虑压缩大截图以提高性能
- 包含相关元数据,如时间戳或显示状态
添加操作延迟
添加操作延迟
某些应用程序需要时间来响应操作:
在执行前验证操作
在执行前验证操作
检查请求的操作是否安全有效:
记录操作以进行调试
记录操作以进行调试
保留所有操作的日志以进行故障排除:
了解计算机使用限制
计算机使用功能处于测试阶段。虽然 Claude 的功能是前沿的,但开发人员应该了解其限制:- 延迟:当前计算机使用的人机交互延迟与常规人工指导的计算机操作相比可能太慢。我们建议专注于速度不重要的用例(例如,在可信环境中的后台信息收集、自动化软件测试)。
- 计算机视觉准确性和可靠性:Claude 在生成操作时输出特定坐标时可能会犯错误或产生幻觉。Claude Sonnet 3.7 引入了思考功能,可以帮助您了解模型的推理并识别潜在问题。
- 工具选择准确性和可靠性:Claude 在生成操作时选择工具时可能会犯错误或产生幻觉,或采取意外操作来解决问题。此外,在与小众应用程序或同时与多个应用程序交互时,可靠性可能较低。我们建议用户在请求复杂任务时仔细提示模型。
- 滚动可靠性:虽然 Claude Sonnet 3.5 v2(已弃用)在滚动方面有限制,但 Claude Sonnet 3.7 引入了带有方向控制的专用滚动操作,提高了可靠性。模型现在可以明确地按指定数量向任何方向(上/下/左/右)滚动。
- 电子表格交互:Claude Sonnet 3.7 中电子表格交互的鼠标点击已得到改善,增加了更精确的鼠标控制操作,如
left_mouse_down、left_mouse_up和新的修饰键支持。通过使用这些细粒度控制并将修饰键与点击结合使用,单元格选择可以更可靠。 - 社交和通信平台上的账户创建和内容生成:虽然 Claude 会访问网站,但我们限制其在社交媒体网站和平台上创建账户或生成和分享内容或以其他方式进行人类冒充的能力。我们可能在未来更新此功能。
- 漏洞:像越狱或提示注入等漏洞可能在前沿 AI 系统中持续存在,包括测试版计算机使用 API。在某些情况下,Claude 会遵循内容中找到的命令,有时甚至与用户的指令冲突。例如,网页上的 Claude 指令或图像中包含的指令可能会覆盖指令或导致 Claude 犯错误。我们建议: a. 将计算机使用限制在可信环境中,如具有最小权限的虚拟机或容器 b. 避免在没有严格监督的情况下让计算机使用访问敏感账户或数据 c. 在您的应用程序中启用或请求计算机使用功能所需的权限之前,告知最终用户相关风险并获得他们的同意
- 不当或非法行为:根据 Anthropic 的服务条款,您不得使用计算机使用来违反任何法律或我们的可接受使用政策。
定价
Computer use follows the standard tool use pricing. When using the computer use tool: System prompt overhead: The computer use beta adds 466-499 tokens to the system prompt Computer use tool token usage:| Model | Input tokens per tool definition |
|---|---|
| Claude 4.x models | 735 tokens |
| Claude Sonnet 3.7 | 735 tokens |
- Screenshot images (see Vision pricing)
- Tool execution results returned to Claude
If you’re also using bash or text editor tools alongside computer use, those tools have their own token costs as documented in their respective pages.