《AI Agent原理与实战》2026版 第28课 计算机操作 Agent(CUA)
> 本文收录于专栏《AI Agent原理与实战》2026版—— 专栏系统覆盖 AI Agent 的记忆、工具、插件与实战,点击订阅可跟踪后续更新。
本课定位:API 之外的最后一块交互疆土:让 Agent 直接操作计算机。屏幕观察-决策-行动循环、与 API 工具调用的本质差异、风险清单。本课是 RPA/数字员工方向读者的入口,也是下一课安全攻击面的最佳靶子。
阶段 5|生产与安全 | 来源:课程自研补充
关键字:计算机操作Agent、CUA、屏幕理解、GUI自动化、数字员工、RPA升级、观察决策行动、风险控制
本节目录
- 28.1 CUA 是什么:无 API 时的兜底自动化
- 28.2 技术路径:观察-决策-行动循环
- 28.3 风险清单
本节目录
- 28.1 CUA 是什么:无 API 时的兜底自动化
- 28.2 技术路径:观察-决策-行动循环
- 28.3 风险清单
概念讲解
28.1 CUA 是什么:无 API 时的兜底自动化 (微软第 15 课:when computer use agents are a better fit)
API 工具调用(第 7 课)要求目标系统暴露接口;现实中大量系统没有 API:老旧内部系统、供应商门户、只有网页界面的管理后台。CUA 的技术路径是屏幕观察 + 鼠标键盘操作:截图给多模态模型看 → 模型输出下一步动作(点击坐标/输入文本/按键)→ 运行时执行 → 再截图确认,循环到任务完成。
与 API 工具调用的本质差异:
| 维度 | API 工具调用 | CUA 屏幕操作 |
|---|---|---|
| 接口依赖 | 需要稳定 API | 无需 API,有界面即可 |
| 可靠性 | 结构化返回,可校验 | 界面一变就失效,坐标可能点错 |
| 速度 | 毫秒级 | 每步含截图+视觉推理,秒级起步 |
| 安全边界 | 权限可精确分级 | “能看到的都能点”,边界难划 |
| 成本 | 每次调用便宜 | 每步烧视觉 token |
结论:有稳定 API 就用 API,CUA 是兜底——兜"没 API"的底,也兜"界面频繁变化导致选择器脚本脆断"的底。
28.2 技术路径:观察-决策-行动循环 (微软第 15 课:Browser-Use + Playwright + CDP 架构)
CUA 的最小循环四步,与第 6 课最小 Agent Loop 同构,只是"工具"换成了屏幕原语:
三条代表性产品线(检索日 2026-10):
- Anthropic computer use tool:API 原生工具集,
computer_toolset_20260801一个声明给 Claude 17 个成员工具(screenshot/left_click/type/zoom等),模型每轮可发多个工具调用;官方文档同时部署了注入防护分类器(截图内容自动扫描,疑似注入时引导模型复核指令来源)。同族还有作用域收窄到网页内部的 browser use tool; - OpenAI CUA 模型:GPT-4o 视觉 + 强化学习训练的计算机操作模型,最初以研究预览产品Operator(2025-01)面世,2025-07 起整合进ChatGPT Agent(统一 Agent 系统里保留了 Operator 的网页操作能力),配套 API 供开发者调用;内置拒绝清单与站点封锁名单;
- 开源 browser-use:Python 框架(116.8K stars,12.9K forks,GitHub API 实测 2026-10),Browser-Use 驱动浏览器导航,可与 Playwright 组合;
- 企业级参考 Microsoft Project Opal(M365 Copilot 的 Frontier 能力):任务描述后在隔离的 Windows 365 Cloud PC 上异步执行,浏览器-only(Intune 强制)、用用户自己的身份、全量审计、随时人工接管——生产级 CUA 的信任设计样板。
国内读者关心的模型侧:CUA 是多模态视觉+操作决策任务,当前主流实现绑定在 Anthropic/OpenAI 的模型服务上。国产阵营里智谱 GLM 系列的多模态版本、小米 MiMo-VL(开源视觉语言模型,HuggingFaceXiaomiMiMo/MiMo-VL-7B-RL)具备屏幕理解能力,开源权重可本地部署做实验,但开箱即用的"截图→坐标动作"成品 API 生态在检索日尚以 Anthropic/OpenAI 最成熟——这正是本课案例用"确定性复刻 CUA 接口形状"做教学的原因:循环机制学会了,模型侧哪个可用换哪个。
微软课还给出agent vs actor的工程判断:动态布局/找元素/意外弹窗交给 agent(视觉自适应);结构已知/要求精确时序的操作切成确定性脚本(Playwright 直控)。混合模式是实践主流:agent 探路,actor 收尾。
28.3 风险清单 (微软第 15 课:Safety Guardrails for Browser Agents 七条护栏)
CUA 直接操作真实界面,风险比 API 调用高一档:
- 界面变化:改版/弹窗/A-B 测试让既有操作序列失效——需要"页面状态模糊即停止"的纪律;
- 误操作:坐标点偏、表单填错、误触删除——高危步骤前要确定性校验(URL、已选项、金额、收件人);
- 权限失控:Agent 用你的登录态操作,能看到的都能点——域白名单、专用浏览器配置、动作预算(次数/时长/标签页上限)是基本盘;
- 注入面最大:每个页面的每段文字都是潜在的"指令输入"(第 29 课实测)。
微软课的 7 条安全护栏值得抄录:限定浏览环境与域名;观察与行动分离(搜索提取可自主,提交表单/发消息/下单/改设置必须显式批准);秘密不进 prompt 与日志;页面内容一律视为不可信输入;危险步骤周围用代码做确定性校验;设预算与停止条件;记录有用证据而非全量截屏。
案例实战:让 Agent 操作网页完成一个真实任务
运行环境:
- Windows(推荐入门路径):Python 3.10+ →
pip install playwright→playwright install chromium(约 150 MB,一次性下载;Windows 上无需额外依赖,Playwright 自带完整浏览器)→python l28_cua_demo.py。唯一要改的是脚本里PAGE路径:Windows 写法PAGE = "file:///C:/ai-agent-course/stage5/code/l28_shop.html"(正斜杠)。 - Linux:实测环境 Python 3.10 + playwright(chromium-1243 headless)。Linux 下
playwright install --with-deps chromium可一并补系统依赖(无 root 时先跑playwright install,报缺库再补)。 - 本案例不需要任何 LLM API key——决策环节用确定性定位复刻,跑通的是 CUA 的循环机制本身。
目标:在本地演示商城页面上跑通 CUA 核心循环——截图观察、定位目标坐标、按坐标点击、再截图确认。视觉决策一环用确定性的元素定位复刻(同样的"截图→坐标→点击"接口形状),模型决策版本附 Anthropic API 代码(未实测,需 API key)。
步骤:
- 本地起一个商城页(三个商品按钮,点击弹下单提示);
- 观察:截图 + 列出各按钮中心坐标(复刻视觉模型"看图找目标"的输出);
- 决策:选定预算内目标商品;
- 行动:
mouse.click(x, y)按坐标点击(不用 CSS selector——CUA 就是这样操作的); - 再观察:读取结果区文本 + 截图留证。
完整代码:
# CUA 核心循环: 观察->决策->行动->再观察【已实测】2026-10# Python 3.10 + playwright(同步装 chromium-1243) headlessimportasynciofromplaywright.async_apiimportasync_playwright PAGE="file:///path/to/l28_shop.html"# 演示商城页(代码包附)asyncdefmain():asyncwithasync_playwright()asp:browser=awaitp.chromium.launch(headless=True)page=awaitbrowser.new_page(viewport={"width":600,"height":480})awaitpage.goto(PAGE)# --- 1. 观察: 截图(CUA 的眼睛) + 元素坐标 ---awaitpage.screenshot(path="step1_observe.png")boxes=awaitpage.eval_on_selector_all(".buy","els => els.map(e => {const r = e.getBoundingClientRect();""return {item: e.dataset.item,"" x: r.x + r.width/2, y: r.y + r.height/2};})")# --- 2. 决策: 选目标(真实 CUA 此处由视觉模型输出坐标) ---target=next(bforbinboxesifb["item"]=="USB-C 拖线板")# --- 3. 行动: 按坐标点击, 不用 selector ---awaitpage.mouse.click(target["x"],target["y"])# --- 4. 再观察: 确认动作效果 ---awaitpage.wait_for_selector("#result",state="visible")result=awaitpage.text_content("#result")awaitpage.screenshot(path="step4_after.png")print("结果:",result.strip())awaitbrowser.close()asyncio.run(main())预期输出(实测 2026-10):
== 观察: 页面商品按钮与中心坐标 == 机械键盘 center=(194, 138) 显示器 center=(187, 209) USB-C 拖线板 center=(225, 280) == 决策: 点击「USB-C 拖线板」 @ (225,280) == 结果: 已下单: USB-C 拖线板 截图: l28_step1_observe.png / l28_step4_after.png换成真视觉模型的接口形状【未实测,需 Anthropic API key;接口来自官方文档 2026-10】:
# Anthropic computer use tool 声明与循环骨架(接口照官方文档, 未实测)response=client.messages.create(model="claude-sonnet-5",max_tokens=1024,tools=[{"type":"computer_toolset_20260801"}],# 17 个成员工具messages=[{"role":"user","content":"帮我在商城页买一个 100 元以内的拖线板"}],)# stop_reason == "tool_use" 时, content 里是若干 tool_use 块:# {"name": "screenshot", "toolset_name": "computer", "input": {}}# {"name": "left_click", "toolset_name": "computer",# "input": {"coordinate": [225, 280]}}# 你的运行时执行这些动作 -> 把新截图放回 tool_result -> 循环到 stop_reason != tool_use官方 quickstart 仓库在显著位置警告:强烈不建议在虚拟机之外运行 computer use agent——沙箱隔离不是可选项。
小结
- CUA = 截图观察 + 坐标操作的 Agent 循环,是无 API 系统的兜底自动化,有 API 优先 API;
- 接口形状:Anthropic
computer_toolset_20260801(17 成员工具)、OpenAI CUA/Operator、开源 browser-use、企业样板 Project Opal; - agent 处理动态探索、actor(确定性脚本)处理精确操作,混合模式是主流;
- 风险四件套:界面变化、误操作、权限失控、注入面最大;7 条护栏里"观察与行动分离"和"页面内容视为不可信"是第 29 课的主角;
- 官方红线:CUA 必须跑在 VM/沙箱里。
参见第 7 课《工具调用模式:给模型装上双手》(API 工具的对照面)、第 6 课《动手:从零写一个最小 Agent Loop》(同构循环)、第 27 课《部署、扩展与本地化运行》(沙箱执行环境)、第 29 课《Agent 安全》(对本课 Agent 的攻击与加固)。
扩展阅读
🌐 网络提示:github.com 需代理(clone 可走 ghproxy 加速、push 优先 SSH);anthropic.com 需代理(核心结论已摘进本课正文);openai.com 系需代理(协议层知识已进正文,实测均可用国产端点替代);pip 安装建议加清华镜像
-i https://pypi.tuna.tsinghua.edu.cn/simple。详见总纲附录《国内网络访问与国产适配指南》。
- 微软原课第 15 课(Browser-Use + Playwright 混合工作流 notebook):https://github.com/microsoft/ai-agents-for-beginners/tree/main/15-browser-use
- Anthropic computer use tool 官方文档:https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/computer-use-tool
- Anthropic computer-use 最佳实践 quickstart(VM 警告原文):https://github.com/anthropics/claude-quickstarts/blob/main/computer-use-best-practices/README.md
- OpenAI Computer-Using Agent 发布页:https://openai.com/index/computer-using-agent
- browser-use(开源):https://github.com/browser-use/browser-use
- Microsoft Project Opal(Frontier):https://support.microsoft.com/en-us/microsoft-365-copilot/get-started-with-project-opal-frontier
我的专栏
| 蛋白 / 抗体 / 多肽 / 核酸 | 分子模拟 / 动力学 / 对接 | 药物 / 设计 / 案例 | AI / Agent / 大模型 |
|---|---|---|---|
| 开源蛋白结构预测 | 分子模拟基础 | 小分子药物设计案例 | AI Agent系列 |
| 开源蛋白生成方法实践 | 分子动力学模拟-Amber | 蛋白药物设计案例 | 化学大模型 |
| 开源多肽设计模型 | 分子动力学模拟-Gromacs | 多肽药物设计案例 | 《AI Agent原理与实战》 |
| 开源多肽性质预测 | 分子动力学模拟-OpenMM | 开源小分子生成设计 | CADD中的机器学习模型 |
| DNA/RNA药物设计 | 結合自由能 | 高效计算配置 | 《MCP 入门实战》 |
| siRNA药物设计模型 | UCSF DOCK系列 | 我胡师兄说药 | 《AI入门实战2026》 |
| ASO药物设计模型 | rDock系列 LeDock系列 gnina系列 | 《经典机器学习实战》 |