CUAWright
microsoft/CUAWright加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。


过去两年,网页智能体(Web Agent)的标准玩法是"截图给模型 → 模型点一下 → 再截图"。CUAWright 微软研究院开源了这个赛道的另一个答案:别让模型用鼠标,用它的编程能力。给模型一个 Linux 终端,让它自己写 Playwright 脚本去开浏览器、自己查 DOM、自己截图看效果、改代码重跑。
听起来像是把任务外包给一个会写代码的实习生?但被雇用的其实是模型本身——CUAWright 提供的不是工具箱,而是"一个可以写程序的场地"。这个思路转变,是它能同时刷下浏览器、桌面甚至 CAD 三类基准的真正原因。
该项目 2026 年 4 月初开源时叫 Webwright,10 月 3 日正式更名为 CUAWright(CUA = Computer Use Agent)。改名不是营销噱头,而是产品定位的扩张:
cuawright.webwright 运行时 + skills/cuawright-web/ 技能包;cuawright.desktop 运行时,把 OSWorld-V2 的 Ubuntu 虚拟机也纳入同一套"终端即接口"的框架,桌面任务和浏览器任务共享同一套提示词哲学与工程结构。对应地,许可也从单 MIT 变成 MIT AND Apache-2.0 双许可——浏览器运行时走 MIT,引入的 OSWorld 运行时走 Apache-2.0。旧的 webwright 命令与 Python import 保持兼容,老用户不必改一行代码。
截至 2026 年 11 月,该仓库已有 6094 星、389 fork、12 位贡献者、约 58 次提交,Python 代码约 70 万字符,是微软研究团队在 Agent 方向上罕见的"极简主义"作品。
论文《CUAWright: A Minimal Unified Interface for Digital Agents》(arXiv:2610.04116)明确提出:主流做法把模型和一个"领域专用 harness"耦合——浏览器环境配一套人工设计好的固定工具集。但当模型的编程能力变强后,这种 GUI 原生 + 静态 harness 就成了瓶颈:模型没法直接以编程方式操作系统状态,也没法临时造出自己需要的工具。
CUAWright 的做法极其克制:
配套的 Skill Factory 更进一步:每次成功解完任务,就把这个轨迹蒸馏成一个参数化、已验证的代码技能,之后可以零模型调用、约 40 秒独立重跑。在 WebArena 上,技能复用把留出集准确率从 55% 提到 70%(+15 个百分点)。

论文与 README 给出的数据覆盖三类任务:
| 基准 | 类型 | CUAWright 成绩 | 对比 |
|---|---|---|---|
| OSWorld-V2 | 桌面(Ubuntu VM) | GPT-5.6 Sol 67.9% 部分分,GPT-5.5 63.2% | 比官方 GPT-5.5 OSWorld agent 高 15.7 个百分点 |
| Online-Mind2Web | 网页长程 | 88.1%(GPT-5.4) | GUI 原生智能体 83.4% |
| Odysseys | 网页超长程 | 77.5%(GPT-5.4) | GUI 原生智能体 33.5%,差距 44 个百分点 |
| BenchCAD / CADGenBench | CAD 视觉理解 + CLI | 79.0% mean IoU / 55.7% 聚合分 | 较其他 CLI harness 相对提升 8.1%–41.6% |
| WebArena(技能复用) | 网页 | 55% → 70% | Skill Factory 复用收益 +15pp |
成本维度同样值得注意:在 OSWorld-V2 上,CUAWright 在提升分数的同时,每任务 API 成本比对照方案低 9.5 美元(GPT-5.6 Sol)和 6.0 美元(GPT-5.5)。原因不玄学——一次正确的脚本执行替代了成百上千次截图往返。

整个浏览器运行时建立在四个轻量依赖之上——httpx、pydantic、playwright、typer,外加 pyyaml/rich/jinja2。没有 LangChain,没有 AutoGen,没有自研的抽象层。目录结构刻意保持扁平可读:
src/cuawright/webwright/agents/default.py(约 24.5 KB):浏览器智能体主循环src/cuawright/webwright/models/:OpenAI / Anthropic / OpenRouter 三个后端,每个约 150–200 行src/cuawright/webwright/tools/:browser_session、image_qa、self_reflection 等工具src/cuawright/webwright/config/:可叠加的 YAML 配置(base、persistent、best_default、model_openai/claude/openrouter 等)src/cuawright/desktop/:OSWorld 虚拟机控制客户端、任务装载、评测extensions/skill-factory/:独立的 Skill Factory 发行包skills/cuawright-web/SKILL.md:可被 Claude Code / Codex / Hermes Agent 直接加载的技能包assets/compare_trajectory/:一个纯前端的轨迹对比可视化工具
路径一:作为 Claude Code / Codex / Hermes 的技能。 这是最省事的方式。仓库自带 .claude-plugin/plugin.json、.codex-plugin/plugin.json 和 skills/cuawright-web/,宿主智能体直接接管循环,不需要额外 API Key,也不产生额外模型费用(用宿主订阅即可)。对 Hermes Agent 而言,只需把 skills/cuawright-web 软链到 ~/.hermes/skills/ 即可。
路径二:独立 Python 库/CLI。 pip install -e . 后用 cuawright-web main -c base.yaml -c model_openai.yaml -t "任务描述" --start-url <url> 跑脚本式任务,或用 live-browser 模式保持页面常驻并使用模型原生的 run_command 工具。
路径三:桌面 OSWorld 复现。 pip install -e ".[desktop]" 后执行 cuawright setup osworld,下载带版本锁定的任务、资产与虚拟机;cuawright desktop reproduce osworld --task-id 001 --model YOUR_MODEL 跑官方打分任务,产出 manifest.json、trace.jsonl、result.json。
门槛分三档:
image_qa 和 self_reflection 工具依赖运行时的模型配置,单独调用工具时要用 --model-config 指向仓库外的私有 YAML 文件。osworld_v2_tasks 与 osworld_v2_assets_gated,还要 hf auth login。需要留意的局限:
CUAWright 代表的趋势可以概括为一句话:智能体的接口正在从"鼠标键盘"迁移到"终端"。 过去两年主流的 GUI 原生 harness(UI-TARS、Qwen-CUA、CogAgent、CoAct-1 等)都在优化"如何让模型更准地识别和点击像素",而 CUAWright 押注的是另一条路——当模型已经足够会写代码时,与其把世界裁剪成有限的点击动作集,不如把整个系统原样交给它。
这条路线的证据是数字上的:Odysseys 上 77.5% 对 33.5% 的差距,不是靠更好的感知模型换来的,而是靠"允许模型用它最擅长的方式工作"换来的。这也解释了为什么论文标题强调 Minimal:当接口足够通用,框架就不需要复杂;反过来,任何试图预置一切的重型 harness,都在替模型做本该模型自己做的决策。
值得注意的是,它同时给出了正反两面:终端优先的 harness 在长程任务上碾压 GUI harness,但要求模型具备强编程能力,门槛从"会用鼠标的视觉模型"转移到了"会写代码的推理模型"。这恰恰是这个时代所有 Agent 框架共同面对的赌注。