Claude 最新的模型版本在电脑和浏览器使用能力上实现了重大突破。借助这些功能,大型语言模型(LLM)能够驱动越来越复杂的智能代理系统,支持实际工作场景,如构建软件应用和跨多种技术自动化工作流程。

本文将分享使用 Claude 进行电脑和浏览器操作的最佳实践,涵盖从简单配置调整到高级集成模式。希望能帮助开发者顺利将 Claude 的电脑与浏览器使用能力集成到产品中。我们还发布了一个新的演示实现,其中封装了部分最佳实践,并提供了开发时有用的工具。

注:以下建议适用于 Claude 4.6 系列(Opus 4.6、Sonnet 4.6、Haiku 4.5)及 Claude Opus 4.7,若两者有差异会在文中注明。建议基于内部测试,未来可能随新模型和技术更新。

入门指南:分辨率与缩放

点击准确性是任何电脑使用集成的基础。如果点击位置不准确,后续操作都会失败:表单无法填写,按钮无法点击,工作流程中断。最简单且影响最大的优化是:在发送截图到 API 前,先对截图进行预缩放。

确保正确缩放

发送截图给 Claude 的电脑使用 API 时,模型会返回基于你指定的 display_width_px / display_height_px 坐标空间的点击坐标。但 API 对图像大小有内部限制,超出限制的图片会被自动缩小,导致模型基于降质图像进行点击,而你的系统却期望坐标对应原始分辨率,造成点击偏差。

Claude 4.6 系列的限制为:

  • 最大长边:1568 像素
  • 最大总像素数:115 万像素
  • 超过任一限制的图片会被内部缩放

Opus 4.7 支持更高分辨率,限制为:

  • 最大长边:2576 像素
  • 最大总像素数:375 万像素
  • 超过任一限制的图片同样会被缩放

坐标空间与模型实际看到的图像不匹配,是高分辨率下点击不准的主要原因。解决方案是:始终在发送前将截图缩放至限制范围内。我们观察到超过限制时准确率显著下降,这一调整带来的提升远超其他优化。

推荐分辨率

  • 默认使用 1280x720,这是大多数场景下安全且实用的默认值,约占像素预算的 80%,同时符合长边和总像素限制,且是模型训练时常见的分辨率,适用于现代网页和传统桌面应用。
  • Opus 4.7 推荐使用 1080p,相比 720p 有明显质量提升,且在令牌使用和性能间取得良好平衡。
  • 追求最大视觉信息的开发者,可采用“最大 API 适配”方法,根据原始宽高比计算最佳分辨率,避免变形并充分利用像素预算。示例代码如下:
import math

# 4.6 系列最大长边,Opus 4.7 为 2576
MAX_LONG_EDGE = 1568

# 4.6 系列最大像素数,Opus 4.7 为 3,750,000
MAX_PIXELS = 1_150_000

def compute_max_api_fit(native_w, native_h):
    """计算符合 API 限制且保持宽高比的最大分辨率"""
    aspect = native_w / native_h

    h_from_pixels = math.sqrt(MAX_PIXELS / aspect)
    w_from_pixels = h_from_pixels * aspect

    if native_w >= native_h:
        w = min(w_from_pixels, MAX_LONG_EDGE)
        h = w / aspect
    else:
        h = min(h_from_pixels, MAX_LONG_EDGE)
        w = h * aspect

    w = min(w, native_w)
    h = min(h, native_h)

    return int(w), int(h)

此方法避免了强制 16:9 画面拉伸到 4:3 的失真,准确率相较固定 1280x720 有小幅提升。

避免的分辨率

  • 原生分辨率(未缩放):除非原始截图本身低于限制,否则直接发送原生分辨率是点击不准的最常见原因。
  • 过低分辨率(低于 960x540):细节丢失过多,模型难以识别小型 UI 元素。
  • MacOS 用户注意:MacOS 截图常带有 2 倍设备像素比,导致图片分辨率是屏幕坐标的两倍,需特别处理。
  • 4.6 系列避免 1920x1080 及以上:超出像素限制会被自动缩放,造成点击偏差。Opus 4.7 支持更高分辨率,1080p 和 1440p 可用,但原生 4K 仍需缩放。

坐标缩放

发送缩放后的截图时,模型返回的点击坐标基于缩放尺寸,执行点击时需将坐标转换回实际屏幕分辨率:

scale_x = screen_w / display_w
scale_y = screen_h / display_h

screen_x = int(api_returned_x * scale_x)
screen_y = int(api_returned_y * scale_y)

若忘记缩放或 display_width_px / display_height_px 与实际图片尺寸不符,点击会持续偏移。

消息内容顺序

构建消息内容数组时,应先放文本指令,再放截图。这样模型在处理截图时已知目标,提高点击准确率。

# 推荐顺序
content = [
    {"type": "text", "text": "点击提交按钮"},
    {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": screenshot_b64}},
]

# 不推荐顺序
content = [
    {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": screenshot_b64}},
    {"type": "text", "text": "点击提交按钮"},
]

诊断点击问题

点击偏差通常由以下原因导致:

  • 缩放不当
  • 坐标转换错误
  • 模型选择不当

模型选择建议

  • Sonnet 4.6:点击机械精度更高,空间准确性好,适合需要高点击准确度的场景。
  • Opus 4.6:推理能力更强,适合复杂任务。
  • Opus 4.7:点击精度接近 Sonnet 4.6,支持更高分辨率,适合高分辨率场景和需要强推理的任务。
  • Haiku 4.5:延迟优先场景的优秀选择。

高级工作流可采用“编排器 + 子代理”模式,推理模型负责规划,Sonnet 或 Haiku 执行点击。

处理小目标

点击准确率随目标尺寸减小而下降。对小型目标(复选框、系统托盘图标、小切换开关等)建议:

  • 启用缩放功能,让模型在点击前放大特定区域查看细节。
  • 增大目标尺寸,调整 UI 缩放或 DPI 设置。
  • 使用键盘替代点击,对极小元素可用快捷键或 Tab 导航。
  • 注意截图分辨率,4K 屏幕截图压缩到 720p 会丢失细节,建议使用 Opus 4.7 或调整截图策略。

无效尝试

  • 将图片拆分为小块发送未提升准确率。
  • 在截图上叠加坐标网格无明显效果。
  • 不同缩放算法效果相似,选择方便的即可。

失败排查

记录完整对话和点击坐标,叠加到截图上观察模型决策。某些失败因 UI 元素不在截图范围,需考虑使用 JS 执行、键盘导航或 DOM 操作。

计算机使用的思考深度调节

Claude 最新模型支持自适应思考,根据任务复杂度动态调整推理深度。思考深度通过参数 effort 控制,等级包括 low、medium、high、xhigh(Opus 4.7)和 max。思考越多,推理越充分,但输出令牌数、延迟和成本也越高。

Opus 4.7 测试结果

  • Opus 4.7 在 OSWorld 验证基准上表现优于 4.6 系列。
  • 设置 effort 为 high,任务成功率接近最高,令牌使用约为 max 的一半。
  • 低、中、高努力等级令牌使用相近,且均优于 4.6 系列。

4.6 系列测试结果

  • 中等努力(medium)是最佳平衡点,成功率接近最高,令牌使用约为高努力的一半。
  • 低努力(low)表现出色,令牌使用甚至少于关闭思考,适合成本敏感场景。
  • 不推荐 max 努力,因无明显准确率提升,且成本更高。

示例配置

import anthropic

client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=16000,
    betas=["computer-use-2025-11-24"],
    thinking={"type": "adaptive"},
    output_config={"effort": "medium"},
    messages=[...],
    tools=[
        {
            "type": "computer_20251124",
            "name": "computer",
            "display_width_px": 1280,
            "display_height_px": 720,
        }
    ],
)

为什么更多思考不总是更好

UI 自动化多为感知和机械操作,非深度逻辑。思考主要帮助:

  • 规划多步骤操作
  • 处理意外 UI 状态
  • 跨信息核对
  • 复杂专业软件操作

提升安全性:利用提示注入分类器

电脑使用代理处理的是不受信任内容,可能包含隐藏文本、篡改图像、欺骗性 UI 或社交工程攻击,试图劫持代理行为。提示注入风险随着代理能力和部署规模增长而加剧,可能导致代理执行恶意操作。

防御策略

  • 训练时增强鲁棒性:通过强化学习让 Claude 学会识别并拒绝恶意指令。
  • 实时分类器:扫描输入内容,检测文本、图像和 UI 中的注入攻击。
  • 持续红队测试:不断评估和强化防御能力。

内置分类器使用

使用官方电脑使用工具(computer_20251124)时,分类器自动运行,无需额外配置,无额外延迟和费用。

// 使用官方工具时自动启用分类器
tools = [
    {
        "type": "computer_20251124",
        "name": "computer",
        "display_width_px": 1280,
        "display_height_px": 720,
    }
]

非官方工具使用

自定义工具定义不支持内置分类器。若有需求,请填写兴趣表单,我们将后续提供支持。

其他安全建议

  • 关键操作启用人工确认,防止误操作。
  • 限制代理权限,减少潜在攻击面。
  • 监控并记录代理行为,便于异常检测和审计。
  • 将所有网页内容视为不可信,明确区分用户指令和页面内容。

电脑使用的上下文管理

截图快速积累,每张截图消耗约 1000–1800 令牌,200k 令牌上下文窗口很快被占满。有效管理上下文目标是:

  1. 限制总令牌数
  2. 保持提示缓存有效,避免重复付费

推荐三层策略:

  • 设置缓存断点
  • 批量修剪旧截图
  • 历史摘要压缩

缓存断点设置

  • 一个断点放在系统提示或工具定义上
  • 三个断点放在最近的工具结果上,随着对话推进更新

方法一:滚动缓冲区(缓存感知)

保留最近 N 张截图,旧截图替换为文本占位符。批量修剪避免频繁缓存失效。示例代码:

def prune_old_screenshots(messages, keep_n=3, interval=25):
    image_positions = [
        (msg_idx, block_idx)
        for msg_idx, msg in enumerate(messages)
        for block_idx, block in enumerate(msg.get("content", []))
        if isinstance(block, dict) and block.get("type") == "image"
    ]
    if len(image_positions) <= keep_n + interval:
        return messages

    to_prune = image_positions[:-keep_n][-interval:]
    for msg_idx, block_idx in to_prune:
        messages[msg_idx]["content"][block_idx] = {
            "type": "text",
            "text": "[Image omitted]",
        }
    return messages

方法二:基于 LLM 的压缩

定期总结对话历史,保留任务关键信息和最近截图,减少上下文令牌数。示例压缩提示模板详见正文。

服务器端压缩(测试版)

API 支持自动压缩,传入自定义总结提示,超过阈值自动触发。客户端需同步截断本地消息,保持与服务器视图一致。

客户端压缩

不支持服务器端压缩时,客户端实现相同总结逻辑,超过阈值调用总结模型替换历史。

综合推荐

  • 一个断点在稳定前缀,三个断点在最近工具结果
  • 滚动缓冲区参数 keep_n=3,interval=25
  • 服务器端压缩阈值约 150k 令牌,客户端同步截断

电脑与浏览器使用的实验性设置

以下为我们测试中有潜力但尚未全面推荐的技术:

批量工具

新增 computer_batch 和 browser_batch 工具,支持一次调用执行多步操作,提升效率。适合独立子动作,避免依赖前一步视觉结果的场景。

顾问工具(测试版)

结合执行模型和高智力顾问模型,执行模型遇到复杂推理时调用顾问,获得策略建议后继续执行。适合长流程任务,平衡推理质量和效率。

清理孤立顾问块

禁用顾问工具时,需清理消息中残留的顾问调用块,避免请求错误。

定期提醒

  • 批量工具提醒:提示模型使用批量工具合并操作
  • 顾问工具提醒:长时间未调用顾问时提醒其可用

调试工具

  • 轨迹查看器:回放对话和截图,分析模型决策
  • 工具调试面板:单独测试截图、点击、输入等功能
  • 定位游乐场:上传图片测试模型点击定位准确性

提升可靠性:教 Claude 学习

录制用户执行任务的操作和截图,作为示范上下文供 Claude 回放执行。回放时 Claude 根据当前 UI 状态灵活调整,提升准确率和适用范围。

核心概念

“示范胜于说明”,录制动作、截图和语音,回放时作为参考而非死板重放。

数据模型

定义 WorkflowStep,包含动作类型、描述、时间戳、选择器、坐标、URL、截图、视口尺寸、语音转录和输入值。

录制内容

至少捕获点击、键入、导航和截图。为点击生成描述并在截图上标注点击位置。

回放提示构建

包含用户意图、示范上下文说明和带标注的截图,指导模型理解和适应当前 UI。

回放模式

  • 严格模式:严格按步骤执行,适合合规场景
  • 自适应模式:灵活调整,适合大多数场景
  • 目标导向:关注结果,步骤作为提示

示例

提交报销单工作流,包含导航、选择类型、输入金额、点击提交等步骤。用户新请求时,Claude 根据示范调整参数执行。

电脑与浏览器使用快速入门

以上实践基于 Claude 4.6 系列和 Opus 4.7,未来会持续更新。具体应用时,需结合目标环境和需求调整。

本文及演示由 Lucas Gonzalez 和 Luca Weihs 撰写,感谢 Molly Vorwerck、Javier Rando、Maya Nielan、Gabe Mulley 和 Brigit Brown 的贡献。