2026 年 5 月,微软正式开源了终端原生 Web Agent 框架 Webwright。项目刚发布就引发了 Agent 开发社区的广泛讨论。

核心设计:完全跳出单步操作的旧模式
过去绝大多数浏览器 Agent 都走同一条路径:观察当前页面状态 → 预测下一步点击/输入动作 → 执行,每一步都要调用 LLM 做判断。这套设计在 LLM 能力较弱的时候确实有效,但随着模型写代码能力的提升,反而成了瓶颈。
Webwright 的思路完全不同,更接近真实工程师做自动化的逻辑:
- 让 LLM 直接编写可运行的 Playwright 脚本,把网页操作转化成可复用的 Python 程序
- 所有状态(脚本、截图、日志)都存在本地工作区,浏览器会话是可以随时启动、检查、丢弃的运行环境,而非状态载体
- 架构极简,核心只有三个模块共约 1500 行代码:Runner(150 行)、Model Endpoint(550 行)、Environment(300 行),没有多智能体系统、没有图引擎、没有多余的插件层,仅依赖 httpx、pydantic、playwright、typer 四个库
这种模式的直接好处是,Agent 运行完任务留下的并非一次性操作痕迹,而是可直接修改、复用、分享的自动化脚本。
苏米注:这个设计思路很精妙。与其让 Agent 一步步"猜"该点哪里,不如让 Agent 直接写出完整的自动化脚本。把决策和execution分离,浏览器只是运行环境,本地工作区才是状态载体。
性能达到 SOTA 级别
Webwright 在两个主流浏览器 Agent 基准测试上都拿到了当前开源框架的最好成绩,100 步预算下的测试结果:
- Online-Mind2Web(300 个真实网页任务):用 GPT-5.4 达到 86.7% 的准确率,是同类开源 harness 的最高水平;用 Claude Opus 4.7 也能达到 84.7%,在难例拆分上甚至超过 GPT-5.4(80.5% vs 76.6%)
- Odysseys(200 个长程任务,平均需要 76.1 步):用 GPT-5.4 达到 60.1% 的完成率,比之前的 SOTA 高出 15.6 个百分点,比用坐标预测的基线 GPT-5.4 高出 26.6 个百分点
另外测试显示,哪怕是 Qwen-3.5-9B 这类小模型,配合预置的工具脚本,也能在 Online-Mind2Web 的难例上达到 66.2% 的完成率,适合低成本部署场景。


生态集成与附加功能
Webwright 已经完成了主流 Agent 生态的适配,不用改现有工作流就能接入:
- Claude Code:直接通过插件市场安装,支持
/webwright:run(一次性任务)和/webwright:craft(生成可复用的参数化脚本)两个命令 - OpenAI Codex:通过插件市场安装后,用
@webwright就能直接调用 - OpenClaw、Hermes Agent:共用同一套 skill 目录,直接加载即可使用
另外还有两个实用功能:
- Task2UI 模式:任务完成后自动把结果渲染成可交互的 HTML 应用,不用自己再做可视化
- 全程可审计:每次运行的轨迹、截图、日志都会存在本地,方便调试和回溯
和同类项目的核心区别
社区也有人提到 Webwright 和 browser-use、agent-browser 等项目的差异,官方给出的架构对比如下:
| 维度 | Stagehand (Browserbase) |
agent-browser (Vercel) |
browser-use | Webwright |
|---|---|---|---|---|
| 范式 | 混合:代码+自然语言 | 原语供其他 Agent 调用的 CLI 工具 | 基于 DOM 快照的自主 LLM 循环 | 带终端的编码 Agent,浏览器只是启动的运行环境 |
| 动作空间 | Playwright 代码,或自然语言转译的 Playwright | 离散子命令(打开、点击、截图等) | LLM 选择的索引式点击/输入 | 自由格式 Python,自己写完整 Playwright 脚本 |
| 状态载体 | 浏览器会话 | 浏览器会话 | 浏览器会话 | 本地工作区(代码、截图、日志),浏览器可丢弃 |
| 循环形态 | 命令式,需要时做多步操作 | 每个微操作调用一次 CLI | 观察→预测动作→执行循环 | 写代码→执行→检查截图→修复代码 |
行业共识:Agent 要跳出单步操作的局限
Webwright 的设计思路在社区得到了广泛认同,不少从业者表示这才是浏览器 Agent 的正确发展方向。
有开发者指出,绝大多数自动化的瓶颈不在动作层,而在决策循环。Playwright 点的已经足够快,真正的问题是该点什么。如果新工具能压缩这个决策 gap,就是完全不同的品类,如果只是重新包装一层 CDP 调用,最多是横向移动。
FSB(Full Self Browsing)的作者 Lakshman Turlapati 表示,Webwright 说明方向是对的:Agent 不该只猜下一步点击,还要能把真实浏览器会话、DOM、截图、日志和恢复机制放进同一个控制层。FSB 做的就是 Chrome 端的 MCP 层,让 Codex、Claude、Cursor 这类 Agent 能直接控制用户的真实 Chrome,保留原有的 cookie、扩展、登录态,同时做到敏感信息不泄露、多 Agent tab 隔离,适合处理收件箱分类、客服回复、数据拉取等需要登录态的重复工作。
还有开发者表示,Webwright 本质就是面向浏览场景的编码 Agent,自己之前手动用 Copilot CLI + Playwright MCP 搭过类似的工作流,现在终于有了更 streamlined 的官方方案。
快速上手
基础运行
环境要求:Python 3.10+,Playwright 安装的 Chromium,对应后端的 API 密钥(OpenAI/Anthropic/OpenRouter)。
# 安装
pip install -e .
playwright install chromium
# 运行示例任务
python -m webwright.run.cli \
-c base.yaml -c model_openai.yaml \
-t "Search for flights from SEA to JFK on 2026-08-15 to 2026-08-20" \
--start-url https://www.google.com/flights \
--task-id demo_openai \
-o outputs/default
作为 Claude Code 插件安装
# 添加插件市场
/plugin marketplace add microsoft/Webwright
# 安装插件
/plugin install webwright@webwright
相关链接
- Webwright GitHub 仓库:github.com/microsoft/webwright
- Webwright 官方博客:microsoft.com/en-us/research/articles/webwright
- FSB 官方网站:full-selfbrowsing.com/agents
- FSB GitHub 仓库:github.com/lakshmanturlapati/FSB