[ PROMPT_NODE_22234 ]
computer-use-agents
[ SKILL_DOCUMENTATION ]
# 计算机使用智能体 (Computer Use Agents)
## 模式
### 感知-推理-行动循环 (Perception-Reasoning-Action Loop)
计算机使用智能体的基本架构:观察屏幕、推理下一步行动、执行行动、重复。该循环通过迭代流水线将视觉模型与行动执行集成在一起。
关键组件:
1. 感知 (PERCEPTION):截图捕获当前屏幕状态
2. 推理 (REASONING):视觉语言模型进行分析和规划
3. 行动 (ACTION):执行鼠标/键盘操作
4. 反馈 (FEEDBACK):观察结果,继续或纠正
关键洞察:视觉智能体在“思考”阶段(1-5 秒)完全静止,会产生可检测到的停顿模式。
**适用场景**: ['从零构建任何计算机使用智能体', '将视觉模型与桌面控制集成', '理解智能体行为模式']
python
from anthropic import Anthropic
from PIL import Image
import base64
import pyautogui
import time
class ComputerUseAgent:
"""
感知-推理-行动循环实现。
基于 Anthropic 计算机使用模式。
"""
def __init__(self, client: Anthropic, model: str = "claude-sonnet-4-20250514"):
self.client = client
self.model = model
self.max_steps = 50 # 防止失控循环
self.action_delay = 0.5 # 行动之间的秒数
def capture_screenshot(self) -> str:
"""捕获屏幕并返回 base64 编码的图像。"""
screenshot = pyautogui.screenshot()
# 为 token 效率调整大小 (1280x800 是一个很好的平衡)
screenshot = screenshot.resize((1280, 800), Image.LANCZOS)
import io
buffer = io.BytesIO()
screenshot.save(buffer, format="PNG")
return base64.b64encode(buffer.getvalue()).decode()
def execute_action(self, action: dict) -> dict:
"""在计算机上执行鼠标/键盘操作。"""
action_type = action.get("type")
if action_type == "click":
x, y = action["x"], action["y"]
button = action.get("button", "left")
pyautogui.click(x, y, button=button)
return {"success": True, "action": f"clicked at ({x}, {y})"}
elif action_type == "type":
text = action["text"]
pyautogui.typewrite(text, interval=0.02)
return {"success": True, "action": f"typed {len(text)} chars"}
elif action_type == "key":
key = action["key"]
pyautogui.press(key)
return {"success": True, "action": f"pressed {key}"}