视觉语言 Agent:让 AI 操控你的屏幕
Claude Computer Use、OpenAI Operator、Gemini 2.5 Computer Use——LLM 看屏幕 + 点鼠标 + 敲键盘,2024-2026 Agent 最大产品形态。
L4-04 讲了 Agent 的概念。L4-09 讲了”调 API 工具”。 这一篇讲:让 Agent 直接操控你的电脑——看屏幕、点鼠标、敲键盘。
这是 2024-2026 年 LLM 最有冲击力的产品形态—— 不需要 API,没有界面就用界面。
一句话定义
Computer-Use Agent(CUA / VLA Agent / GUI Agent):
一个视觉语言模型(VLM)观察屏幕截图 → 决定下一步 → 输出鼠标键盘动作 → 在真实操作系统 / 浏览器里执行。
它和传统 RPA(UiPath / Selenium)的区别:
- RPA:录制脚本,写死坐标和元素选择器 → 界面一改就崩
- CUA:每一步看截图理解,像人一样适应 → 界面变了也能继续
主流玩家
1. Anthropic Computer Use(2024-10)
第一个把”Computer Use”做成 API 产品的:
# Claude 接收屏幕截图 + 任务,返回鼠标键盘动作序列
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
tools=[{"type": "computer_20241022", "name": "computer",
"display_width_px": 1024, "display_height_px": 768}],
messages=[{"role": "user", "content": "帮我在 Numbers 里做个预算表"}]
)
# 模型返回:{action: "screenshot"} / {action: "mouse_move", x, y} / {action: "key", text: "..."}
架构:
- 模型不直接控制你电脑——返回动作描述
- 你的代码(或 SDK 提供的 reference impl)负责执行
- 通常跑在沙箱 VM / Docker 容器里
2. OpenAI Operator(2025-01)
OpenAI 的对应产品,主打浏览器自动化:
- 跑在云端虚拟浏览器里(用户不需要本地暴露屏幕)
- 适合订票 / 购物 / 填表单类任务
- 通过 ChatGPT 网页交互,看不到底层 API
3. Google Gemini 2.5 Computer Use(2025)
Gemini 的版本——和 Android / Workspace 集成最深。
Benchmark 现实
最重要的两个基准:
OSWorld(综合操作系统 + 多 app):
| 模型 | 得分 |
|---|---|
| OpenAI CUA | 38.1% |
| Claude Computer Use | 22% |
| 人类基线 | ~72% |
WebVoyager(仅浏览器):
| 模型 | 得分 |
|---|---|
| OpenAI CUA | 87% |
| Claude Computer Use | 56% |
注:分数随版本升级快速变化,以最新模型卡为准。
关键观察:
- 浏览器任务(WebVoyager)远比通用 OS 任务(OSWorld)成功率高
- 人类 72% vs 当前最强 38%——通用 OS 仍有 2× 差距
- 简单任务(点按钮)OK,复杂任务(多 app 协作)频繁失败
技术挑战
1. GUI Grounding:识别屏幕上的元素
模型必须能从截图里识别”哪里是 Submit 按钮”—— 不是文本任务,而是像素位置任务。
主流做法:
- VLM 直接输出
(x, y)坐标(Claude / OpenAI) - 用 OCR 标注所有可点击元素 → 给模型选标号(一些开源 Agent)
2. Operational Knowledge:知道下一步该做什么
“打开 Excel → 新建文件 → 选模板 → 填数据”—— 这是任务级的 procedural knowledge,比 GUI grounding 更难训。
3. 错误恢复
页面加载慢 / 弹窗 / 验证码 / 登录过期—— 真实环境的 edge case 多到一个 Agent 一辈子也跑不完。
4. 安全 / 隔离
Agent 在你电脑里运行 = 直接执行任何动作:
- 删文件
- 转账
- 发消息
- 不可逆操作
必须用 VM / 容器 / 浏览器沙箱隔离。
应用场景
已经 work 的:
- 数据搬运:从 A 系统 copy 到 B 系统
- 简单网页填表:注册、购物、订餐
- 重复性 GUI 测试(替代 Selenium)
- 辅助残障用户操作软件
还有距离的:
- 复杂多 app 协作(“找邮件附件 → Excel 加工 → 邮件回复”)
- 企业级长流程(销售线索全流程、HR 入职流程)
- 创作类(用 Photoshop 设计海报)
与传统 RPA 的差异
| 维度 | 传统 RPA | Computer Use Agent |
|---|---|---|
| 设置 | 录制脚本 / 写选择器 | 自然语言任务 |
| 容错性 | 界面变化就坏 | 界面变了也能适应 |
| 学习成本 | 工程师 / 业务培训 | 任何人写任务即可 |
| 执行速度 | 快(几秒) | 慢(每步看截图) |
| 成本 | 一次开发,重复用 | 每次都消耗 LLM token |
| 适合场景 | 高频固定流程 | 长尾 / 探索性任务 |
它们不是替代关系—— RPA 适合稳定高频;CUA 适合一次性 / 长尾 / 适应性强的任务。 未来很可能 RPA 工具内嵌 CUA 做”自我修复”。
实战示例:让 Claude 整理桌面
import anthropic, subprocess, base64
def run_action(action):
"""执行 Claude 返回的动作"""
if action["action"] == "screenshot":
# 截屏返回 base64
subprocess.run(["screencapture", "-x", "/tmp/s.png"])
return open("/tmp/s.png", "rb").read()
elif action["action"] == "mouse_move":
subprocess.run(["cliclick", f"m:{action['x']},{action['y']}"])
elif action["action"] == "left_click":
subprocess.run(["cliclick", f"c:{action['x']},{action['y']}"])
elif action["action"] == "key":
subprocess.run(["cliclick", f"kp:{action['text']}"])
client = anthropic.Anthropic()
messages = [{"role": "user", "content": "把桌面上所有截图移到 ~/Screenshots/"}]
# 循环:模型决策 → 执行 → 反馈截图 → 再决策
while True:
resp = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
tools=[{"type": "computer_20241022", "name": "computer",
"display_width_px": 1440, "display_height_px": 900}],
messages=messages
)
if resp.stop_reason == "end_turn":
break
for block in resp.content:
if block.type == "tool_use":
result = run_action(block.input)
messages.append({"role": "assistant", "content": resp.content})
messages.append({"role": "user", "content": [{
"type": "tool_result", "tool_use_id": block.id,
"content": [{"type": "image", "source": {
"type": "base64", "media_type": "image/png",
"data": base64.b64encode(result).decode()
}}]
}]})
警告:上面是教学代码,不要在主电脑上裸跑——用 VM。
2026 现状评估
CUA 目前的成熟度:
- ✅ 浏览器任务(WebVoyager 87%)已经接近”日常可用”
- ⚠️ 桌面任务(OSWorld 38%)距离实用还有距离
- ⚠️ 每步延迟(截图 + 推理)让任务慢一个数量级
- ⚠️ token 成本高(每步一张截图 = 几千 token)
适用 / 不适用速查:
| 场景 | 现在适用? |
|---|---|
| 浏览器查信息 / 填表 | ✅ 现在能用 |
| 数据搬运(A 系统 → B 系统) | ✅ 现在能用 |
| 替代客服重复操作 | ✅ 受控场景能用 |
| 完整完成”项目级”工作 | ❌ 还早 |
| 操作复杂专业软件(Photoshop / CAD) | ❌ 还早 |
与 MCP / Tool Use 的关系
不是替代关系,而是互补:
- Function Calling / Tool Use:调用有 API 的服务
- MCP:标准化的工具协议
- Computer Use:处理没 API 的软件 / 网站
最强的 Agent 会同时用三种—— 能用 API 就用 API(快、稳、便宜),不能用 API 就用 CUA(兜底)。
Computer Use 是 LLM 时代的”shell”。
早期电脑:每个程序都得有 GUI 让人用 后来:shell + 脚本能编排所有程序(不需要 GUI) LLM 时代第一阶段:每个工具都得有 API 让 LLM 用 LLM 时代第二阶段(CUA):LLM 能用 GUI = 不再需要每个工具都暴露 API
这是为什么 Anthropic / OpenAI / Google 都在押注 CUA—— 它把 LLM 的可用工具集从”有 API 的”扩到”地球上所有软件”。
但目前的可靠性还配不上这个野心。2026-2028 看突破。
推荐配套阅读
- HelloAI L4-04 Agent 构建详解
- HelloAI L4-09 Tool Use 工程实战
- HelloAI L6-03 红队与越狱(CUA 引入新的攻击面)
- 论文:WebArena / WebVoyager / OSWorld 三大 benchmark
- Anthropic Computer Use 公告
- OpenAI Operator 公告
🚧 3 个常见坑
坑 1:把 demo 视频当生产能力 官方 demo 都是 cherry-picked 任务——真实生产 OSWorld 成功率只有 30-40%,必须自己跑 eval。
坑 2:不做沙箱直接跑 Agent 在主机上跑 = 任何 bug 都可能删文件 / 发消息——必须 VM / Docker / 浏览器沙箱隔离。
坑 3:低估 token 成本 每步一张截图(1024×768 ≈ 1500 tokens)+ 多轮交互——长任务可能花几十美金,必须设 max_steps。
读到这里说明你认真在学 🎯
订阅每周精选 —— 下一篇新文章 / 新可视化第一时间送到邮箱。
讨论区
· 用 GitHub 账号登录评论src/components/Comments.astro 顶部填入
仓库 ID 和分类 ID(见组件注释里的配置步骤)。