claude.com · 浏览器自动化

Anthropic 分享 Claude Computer Use 与 Browser Use 最佳实践

Anthropic 在博客中梳理了使用 Claude 控制计算机与浏览器时的实践经验。文章从权限边界、敏感操作确认、错误恢复策略等方面给出建议,并讨论了如何设计 prompt 与系统指令让 Claude 在自动化任务中保持稳定。内容涵盖屏幕识别、元素定位、跨页面状态保持等常见场景的处理思路,对于正在构建 Computer Use 与 Browser Use agent 的开发者,这份指南给出了可直接套用的安全与可靠性基线。

域名
claude.com
评分
4 · 重要更新
发布
2026-05-13
Anthropic 分享 Claude Computer Use 与 Browser Use 最佳实践

导读

这篇文章讲了什么

  • Anthropic 工程团队系统整理了 Claude 4.6 家族与 Opus 4.7 在 computer use 和 browser use 上的工程经验, 同步开源了 claude-quickstarts 仓库下的 computer-use-best-practices 参考实现
  • 点击精度的最大单一变量是分辨率: 4.6 家族截图必须压到 1568 像素长边、1.15MP 以内, Opus 4.7 放宽到 2576 像素长边、3.75MP, 超限会被悄悄降采样导致坐标错位
  • 推荐起步分辨率 1280×720, Opus 4.7 起步 1080p; 也给出 compute_max_api_fit 函数按原图宽高比挤满像素预算, 并附坐标回缩公式将 API 返回值还原到真实屏幕
  • messages 数组中必须先放文本指令再放截图, 顺序颠倒会让模型在不知道目标的情况下处理图像, 直接拉低点击命中率
  • 模型选择上 Sonnet 4.6 机械点击更精准、Opus 4.6 推理更强、Haiku 4.5 优先低延迟; Opus 4.7 缩小了点击精度差距并因更高像素预算减少了降采样需求
  • adaptive thinking 给出按模型不同的努力档位建议, 4.6 家族 medium 最划算且重试后能追平 high, Opus 4.7 默认 high、复杂一次成型用 max, 文章解释为何 UI 任务以感知和机械操作为主、加大思考预算收益有限
  • prompt injection 防御分训练期鲁棒化、实时分类器、持续红队三层, 官方 computer_20251124 工具自动启用分类器且零延迟零成本; 同时强调高风险动作要走 human-in-the-loop、最小权限、全程日志
  • 上下文管理给出组合策略: cache 断点放在稳定前缀加最近的 tool_result, 滚动缓冲按 keep_n=3、interval=25 批量替换旧截图为占位, 配合 compact_20260112 服务端压缩并附 COMPACT_PROMPT 分节大纲
  • 实验段介绍 computer_batch / browser_batch 批量动作工具、advisor_20260301 执行器与高智能顾问配对的工具, 以及孤儿 advisor 块清理、定时提醒 nudge 等踩坑细节
  • 引入 Teach Mode 思路: 录制人工演示形成 WorkflowStep 数据结构, 回放时把标注好蓝圈的截图作为上下文喂给模型, 并提供 strict、adaptive、goal-oriented 几档不同严格度

具体怎么实现

文章的工程结构围绕一个核心约束展开: Claude 看到的是被 API 限制过的图像, 而开发者收到的坐标是相对开发者声明的 display_width_px / display_height_px 空间. 实现路径上, prepare_screenshot 函数把原图 LANCZOS 压到目标尺寸并 base64 编码, scale_coordinates 用 screen_w/display_w 比值把 API 返回坐标乘回真机像素, 调用时 tools 列表里的 computer_20251124 块声明的 display_width_px / display_height_px 必须与发出去的图严格一致, 顺序上 content 数组先 text 再 image, betas 头带 computer-use-2025-11-24. 思考预算用 thinking={"type": "adaptive"} 加 output_config={"effort": "medium"} 配置, 4.6 家族 medium 与 high 在重试场景下成功率收敛, 因此对成本敏感工作流应优先 medium, Opus 4.7 默认 high 且 low 档单 token 表现就接近 4.6 的 max.

长会话的成本控制则交给一组互补的机制: set_trailing_cache_control 函数先清空旧 cache_control 标记, 再给最近的 tool_result 打上 ephemeral 缓存断点, prune_old_screenshots 在截图总数超过 keep_n + interval 才一次性把最老的 interval 张图替换为 [Image omitted] 文本块, 保持 prefix 在两次剪枝之间字节稳定. context_management 字段里挂 compact_20260112 编辑器并自定义 instructions 字段为 COMPACT_PROMPT, 大纲依次落到 USER INSTRUCTIONS 逐字保留、TASK TEMPLATE 抽出可重复模式、CONSTRAINTS AND RULES、ACTIONS TAKEN、ERRORS AND FIXES、PROGRESS TRACKING、CURRENT STATE 与 NEXT STEP, 服务端压缩后还要在客户端用 truncate_to_last_compaction 函数按 message_index_after_compaction 切掉本地旧消息, 否则下一次请求 cache 前缀会错位.

advisor 工具用 advisor_20260301 类型挂在 tools 数组里, model 字段填 claude-opus-4-7, 执行器调用时服务端单次请求内消费 Opus 推理, 因此 max_uses 与会话级上限要在 harness 里再加一层. 一旦关掉 advisor, 必须用 strip_orphaned_advisor_blocks 走一遍历史消息删掉 server_tool_use(name=advisor) 与 advisor_tool_result, 否则下一次请求 API 会因引用了已下线的工具而返回 400. Teach Mode 的回放 prompt 由 generate_playback_context 函数生成, 里面把 demonstration_context 标签塞进消息开头, 明确告诉模型蓝圈是录制时的标注、自己截图不会有, 接着把每个 WorkflowStep 的 description 与 base64 截图按 image block 依次追加, 形成可重放、可适配 UI 变化的工作流脚本. 调试方面参考实现配套了几件 utility: streamlit 启动的 trajectory viewer 复盘历史轨迹, uvicorn 起的 tool debug panel 单独触发截图与点击, localization playground 把模型预测的点直接画回原图, 用来定位失败到底是降采样、坐标换算还是模型本身的判断错误. 这套写法的合理性在于把误差源头逐一分离, 让排查不再依赖盯日志.