Claude 電腦使用工具:AI 桌面自動化完整開發者指南
如果你能告訴 AI「開啟 Firefox,導航到一個網站,填寫表單,然後儲存結果」——它真的能做到呢?不是透過脆弱的 Selenium 腳本,不是透過自訂 API 整合,而是像人類一樣看著螢幕,使用滑鼠和鍵盤。
這正是 Claude 的電腦使用工具所做的事情。
什麼是電腦使用?
電腦使用是一個測試版 API 功能,讓 Claude 可以透過以下方式與桌面環境互動:
- 截圖擷取 — Claude 可以看到螢幕上的內容
- 滑鼠控制 — 點擊、拖曳、捲動
- 鍵盤輸入 — 輸入文字、按下快捷鍵
- 桌面自動化 — 與任何應用程式互動
關鍵詞是任何。與傳統自動化(用於瀏覽器的 Selenium、用於 macOS 的 AppleScript)不同,Claude 不需要特殊 API 或元素選擇器。它查看螢幕上的像素並決定點擊什麼。就像你一樣。
運作原理(Agent 迴圈)
電腦使用遵循簡單的迴圈:
- 你給 Claude 發送任務 — 「把一張貓的圖片儲存到桌面」
- Claude 請求工具操作 — 「截一張圖」
- 你的應用程式執行 — 擷取螢幕,回傳圖像
- Claude 分析並請求下一個操作 — 「點擊座標 (500, 300)」
- 重複直到任務完成
這個迴圈被稱為 agent 迴圈。Claude 不斷請求操作(截圖、點擊、輸入、捲動),你的應用程式不斷執行它們,直到 Claude 判斷任務完成。
以下是開始使用的最簡 API 呼叫:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-6",
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"],
)
測試版標頭 "computer-use-2025-11-24" 是必需的。三個工具(電腦、文字編輯器、bash)協同運作,讓 Claude 完全控制環境。
可用操作
電腦使用工具支援豐富的互動操作:
基本操作
screenshot— 擷取目前顯示left_click— 點擊[x, y]座標type— 輸入文字字串key— 按下鍵或組合鍵(如ctrl+s、alt+tab)mouse_move— 移動游標
增強操作(Claude 4.x 模型)
scroll— 向任意方向捲動並控制捲動量left_click_drag— 在座標之間點擊並拖曳right_click、middle_click— 其他滑鼠按鈕double_click、triple_click— 多次點擊hold_key— 按住某個鍵一段時間wait— 在操作之間暫停
最新新增:縮放
在 Claude Opus 4.6、Sonnet 4.6 和 Opus 4.5 上可用:
zoom— 以全解析度檢查特定螢幕區域
這在 Claude 需要閱讀小文字或識別細微 UI 細節時特別有用。
運算環境
Claude 不直接連接到你的電腦。你需要提供一個沙盒環境 — 通常是執行以下內容的 Docker 容器:
- 虛擬顯示 — Xvfb(X 虛擬幀緩衝)渲染桌面
- 桌面環境 — 輕量級視窗管理器如 Mutter
- 應用程式 — Firefox、LibreOffice、檔案管理器等
- 工具實作 — 將 Claude 的請求轉換為實際滑鼠/鍵盤操作的程式碼
Anthropic 提供了一個參考實作,所有這些都在 Docker 中預先設定好了。這是最快的入門方式。
建構 Agent 迴圈
以下是處理來回互動的簡化 agent 迴圈:
async def agent_loop(task: str, max_iterations: int = 10):
client = anthropic.Anthropic()
messages = [{"role": "user", "content": task}]
tools = [
{
"type": "computer_20251124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
},
{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"},
{"type": "bash_20250124", "name": "bash"},
]
for _ in range(max_iterations):
response = client.beta.messages.create(
model="claude-opus-4-6",
max_tokens=4096,
messages=messages,
tools=tools,
betas=["computer-use-2025-11-24"],
)
messages.append({"role": "assistant", "content": response.content})
# Extract tool calls
tool_results = []
for block in response.content:
if block.type == "tool_use":
result = execute_tool(block.name, block.input)
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": result,
})
if not tool_results:
return messages # Task complete
messages.append({"role": "user", "content": tool_results})
execute_tool 函式是你將實際截圖、滑鼠點擊和鍵盤輸入連接到運算環境的地方。
座標縮放:容易踩的坑
API 將圖像限制為最長邊最大 1568px。如果你的顯示器更大(比如 1512x982),截圖會被縮小取樣——但 Claude 回傳的座標是基於較小的圖像的。
你必須將座標縮放回去:
import math
def get_scale_factor(width, height):
long_edge = max(width, height)
total_pixels = width * height
long_edge_scale = 1568 / long_edge
total_pixels_scale = math.sqrt(1_150_000 / total_pixels)
return min(1.0, long_edge_scale, total_pixels_scale)
scale = get_scale_factor(1512, 982)
# When Claude says "click at (450, 300)", scale it up:
def execute_click(x, y):
screen_x = x / scale
screen_y = y / scale
perform_click(screen_x, screen_y)
跳過這一步意味著 Claude 的點擊會偏離目標。這是最常見的實作 bug。
更好結果的提示技巧
使用清晰、結構化的提示詞時,電腦使用效果最佳:
-
要具體。 「開啟 Firefox,進入 example.com,點擊登入按鈕」比「登入到網站」效果更好。
-
讓 Claude 驗證。 在提示詞中加入:「每一步後,截圖並評估是否達到了正確的結果。只有確認後才繼續。」
-
使用鍵盤快捷鍵。 下拉選單和捲動條可能難以點擊。提示 Claude 改用
Tab、Enter和方向鍵。 -
提供範例。 對於可重複的任務,在提示詞中包含範例截圖和預期的工具呼叫。
-
使用 XML 標籤處理憑證。 如果 Claude 需要登入,在
<robot_credentials>標籤中傳遞憑證。但要小心——當 Claude 與不受信任的內容互動時,提示注入風險更高。
安全:認真對待
電腦使用有獨特的安全風險:
- 透過螢幕內容進行提示注入。 Claude 讀取螢幕上的所有內容。惡意網頁可能顯示覆蓋你提示詞的指令。
- 自主操作。 Claude 可能會點擊連結、接受對話框或導航到你預期以外的地方。
- 憑證暴露。 如果 Claude 能在螢幕上看到密碼或令牌,它們就會成為對話的一部分。
Anthropic 內建了標記截圖中潛在提示注入的分類器。但最好的防禦是隔離:
- 在專用虛擬機器或 Docker 容器中以最小權限執行
- 不要在沒有監督的情況下給予敏感帳戶的存取權限
- 將網路存取限制在允許的網域清單內
- 對不可逆操作(購買、帳戶建立等)需要人工確認
可以建構什麼
電腦使用最適合速度不是關鍵但自動化有價值的任務:
- 自動化測試 — 測試任何桌面應用程式,不僅僅是 Web 應用
- 資料收集 — 導航網站並擷取資訊
- 遺留系統整合 — 自動化沒有 API 的應用程式中的工作流程
- 表單填寫 — 跨多個站點填寫 Web 表單
- 研究工作流程 — 從網路搜尋、閱讀和彙整資訊
- QA 和監控 — 驗證 UI 是否正確渲染
對於研究和資料收集工作流程,像 Save 這樣的工具很好地補充了電腦使用——一旦 Claude 導航到頁面,將其轉換為乾淨的 Markdown 就能給你結構化的、AI 就緒的內容,而不是原始截圖。
目前限制
請注意這些測試版限制:
- 延遲。 每個操作都需要一次 API 呼叫、截圖擷取和回應。比人類點擊要慢。
- 視覺準確性。 Claude 可能誤讀小文字或誤識別 UI 元素。新的縮放操作有幫助,但並不完美。
- 捲動。 在最新版本中有了顯著改進,但複雜的捲動互動仍然可能不可靠。
- 試算表。 儲存格選擇很棘手。盡可能使用鍵盤導航。
- 不在社群平台上建立帳戶。 Claude 故意不會在社群媒體上建立帳戶或冒充人類。
定價
電腦使用遵循標準工具使用定價:
- 系統提示開銷: 466-499 個令牌
- 工具定義: 每個工具 735 個令牌(對於 Claude 4.x)
- 截圖: 作為視覺令牌計費(根據解析度而異)
- agent 迴圈中的每次 API 呼叫都是單獨的計費請求
對於典型的 10 步任務,預計使用 15,000-50,000 個令牌,具體取決於截圖大小和回應複雜性。
入門
- 嘗試參考實作。 複製 anthropic-quickstarts,執行 Docker 容器,進行實驗。
- 從簡單任務開始。 「開啟文字編輯器,輸入 Hello World,儲存檔案。」在嘗試複雜工作流程之前先讓 agent 迴圈運行起來。
- 新增防護措施。 設定迭代限制,驗證座標,記錄每個操作,對任何不可逆操作新增人工確認。
- 優化提示詞。 指令越好,Claude 需要的迭代次數越少——令牌成本也越低。
電腦使用代表了 AI API 可能性的根本性轉變。與其為每個應用程式建構自訂整合,不如給 Claude 人類使用的相同介面——螢幕、滑鼠和鍵盤——讓它自己解決剩下的問題。
自動化的未來不是更多 API,而是能使用我們已有介面的 AI。