- Webwright là web agent framework mã nguồn mở của Microsoft Research, ra mắt tháng 5/2026 với khoảng 1.000 dòng code.
- Thay vì click từng bước, agent viết code Playwright và chạy bash trong terminal.
- Đạt 60.8% trên Odysseys - vượt SOTA trước đó (Claude Opus 4.6: 44.5%) tới 16.3 điểm tuyệt đối.
- Hỗ trợ OpenAI, Anthropic, OpenRouter - hoàn toàn mã nguồn mở.
TL;DR
Microsoft Research vừa mã nguồn mở Webwright - một framework web agent tối giản chỉ ~1.000 dòng code nhưng đạt kết quả SOTA trên hai benchmark lớn nhất của ngành. Điểm khác biệt cốt lõi: thay vì dự đoán từng click UI, agent viết code Playwright và chạy bash command trong terminal. Với GPT-5.4, Webwright đạt 60.8% trên Odysseys (SOTA cũ là 44.5%) và 86.7% trên Online-Mind2Web. Framework hoàn toàn mã nguồn mở, hỗ trợ OpenAI, Anthropic và OpenRouter.
Vấn Đề Với Web Agent Truyền Thống
Hầu hết web agent hiện tại hoạt động theo kiểu screenshot → predict click → execute → repeat. Mỗi hành động là một bước riêng biệt, đồng nghĩa với hàng chục LLM call cho một tác vụ đơn giản. Cách tiếp cận này có ba điểm yếu căn bản:
Fragile: một click sai vị trí pixel là toàn bộ chuỗi hành động sụp đổ.
Đắt: nhiều bước = nhiều token = chi phí leo thang nhanh.
Không tái sử dụng: mỗi lần chạy là từ đầu, không có gì tích lũy.
Webwright phá vỡ vòng lặp này bằng một quan điểm đơn giản: "trình duyệt là công cụ, không phải môi trường sống của agent."
Cách Webwright Hoạt Động
Thay vì giữ một browser session liên tục, Webwright cho agent một terminal và quyền tự do viết code. Vòng lặp hoạt động như sau:
Runner gửi context (task + workspace state) cho model.
Model trả về bash command hoặc Python/Playwright script.
Terminal thực thi, ghi lại output, logs, screenshots.
Observations được đưa lại context, lặp tiếp cho đến khi hoàn thành.
Agent có thể spawn browser mới bất kỳ lúc nào, chạy nhiều session song song trong một step, và quan trọng nhất - code sinh ra là artifact bền vững, có thể tái sử dụng và parameterize thành CLI tool.

So sánh trajectory: Webwright viết Playwright code (trái) vs browser agent truyền thống dự đoán từng click (phải). via Microsoft/Webwright
Quick Start
Cài đặt chỉ cần ba bước:
# Yêu cầu Python 3.10+
git clone https://github.com/microsoft/Webwright
cd Webwright
pip install -e .
playwrigt install chromiumSau đó set API key (OpenAI, Anthropic, hoặc OpenRouter) và chạy:
python -m webwright --task "Search for the best Python web scraping libraries and compile a comparison table"Framework hỗ trợ YAML config stackable, có thể khai báo custom tools và pre-built scripts cho các tác vụ lặp lại. Plugin chính thức đã có cho Claude Code và OpenAI Codex.
Tính Năng Nổi Bật
Codebase tối giản: Core agent loop ~450 lines, Playwright environment ~570 lines, CLI ~150 lines. Dependencies: chỉ
httpx,pydantic,playwright,typer.Self-reflection gate: Trước khi báo hoàn thành, agent phải tự chạy validation script trong folder mới - loại bỏ lỗi "claim done prematurely".
Context compaction: Cứ mỗi 20 steps, trajectory dài được nén thành summary để tránh token explosion.
Multi-backend: OpenAI, Anthropic, OpenRouter - mỗi backend chỉ ~150-200 lines code riêng.
Reusable scripts: Script sinh ra có thể parameterize, chạy lại với CLI args khác nhau - tiết kiệm chi phí cho tác vụ lặp.
Số Liệu Benchmark
Hai benchmark được dùng để đánh giá là Online-Mind2Web (300 tác vụ thực tế trên 136 website) và Odysseys (200 tác vụ long-horizon phức tạp).

Odysseys benchmark: Webwright + GPT-5.4 đạt 60.8%, bỏ xa Claude Opus 4.6 (44.5%) và base GPT-5.4 (33.5%).
Odysseys (200 tác vụ, long-horizon):
Webwright + GPT-5.4: 60.8%
SOTA trước đó (Claude Opus 4.6): 44.5% - cải thiện 16.3 điểm tuyệt đối
Base GPT-5.4 không có framework: 33.5% - cải thiện 27.3 điểm

Online-Mind2Web (AutoEval, 100-step budget): Webwright + GPT-5.4 đạt 86.7%, Webwright + Claude Opus 4.7 đạt 84.7%.
Online-Mind2Web (300 tác vụ, 136 website):
Webwright + GPT-5.4: 86.7% overall (Easy: 96.2%, Medium: 88.1%, Hard: 76.6%)
Webwright + Claude Opus 4.7: 84.7% overall (hard tasks: 80.5% - tốt hơn GPT-5.4 ở phân khúc khó)
Về chi phí: GPT-5.4 tốn trung bình $2.37/task (26.3 steps), Claude Opus 4.7 tốn $6.09/task (21.9 steps - ít bước hơn nhưng đắt hơn 2.5 lần).
Giới Hạn Và Khi Nào Nên Dùng
Webwright hoạt động tốt với:
Multi-site research - tổng hợp từ nhiều nguồn
Conditional form filling - logic phức tạp
Long-tail scraping qua nhiều trang
Tác vụ lặp lại cần script tái sử dụng
Webwright kém hiệu quả với:
Canvas-rendered apps (trình soạn thảo rich text, game web)
Real-time interactive content (live chart, WebSocket feed)
Fine-grained drag-and-drop
Dynamic DOM ID shifts liên tục
Nếu pipeline của bạn cần automation lặp đi lặp lại trên các form, booking, research web phức tạp - Webwright là lựa chọn đáng thử. Nếu cần tương tác với canvas hoặc real-time UI, cần kết hợp thêm fallback low-level action.
Kết
Webwright là minh chứng rõ ràng rằng kiến trúc đơn giản + đúng abstraction layer thắng hệ thống phức tạp. Thay vì stack multi-agent, graph engine và persistent browser session, Microsoft Research chỉ cần một terminal, một workspace và model đủ mạnh để viết code. Kết quả là SOTA với 1.000 dòng - trong khi nhiều framework competitor cần hàng chục nghìn.
Repo tại via GitHub microsoft/Webwright. Plugin cho Claude Code và OpenAI Codex đã sẵn trong repo.
