2026年5月,微软正式开源了终端原生Web Agent框架——Webwright,这一消息迅速在Agent开发社区引发了广泛关注与讨论。
先说几个核心判断:这款框架的设计理念,可以说彻底摆脱了过去那种“单步操作”的传统模式。
过去绝大多数浏览器Agent都遵循着相同的路径:观察页面,预测下一步,点击操作,再猜测下一步。每一步都需要调用一次大模型。坦白说,在LLM能力还不够强大的时候,这套逻辑确实能够运行。但问题是,随着模型代码生成能力的持续增强,这种“小步慢跑”的设计反而成为了效率瓶颈。
Webwright的思路则完全不同,它更接近一位真实工程师实现自动化的方式:
- 让LLM直接编写可执行的Playwright脚本,将网页操作转化为可复用的Python程序。
- 所有状态——脚本、截图、日志——都保存在本地工作区中。浏览器会话只是一个可以随时启动、检查、丢弃的运行环境,它本身并不承载状态信息。
- 架构极简,令人有些意外:核心仅包含三个模块,总计约1500行代码。没有多智能体系统,没有图引擎,没有多余的插件层,依赖库也只有四个:httpx、pydantic、playwright、typer。
这种模式的优势在于,Agent完成任务后,留下的不是一次性操作痕迹,而是一份可以直接修改、复用、共享的自动化脚本。这才是真正的价值所在。
性能达到SOTA级别
Webwright在两大主流浏览器Agent基准测试中,均刷新了当前开源框架的最佳成绩。以下是用100步预算跑出的结果:
- Online-Mind2Web(包含300个真实网页任务):使用GPT-5.4达到了86.7%的准确率,这是同类开源框架中的最高水平;使用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%的完成率。对于低成本部署场景而言,这个表现相当扎实。
Odysseys长程任务评测结果对比
Online-Mind2Web任务评测结果对比
生态集成与附加功能
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的点击速度已经足够快,真正的问题是“应该点击哪里”。如果新工具能够压缩这个决策差距,那就是一个完全不同的品类;如果只是重新包装一层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”搭建过类似的工作流,现在终于迎来了更官方的方案,已经为OpenClaw和Hermes Agent装上,用于收集AI编码的模式数据,进一步提升Agent的编程能力。
快速上手
基础运行
环境要求: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仓库:https://github.com/microsoft/webwright
- Webwright官方博客:https://www.microsoft.com/en-us/research/articles/webwright-a-terminal-is-all-you-need-for-web-agents/
- FSB官方网站:https://full-selfbrowsing.com/agents
- FSB GitHub仓库:https://github.com/lakshmanturlapati/FSB
