Was this page helpful?
Claude 可以通过计算机使用工具与计算机环境进行交互,该工具提供截图功能和鼠标/键盘控制,用于自主桌面交互。在 WebArena(一个针对真实网站自主网页导航的基准测试)上,Claude 在单智能体系统中取得了最先进的结果,展示了端到端完成多步骤浏览器任务的强大能力。
计算机使用功能目前处于测试阶段,需要使用 beta header(测试版标头):
"computer-use-2025-11-24" 适用于 Claude Opus 4.8、Claude Opus 4.7、Claude Opus 4.6、Claude Sonnet 4.6 和 Claude Opus 4.5"computer-use-2025-01-24" 适用于 Claude Sonnet 4.5、Claude Haiku 4.5、Claude Opus 4.1(已弃用)、Claude Sonnet 4(已弃用)和 Claude Opus 4(已弃用)请通过反馈表单分享您对此功能的反馈。
此功能符合零数据保留(ZDR)的条件。当您的组织签订了 ZDR 协议时,通过此功能发送的数据在 API 响应返回后不会被存储。
计算机使用是一项测试版功能,使 Claude 能够与桌面环境进行交互。此工具提供:
虽然计算机使用可以与其他工具(如 bash 和文本编辑器)结合使用,以实现更全面的自动化工作流程,但计算机使用特指计算机使用工具查看和控制桌面环境的能力。
有关模型支持情况,请参阅工具参考。
计算机使用是一项测试版功能,具有与标准 API 功能不同的独特风险。在与互联网交互时,这些风险会进一步加剧。
为了将风险降至最低,请考虑采取以下预防措施:
在某些情况下,Claude 会遵循内容中发现的命令,即使这些命令与用户的指令相冲突。例如,网页上或图像中包含的 Claude 指令可能会覆盖用户指令或导致 Claude 出错。请采取预防措施,将 Claude 与敏感数据和操作隔离开来,以避免与提示注入相关的风险。
Anthropic 已训练模型抵御这些提示注入,并增加了额外的防御层。如果您使用计算机使用工具,分类器将自动对您的提示运行,以标记潜在的提示注入实例。当这些分类器在截图中识别出潜在的提示注入时,它们会自动引导模型在继续下一步操作之前请求用户确认。这种额外的保护并非适用于所有用例(例如,没有人工参与的用例),因此如果您希望选择退出并关闭此功能,请联系支持团队。
即使有分类器防御层,这些预防措施仍然很重要。
在您自己的产品中启用计算机使用功能之前,请告知最终用户相关风险并获得他们的同意。
开始使用计算机使用参考实现,其中包括 Web 界面、Docker 容器、示例工具实现和智能体循环。
以下是如何开始使用计算机使用功能:
只有计算机使用工具需要测试版标头。
上述示例展示了三个工具一起使用的情况,由于包含了计算机使用工具,因此需要测试版标头。
向 Claude 提供计算机使用工具和用户提示
Claude 选择计算机使用工具
stop_reason 为 tool_use,表示这是一个工具使用请求。提取工具输入,在计算机上评估工具,并返回结果
tool_result 内容块的新 user 消息继续对话。Claude 持续调用计算机使用工具,直到完成任务
在没有用户输入的情况下重复步骤 3 和 4 被称为"智能体循环"(agent loop),即 Claude 以工具使用请求进行响应,而您的应用程序以评估该请求的结果响应 Claude。
计算机使用需要一个沙盒化的计算环境,Claude 可以在其中安全地与应用程序和网络进行交互。此环境包括:
虚拟显示器: 一个虚拟 X11 显示服务器(使用 Xvfb),用于渲染 Claude 将通过截图查看并通过鼠标/键盘操作控制的桌面界面。
桌面环境: 在 Linux 上运行的轻量级 UI,包含窗口管理器(Mutter)和面板(Tint2),为 Claude 提供一致的图形界面进行交互。
应用程序: 预装的 Linux 应用程序,如 Firefox、LibreOffice、文本编辑器和文件管理器,Claude 可以使用它们来完成任务。
工具实现: 将 Claude 的抽象工具请求(如"移动鼠标"或"截图")转换为虚拟环境中实际操作的集成代码。
智能体循环: 一个处理 Claude 与环境之间通信的程序,将 Claude 的操作发送到环境,并将结果(截图、命令输出)返回给 Claude。
当您使用计算机使用功能时,Claude 不会直接连接到此环境。相反,您的应用程序会:
为了安全和隔离,参考实现在 Docker 容器内运行所有这些内容,并配置了适当的端口映射以便查看和与环境交互。
我们提供了一个参考实现,其中包含开始使用计算机使用所需的一切:
计算机使用的核心是"智能体循环":一个 Claude 请求工具操作、您的应用程序运行这些操作并将结果返回给 Claude 的循环。以下是一个简化示例:
循环会持续进行,直到 Claude 在不请求任何工具的情况下响应(任务完成)或达到最大迭代限制。此保护措施可防止可能导致意外 API 成本的潜在无限循环。
在阅读本文档的其余部分之前,请先试用参考实现。
以下是一些获得最佳质量输出的技巧:
After each step, take a screenshot and carefully evaluate if you have achieved the right outcome. Explicitly show your thinking: "I have evaluated step X..." If not correct, try again. Only when you confirm a step was executed correctly should you move on to the next one.<robot_credentials>)提供用户名和密码。在需要登录的应用程序中使用计算机使用功能会增加因提示注入而导致不良结果的风险。在向模型提供登录凭据之前,请查看缓解越狱和提示注入。content 数组时,将指令文本放在截图图像之前。在处理图像之前提供目标描述可以提高点击准确性。enable_zoom: true 的 computer_20251124 时,如果被问及在截图默认分辨率下无法辨认的小文本或特定 UI 元素(如侧边栏中的文件名、选项卡标题、状态栏文本、行号或按钮标签),Claude 会放大某个区域。如果 Claude 没有按您的预期进行放大,请询问特定区域或元素,而不是整个屏幕。如果您反复遇到一组明确的问题,或者提前知道 Claude 需要完成的任务,请使用系统提示为 Claude 提供有关如何成功完成任务的明确提示或指令。
对于跨多个会话的智能体,请在每个会话开始时运行端到端验证,而不仅仅是在实现之后。基于浏览器的检查可以捕获仅靠代码级审查无法发现的来自先前会话的回归问题。有关详细信息,请参阅长时间运行智能体的有效框架。
当通过 Claude API 请求 Anthropic 架构工具之一时,会生成一个特定于计算机使用的系统提示。它类似于工具使用系统提示,但开头为:
You have access to a set of functions you can use to answer the user's question. This includes access to a sandboxed computing environment. You do NOT currently have the ability to inspect files or interact with external resources, except by invoking the below functions.
与常规工具使用一样,用户提供的 system_prompt 字段仍然会被采用,并用于构建组合系统提示。
计算机使用工具支持以下操作:
基本操作(所有版本)
[x, y] 处点击增强操作(computer_20250124)
适用于所有支持计算机使用的模型:
增强操作(computer_20251124)
适用于 Claude Opus 4.8、Claude Opus 4.7、Claude Opus 4.6、Claude Sonnet 4.6 和 Claude Opus 4.5:
computer_20250124 中的所有操作enable_zoom: true。接受一个 region 参数,其坐标 [x1, y1, x2, y2] 定义了要检查区域的左上角和右下角。| 参数 | 必需 | 描述 |
|---|---|---|
type | 是 | 工具版本(computer_20251124 或 computer_20250124) |
name | 是 | 必须为 "computer" |
display_width_px | 是 | 显示宽度(像素) |
display_height_px | 是 | 显示高度(像素) |
display_number | 否 | X11 环境的显示编号 |
enable_zoom | 否 |
重要提示: 您的应用程序必须显式运行计算机使用工具;Claude 无法直接运行它。您负责根据 Claude 的请求实现截图捕获、鼠标移动、键盘输入和其他操作。
有关将计算机使用与扩展思考结合使用的信息,请参阅扩展思考。
具体到计算机使用,内部基准测试建议采用以下 effort 设置:
high;对于高吞吐量或成本敏感的工作负载,使用 low。medium(最佳准确性与成本比)。避免使用 max,它会增加令牌成本,但不会提高 UI 任务的准确性。在这些模型上,low 使用的输出令牌比完全禁用思考更少(错误更少意味着重试更少),使其成为成本敏感循环的理想选择。要在计算机使用的同时添加其他工具,请将它们包含在同一个 tools 数组中。快速开始部分展示了这种模式,结合使用了 bash 工具和文本编辑器工具。您可以用同样的方式添加自己的自定义工具定义。
参考实现旨在帮助您开始使用计算机使用功能。它包含让 Claude 使用计算机所需的所有组件。但是,您可以根据自己的需求构建自己的计算机使用环境。您需要:
tool_use 结果的智能体循环计算机使用工具是作为无架构(schema-less)工具实现的。使用此工具时,您不需要像其他工具那样提供输入架构;该架构已内置于 Claude 的模型中,无法修改。
在实现计算机使用工具时,可能会发生各种错误。以下是处理方法:
Claude Opus 4.8 和 Claude Opus 4.7 支持长边最多 2576 像素,其坐标与图像像素为 1:1 对应(无需缩放因子转换)。以下 1568 像素的指导适用于较早的模型。
API 将图像限制为最长边最多 1568 像素,总计约 115 万像素(有关详细信息,请参阅图像调整大小)。例如,1512x982 的屏幕会被下采样到约 1330x864。Claude 分析这个较小的图像并返回该空间中的坐标,但您的工具在原始屏幕空间中执行点击。
除非您处理坐标转换,否则这可能导致 Claude 的点击坐标偏离目标。
要解决此问题,请自行调整截图大小并将 Claude 的坐标按比例放大:
macOS Retina 显示器以 2 的设备像素比捕获截图,因此图像分辨率是逻辑屏幕坐标的两倍。请在发送前将截图缩小 2 倍,或在发出点击之前将 Claude 返回的坐标减半。
如果点击未命中目标,原因通常是以下之一:
| 症状 | 可能原因 | 尝试方法 |
|---|---|---|
| 点击始终向一个方向偏移 | display_width_px/display_height_px 与实际发送的图像尺寸不匹配,或图像超出 API 限制并被静默缩小 | 确保显示尺寸与调整大小后的截图完全匹配;预先缩小以适应 API 限制 |
| 点击落在正确区域但未命中目标 | 目标非常小,从 4K+ 源缩小时丢失了细节,或宽高比被扭曲 | 设置 enable_zoom: true;以较低 DPI 捕获或裁剪到相关区域;调整大小时保持宽高比 |
| Claude 完全点击了错误的元素 | 指令不明确,或附近有视觉上相似的元素 | 使用位置提示("右下角的蓝色提交按钮");将交互分解为更小的步骤 |
| 准确性始终较差 | 发送的截图超出 API 限制,或分辨率太低 | 预先缩小以适应限制;尝试以 1280x720 作为基准 |
模型选择会影响点击精度。 Claude Sonnet 4.6 在点击方面比 Claude Opus 4.6 机械精度更高,并且在截图需要大幅缩小时更加稳健。Claude Opus 4.7 缩小了这一差距:其点击精度与 Sonnet 4.6 大致相当,并且其更高的分辨率限制意味着需要更少的缩小处理。
计算机使用功能目前处于测试阶段。虽然 Claude 的能力处于业界领先水平,但开发者应了解其局限性:
left_mouse_down、left_mouse_up)和修饰键组合来选择单个单元格。复杂的电子表格操作可能仍需要多次尝试。请始终仔细审查和验证 Claude 的计算机使用操作和日志。在没有人工监督的情况下,请勿将 Claude 用于需要完美精度或涉及敏感用户信息的任务。
计算机使用是一个客户端工具。会话中涉及的所有屏幕截图、鼠标操作、键盘输入和任何文件均在您的环境中捕获和存储,而非由 Anthropic 存储。Anthropic 在 API 调用过程中实时处理屏幕截图图像和操作请求,但在返回响应后不会保留这些数据。
由于您的应用程序控制计算机使用数据的存储位置和方式,因此计算机使用符合 ZDR(零数据保留)资格。有关所有功能的 ZDR 资格,请参阅 API 和数据保留。
计算机使用遵循标准的工具使用定价。使用计算机使用工具时:
系统提示开销:计算机使用测试版会向系统提示添加 466-499 个令牌
计算机使用工具的令牌用量:
| 模型 | 每个工具定义的输入令牌数 |
|---|---|
| Claude 4.x 模型 | 735 个令牌 |
额外的令牌消耗:
如果您在使用计算机使用工具的同时还使用 bash 或文本编辑器工具,这些工具有各自的令牌成本,详见其各自的文档页面。
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-8", # or another compatible model
max_tokens=1024,
tools=[
{
"type": "computer_20251124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
"display_number": 1,
},
{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"},
{"type": "bash_20250124", "name": "bash"},
],
messages=[{"role": "user", "content": "Save a picture of a cat to my desktop."}],
betas=["computer-use-2025-11-24"],
)
print(response)tool_use stop_reason 进行响应,您应返回到步骤 3。启用缩放操作(仅限 computer_20251124)。设置为 true 以允许 Claude 放大特定屏幕区域。默认值:false |
设置您的计算环境
创建一个虚拟显示器或连接到 Claude 将与之交互的现有显示器。这通常涉及设置 Xvfb(X 虚拟帧缓冲区)或类似技术。
实现操作处理程序
创建函数来处理 Claude 可能请求的每种操作类型:
处理 Claude 的工具调用
从 Claude 的响应中提取并运行工具调用:
实现智能体循环
创建一个循环,持续运行直到 Claude 完成任务:
了解有关工具使用和创建自定义工具的更多信息