mcpField
C
claude-computer-use-advanced

claude-computer-use-advanced

github.com/adaptationioAgent 工作流35 次安装
代码仓库

关于 claude-computer-use-advanced

这项技能介绍如何通过截图、鼠标操作和键盘输入,让 Claude computer use 自动操作桌面界面。它面向需要处理 UI 工作流、应用测试和屏幕信息提取的 Agent。

主要功能

  1. 01基于截图分析界面
  2. 02按坐标执行鼠标操作
  3. 03文本输入与键盘快捷键
  4. 04在 Opus 4.5 中放大查看屏幕细节
  5. 05多步 UI 工作流与结果核验

适用场景

  1. 01填写表单和录入数据
  2. 02测试应用界面
  3. 03提取屏幕内容中的信息
  4. 04自动操作没有 API 的应用

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/adaptationio/skrillz --skill claude-computer-use-advanced

安装后在 Claude Code 中输入/claude-computer-use-advanced确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
advanced-patterns.md
computer-use-api.md
security-deployment.md
scripts/
form-filling-agent-template.py

详细介绍

Claude 计算机使用进阶

概述

Claude 的计算机使用工具使 AI Agent 能够以编程方式与桌面环境交互。这项技能提供了进阶模式,可用于构建复杂的 UI 自动化工作流、测试应用、从屏幕提取数据,以及控制跨操作系统的应用。

计算机使用代表着 AI 能力的一项重大进步——Claude 不必依赖 API,而是可以像人类一样与任何软件交互:查看屏幕、点击元素、输入文本和使用键盘快捷键。这使自动化几乎任何带有图形界面的桌面任务成为可能。

核心能力:

  • 截取屏幕截图并分析视觉内容
  • 使用精确坐标点击屏幕元素
  • 输入文本并提交表单
  • 按下键盘快捷键和特殊按键
  • 滚动、拖动并执行复杂的鼠标操作
  • 使用缩放工具检查特定屏幕区域(仅限 Opus 4.5)
  • 执行多步骤自动化工作流
  • 以编程方式控制应用和软件

关键模型:

  • Claude Opus 4.5(computer_20251124):最新版本,配备缩放工具,可提高视觉识别准确度
  • Claude 4 / Sonnet 3.7(computer_20250124):稳定版本,支持完整的操作功能

适用场景

以下常见场景可使用计算机使用功能:

桌面自动化

  • 批量处理重复性任务
  • 表单填写和数据录入工作流
  • 文件和文件夹管理
  • 配置和设置自动化
  • 多应用工作流

应用测试

  • 自动化 UI 测试框架
  • 跨平台测试工作流
  • 视觉回归测试
  • 用户交互模拟
  • 质量保证自动化

屏幕分析与数据提取

  • 从应用中提取文本和数据
  • 分析视觉布局和设计
  • 读取非 API 系统中的内容
  • 屏幕截图分析与理解
  • 类似 OCR 的屏幕文本提取

应用控制与集成

  • 控制没有 API 的旧版应用
  • 为封闭系统创建自动化 Agent
  • 构建 RPA(机器人流程自动化)工作流
  • 编排多应用流程
  • 软件测试与验证

计算机使用任务

任务 1:截取屏幕截图

屏幕截图是计算机使用的基础——Claude 需要查看屏幕,才能知道接下来该做什么。

适用场景:

  • 作为任何工作流中的第一个操作
  • 点击元素之前(获取坐标)
  • 分析当前应用状态
  • 了解屏幕上可见的内容
  • 执行操作后验证结果

工作原理: 屏幕截图操作会捕获整个显示画面,并以 base64 编码图像的形式返回。随后,Claude 可以分析屏幕截图,理解界面、识别元素并确定下一步操作。

基本示例:

action = {
    "type": "screenshot"
}

坐标系:

  • 原点 (0, 0) 位于屏幕左上角
  • X 轴向右递增
  • Y 轴向下递增
  • 坐标表示显示画面上的像素位置

最佳实践:

  1. 始终先截取屏幕截图,以确认初始状态
  2. 执行重要操作后截取屏幕截图,以验证操作是否成功
  3. 使用缩放工具(Opus 4.5)精确定位元素
  4. 规划坐标时考虑显示分辨率
  5. 标准分辨率:1280x800(建议:1024x768)

任务 2:点击元素

点击是与 UI 元素交互的主要方式,包括按钮、链接、复选框、菜单项以及任何可点击的界面元素。

适用场景:

  • 激活按钮并提交表单
  • 打开菜单并选择选项
  • 点击链接进行导航
  • 切换复选框和单选按钮
  • 在列表或下拉菜单中选择项目

工作原理: 点击操作会接收 x、y 坐标,并在该位置发送鼠标点击。Claude 会使用屏幕截图识别元素的位置,然后点击相应位置。

基本示例:

action = {
    "type": "left_click",
    "coordinate": [640, 400]  # x, y from screenshot
}

坐标精度:

  • 尽量点击可点击元素的中心
  • 需要精确坐标时,使用缩放工具(Opus 4.5)
  • 如果点击未命中,请重新截屏并调整坐标
  • 较小的元素可能需要放大区域以确保准确性

高级点击类型:

  • left_click:标准单击
  • right_click:打开上下文菜单
  • double_click:选择文本或执行双击操作
  • middle_click:某些应用会使用中键单击
  • click_holding:按住点击以执行拖动操作

最佳实践:

  1. 点击前先截屏,以找到正确的坐标
  2. 通过视觉识别按钮或链接的边界
  3. 使用元素中心的坐标,以获得最佳准确度
  4. 点击后再截屏,确认操作成功
  5. 点击未命中时,调整坐标后重试

任务 3:输入文本和填写表单

输入文本可用于在表单、搜索框、命令提示符和文本字段中填写数据。

适用场景:

  • 在表单字段中填写文本
  • 输入搜索词
  • 输入命令或代码
  • 输入凭据(仅限安全环境)
  • 填写文本区域和字段

工作原理: 输入操作会逐个字符发送键盘输入。文本会在当前光标位置输入,通常需要先点击文本字段。

基本示例:

# Click text field first
action = {"type": "left_click", "coordinate": [500, 300]}

# Then type text
action = {
    "type": "type",
    "text": "Hello, World!"
}

文本输入工作流:

  1. 截屏查看表单
  2. 点击目标文本字段
  3. 输入文本
  4. 可选:按 Enter 或 Tab 提交表单或移至下一个字段
  5. 截屏确认输入内容

特殊字符:

# Use key action for special characters
action = {"type": "key", "key": "Return"}       # Enter key
action = {"type": "key", "key": "Tab"}          # Tab key
action = {"type": "key", "key": "BackSpace"}    # Delete character
action = {"type": "key", "key": "ctrl+a"}       # Select all
action = {"type": "key", "key": "ctrl+c"}       # Copy
action = {"type": "key", "key": "ctrl+v"}       # Paste

最佳实践:

  1. 始终先点击文本字段以将其聚焦
  2. 如有需要,使用 Ctrl+A 和 Delete 清除现有文本
  3. 使用 Tab 在表单字段之间移动
  4. 按 Enter 提交表单
  5. 在操作之间截屏,以确认输入内容

任务 4:键盘控制和特殊按键

键盘操作可精确控制按键、快捷键和特殊输入,功能超出文本输入。

适用场景:

  • 按下键盘快捷键(Ctrl+C、Ctrl+V 等)
  • 使用特殊按键(Enter、Tab、Escape、方向键)
  • 使用键盘浏览菜单和对话框
  • 使用应用专属快捷键
  • 控制焦点和导航

工作原理: 按键操作会按下键盘按键或组合键。它既可以发送单个按键,也可以发送组合键(例如 Ctrl+A)。

常用按键:

# Navigation
{"type": "key", "key": "Return"}      # Enter key
{"type": "key", "key": "Tab"}         # Tab to next field
{"type": "key", "key": "BackSpace"}   # Delete character
{"type": "key", "key": "Delete"}      # Delete forward
{"type": "key", "key": "Escape"}      # Escape/Cancel

# Arrows
{"type": "key", "key": "Up"}
{"type": "key", "key": "Down"}
{"type": "key", "key": "Left"}
{"type": "key", "key": "Right"}

# Shortcuts
{"type": "key", "key": "ctrl+a"}      # Select all
{"type": "key", "key": "ctrl+c"}      # Copy
{"type": "key", "key": "ctrl+v"}      # Paste
{"type": "key", "key": "ctrl+z"}      # Undo
{"type": "key", "key": "ctrl+s"}      # Save
{"type": "key", "key": "alt+Tab"}     # Switch windows

按住按键(用于拖动操作):

{"type": "key", "key": "shift", "held": True}  # Hold shift while clicking

最佳实践:

  1. 尽可能使用键盘快捷键
  2. 使用 Tab 遍历表单字段,而不是逐个点击
  3. 使用 Escape 关闭对话框或取消操作
  4. 组合使用方向键进行导航
  5. 输入前使用 Ctrl+A 选中要替换的文本

任务 5:使用缩放工具(Opus 4.5 专属)

缩放工具是 Claude Opus 4.5 专属的强大功能,可让你以全分辨率查看屏幕上的特定区域,从而精确定位元素并进行视觉分析。

功能说明: 缩放工具会截取屏幕上的矩形区域,并以全分辨率返回,不会缩小图像。这让 Claude 能够查看细节、阅读小字、识别元素的精确边界,并确定准确的点击坐标。

适用场景:

  • 准确定位较小的 UI 元素
  • 阅读小字
  • 分析图标细节
  • 确定按钮的准确位置
  • 处理拥挤的界面
  • 提高点击坐标的精度

工作原理: 你需要提供一个由坐标 [x1, y1, x2, y2] 定义的矩形区域,其中:

  • (x1, y1) = 区域的左上角
  • (x2, y2) = 区域的右下角

基本示例:

# Zoom into a specific region to see details
action = {
    "type": "zoom",
    "coordinate": [400, 200, 800, 400]  # [x1, y1, x2, y2]
}

缩放工作流示例:

# 1. Take full screenshot to understand layout
{"type": "screenshot"}

# 2. Identify region with uncertain element location
# Need to find exact position of "Submit" button

# 3. Zoom into that region for precise view
{"type": "zoom", "coordinate": [300, 350, 700, 450]}

# 4. With precise view, identify exact coordinates
# See "Submit" button at pixel position [550, 385]

# 5. Click with confidence
{"type": "left_click", "coordinate": [550, 385]}

区域选择:

  • 个人元素使用小区域(50x50)
  • 控件组使用中等区域(200x200)
  • 更大的区域,最大可覆盖全屏
  • 在目标元素周围留出足够的边距

视觉准确度优势:

  • Opus 4.5 增强的视觉能力可以更准确地读取文本
  • 缩放可提供全分辨率图像,便于查看细节
  • 更善于识别元素边界
  • 有助于处理拥挤或复杂的 UI
  • 减少点击坐标错误

最佳实践:

  1. 初始屏幕截图未能清楚显示元素时,使用缩放
  2. 缩放到元素四周超出 20-30 像素的区域
  3. 使用屏幕截图中的完整区域坐标
  4. 仅在精度至关重要时使用缩放
  5. 结合屏幕截图,以获得最佳效率

任务 6:多步骤自动化工作流

复杂的自动化需要协调跨多个步骤的操作。本任务介绍如何编排复杂的工作流。

适用场景:

  • 多应用工作流
  • 复杂的数据录入流程
  • 包含多个步骤的测试流程
  • 顺序执行的自动化任务
  • 条件工作流(如果这样,就那样)

工作原理: Agent 循环会按顺序执行一系列操作,利用屏幕截图了解执行结果并确定后续步骤。循环会持续进行,直到工作流完成。

基本 Agent 循环模式:

# Pseudo-code for agent loop
actions = []

# Step 1: Take screenshot to see initial state
actions.append({"type": "screenshot"})

# Step 2: Analyze screenshot and click button
actions.append({"type": "left_click", "coordinate": [100, 50]})

# Step 3: Take screenshot to see result
actions.append({"type": "screenshot"})

# Step 4: Fill form based on new state
actions.append({"type": "left_click", "coordinate": [200, 200]})
actions.append({"type": "type", "text": "Form data"})

# Step 5: Submit
actions.append({"type": "left_click", "coordinate": [200, 300]})

# Step 6: Verify with screenshot
actions.append({"type": "screenshot"})

错误恢复:

# If a click misses or action fails:
# 1. Take screenshot
# 2. Re-evaluate coordinates
# 3. Retry with adjusted position
# 4. Use zoom for precision if needed
# 5. Continue workflow

工作流状态跟踪:

  • 跟踪已完成的步骤
  • 记住提取的重要数据
  • 保留有关当前应用状态的上下文
  • 使用屏幕截图作为状态检查点
  • 保存中间结果以供验证

最佳实践:

  1. 在工作流的关键节点截取屏幕截图
  2. 通过反馈验证每个主要步骤
  3. 妥善处理意外状态
  4. 使用类似 Try/catch 的错误处理模式
  5. 记录重要状态转换,以便调试

任务 7:应用控制与系统交互

除了 UI 点击之外,计算机使用功能还可用于控制应用、浏览系统界面和执行系统级任务。

适用场景:

  • 窗口和应用导航
  • 文件系统交互(打开文件、文件夹)
  • 配置系统设置
  • 启动和管理应用
  • 多窗口工作流

工作原理: 标准鼠标和键盘操作适用于任何应用:

  • 点击桌面、任务栏和菜单项
  • 打开文件对话框并浏览文件夹
  • 使用文件/编辑/视图菜单
  • 执行系统级操作
  • 管理多个窗口

应用导航示例:

# Open application menu
{"type": "left_click", "coordinate": [500, 10]}  # Menu bar

# Take screenshot to see menu
{"type": "screenshot"}

# Click menu item
{"type": "left_click", "coordinate": [520, 100]}

# Wait for dialog to open
{"type": "screenshot"}

# Interact with dialog
{"type": "left_click", "coordinate": [300, 300]}

文件系统导航:

# Open File > Open dialog with keyboard shortcut
{"type": "key", "key": "ctrl+o"}

# Take screenshot to see file dialog
{"type": "screenshot"}

# Navigate to folder (multiple methods)
# Method 1: Type path directly
{"type": "type", "text": "/path/to/folder"}

# Method 2: Double-click folders in explorer
{"type": "double_click", "coordinate": [400, 200]}

# Select and open file
{"type": "left_click", "coordinate": [400, 250]}
{"type": "key", "key": "Return"}

多窗口工作流:

# Switch between windows
{"type": "key", "key": "alt+Tab"}

# Take screenshot to verify window
{"type": "screenshot"}

# Interact with new window
{"type": "left_click", "coordinate": [500, 400]}

最佳实践:

  1. 可用时使用键盘快捷键
  2. 通过屏幕截图查看菜单并进行导航
  3. 灵活应对不同的菜单布局
  4. 谨慎浏览文件对话框
  5. 在切换窗口之间截取屏幕截图

快速入门示例

下面是一个简单自动化工作流的完整示例——填写网页表单:

import anthropic
import base64

client = anthropic.Anthropic(api_key="your-api-key")

# Define the computer use tool
tools = [
    {
        "name": "computer",
        "type": "computer_20251124",  # Opus 4.5 with zoom
        "display_width_px": 1024,
        "display_height_px": 768,
        "display_number": ":1"
    }
]

# Start with a screenshot
messages = [
    {
        "role": "user",
        "content": "Fill out the contact form with name 'John Doe' and email '[email protected]', then submit it."
    }
]

# Add the screenshot action
messages.append({
    "role": "user",
    "content": [
        {
            "type": "text",
            "text": "First, take a screenshot to see the current state of the screen."
        }
    ]
})

# Create the request with beta header
response = client.messages.create(
    model="claude-opus-4-5-20250929",
    max_tokens=1024,
    tools=tools,
    messages=messages,
    headers={"anthropic-beta": "computer-use-2025-11-24"}
)

# Process the response - it will contain tool use actions
for content_block in response.content:
    if content_block.type == "tool_use":
        action = content_block.input

        # Execute the action and get result
        if action["type"] == "screenshot":
            # Return screenshot (base64 encoded)
            result = capture_screenshot()  # Your implementation
        elif action["type"] == "left_click":
            # Execute click
            result = click_at_coordinates(action["coordinate"])
        elif action["type"] == "type":
            # Type text
            result = type_text(action["text"])

        # Continue with the agent loop
        # ... (add result back to messages and continue)

API 参考

如需了解详细的 API 规范、参数、响应格式和高级用法模式,请参阅:

  • references/computer-use-api.md - 完整的 API 文档,涵盖所有工具版本和操作类型

高级模式

如需了解复杂的自动化模式、多步骤工作流、缩放工具技巧和最佳实践,请参阅:

  • references/advanced-patterns.md - 高级自动化、错误处理和优化

安全与部署

如需了解安全注意事项、安全部署实践和运维指南,请参阅:

  • references/security-deployment.md - 安全、容器化、监控和负责任的使用

安全与局限性

安全注意事项:

  1. 隔离:在隔离的虚拟机或容器中部署,并使用最小权限
  2. 网络控制:通过域名允许列表限制互联网访问
  3. 凭据:除非绝对必要,否则不要提供敏感凭据
  4. 确认:对于重大决策,请求人工审批
  5. 输入验证:验证所有用户输入,以防止提示词注入

已知局限性:

  1. 延迟:不适用于对时间敏感的交互式任务
  2. 视觉准确性:计算机视觉可能会误识别元素或坐标
  3. 应用支持:电子表格和专业应用程序可能不可靠
  4. 账户管理:无法可靠地创建账户或在社交平台上分享内容
  5. 提示词注入:在基于 Web 的环境中易受提示词注入攻击
  6. 分辨率:建议的最高分辨率为 1280x800
  7. 令牌成本:由于视觉处理,屏幕截图会消耗令牌

相关技能

  • anthropic-expert - Claude 计算机使用和工具使用能力概览
  • claude-opus-4-5-guide - Opus 4.5 功能,包括缩放工具增强
  • multi-ai-research - 用于调查第三方应用程序的研究模式

了解更多:从上面的快速入门示例开始,然后查阅参考指南,了解高级模式和完整的 API 文档。

评论

支持 Markdown