
Webwright 入門 - ターミナルで Playwright コードを書く Microsoft の Web エージェント
ブラウザを操作する AI エージェントというと、「画面を見て、次にどこをクリックするかを1手ずつ予測する」イメージがあります。これに対して Microsoft Research が2026年5月に公開した Webwright は、まったく別のアプローチを取ります。エージェントがターミナルで bash と Playwright のコードを書いて Web タスクをこなす——いわば「コード・アズ・アクション」型の Web エージェントです。
しかもコアはわずか1,000〜1,500行ほどとミニマル。それでいて長時間タスクのベンチマークで SOTA(最高水準)を更新しました。この記事では、Webwright の仕組み・ベンチ結果・使い方・設計思想を、公式リポジトリ(microsoft/Webwright)と Microsoft Research の記事を一次ソースに整理します。
NOTE
「Webwright」という名前のツールは複数あります。本記事が扱うのは Microsoft Research の Web エージェントフレームワーク(github.com/microsoft/Webwright)です。2024年から存在する「AI 搭載ターミナルシェル」の Webwright(MittaAI)とは別物です。
何が新しいのか: 「クリック予測」から「コードを書く」へ
従来の多くのブラウザエージェントは、スクリーンショットを見て「次に押す座標」や「DOM 上の要素」を1手ずつ選びます。Webwright の発想はこうです。
- エージェントはターミナルを与えられ、bash コマンドと Playwright のコードを書いて実行する
- 永続する成果物はブラウザのセッションではなく、ワークスペース上のコードとログである
公式の言葉を借りれば「The persistent artifact is not the browser session, but the code and logs in the local workspace(永続する成果物はブラウザセッションではなく、ローカルワークスペース上のコードとログだ)」。エンジニアが手元で RPA スクリプトを書いて回すのと同じやり方を、AI にそのままやらせる、というわけです。
この方式の利点は2つです。
- 頑健で再利用できる: ワークフローを一度プログラムとして書けば、再実行・改変・共有ができる。座標クリックのような壊れやすさがない
- 効率的: 1手ずつプリミティブな操作を出すのではなく、多数の Web 操作を1ステップ内で連鎖でき、複数のブラウザセッションを並行して扱える
ミニマルな設計
Webwright のもう一つの主張は「モデルが賢くなるほど、作り込んだエージェントの足場(harness)はむしろ足かせになる」という思想です。そのためコアは極めて小さく作られています。
| モジュール | 行数の目安 |
|---|---|
エージェントループ(agents/default.py) | 約450行 |
| Playwright 環境 | 約570行 |
| CLI | 約150行 |
| モデルバックエンド(各) | 150〜200行 |
マルチエージェントのオーケストレーションやグラフエンジンの類は無く、「ターミナル・ブラウザ・モデル」だけ。依存も httpx / pydantic / playwright / typer 程度です。
対応モデルバックエンドは OpenAI / Anthropic / OpenRouter。それぞれの API キー(OPENAI_API_KEY など)を使います。ライセンスは MIT です。
ベンチマーク結果
数字が説得力を持つ領域です。公式が示す主な結果です。
Odysseys(200 の長時間タスク)
| 構成 | 成功率 |
|---|---|
| Webwright + GPT-5.4 | 60.1%(平均76.1ステップ) |
| 既存 SOTA(Opus 4.6) | 44.5% |
| 素の GPT-5.4(座標予測ベースライン) | 33.5% |
長時間(100ステップ規模)のタスクで、既存 SOTA を 15.6 ポイント上回り、素の GPT-5.4 比では 33.5% → 60.1% へと大きく改善しています。「コードを書く」方式が、ステップごとの座標予測を全難易度で上回った、というのが要点です。
Online-Mind2Web(300 の実サイトタスク)
| モデル | 成功率 |
|---|---|
| GPT-5.4 | 86.7% |
| Claude Opus 4.7 | 84.7% |
コスト効率にも触れられており、GPT-5.4 は1タスクあたり平均 約 $2.37、Claude は約 $6.09。最初の50ステップで 82% の精度に達する、という分析もあります(いずれも公式記事の数値)。
NOTE
ベンチ数値は特定モデル・特定タスクセットでの結果です。Odysseys や Online-Mind2Web の構成・採点条件に依存するため、自分のユースケースにそのまま当てはまるとは限りません。傾向(コード・アズ・アクションが長時間タスクで効く)を読むのが実用的です。
インストールと使い方
前提は Python 3.10+、Playwright 経由の Chromium、そして選んだバックエンドの API キーです。
pip install -e .
playwright install chromium
export OPENAI_API_KEY="your-key" # Anthropic を使うなら ANTHROPIC_API_KEYタスクの実行は CLI から。設定 YAML を重ねて(-c)、タスク文(-t)と開始 URL を渡します。
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設定は src/webwright/config/ の YAML をスタックする方式(base.yaml + model_openai.yaml など)。実行結果はワークスペースにコード・ログ・スクリーンショットとして残り、task.json / report.json を生成して Flask 製のダッシュボードで振り返ることもできます。
Claude Code / Codex への組み込み
Webwright は単体 CLI だけでなく、各種エージェントのプラグイン/スキルとしても配布されています。たとえば Claude Code には次のように入れられます。
/plugin marketplace add microsoft/Webwright
/plugin install webwright@webwright
/webwright:run <タスク>
/webwright:craft <再利用するタスク>OpenAI Codex には codex plugin marketplace add microsoft/Webwright で追加し、チャット内で @webwright を使う、といった具合です。手元のコーディングエージェントから「Web 操作だけ Webwright に任せる」という連携ができます。MCP 経由でブラウザを操る Playwright MCP とはアプローチが異なり、こちらはエージェント自身に Playwright コードを書かせるのが特徴です。
設計思想と限界
Webwright のチームは、開発で直面した課題も率直に挙げています。記事化のうえで知っておくと誠実です。
- 早すぎる「完了」宣言: タスク未達なのに done と言ってしまう問題に対し、自己反省(self-reflection)のゲートを入れた
- コンテキスト爆発: 長いタスクで履歴が膨れるため、20ステップごとに履歴を圧縮している
- スクリプト再利用の難しさ: 再利用前の検証、サイレント障害の検知、古くなったスクリプトの更新・廃棄といった仕組みが今後の課題
また「小さなモデルは、あらかじめ用意したツールがある方がうまく動く」とも述べられており、コードを書く方式は強いモデルほど効く傾向があります。万能ではなく、モデル品質に成績が依存する点は押さえておきましょう。
まとめ
- Webwright は Microsoft Research のターミナルネイティブな Web エージェントフレームワーク(2026年5月公開、MIT)
- クリックを1手ずつ予測せず、エージェントが bash と Playwright コードを書いて実行する「コード・アズ・アクション」型。永続成果物はワークスペースのコードとログ
- コアは約1,000〜1,500行とミニマル。「強いモデルほど足場は薄くてよい」という思想
- ベンチでは Odysseys で 60.1%(素の GPT-5.4 の 33.5%、既存 SOTA 44.5% を更新)、Online-Mind2Web でも高成績
- 導入は
pip install -e .+playwright install chromium、CLI でタスク実行。Claude Code / Codex のプラグインとしても使える - 限界として、完了の誤判定(自己反省ゲート)・コンテキスト爆発(20ステップ毎に圧縮)・スクリプト再利用の検証が課題
「Web エージェントに必要なのは、凝った足場ではなくターミナルだった」——Webwright はその主張を、小さなコードベースと高いベンチ結果で示したフレームワークです。ブラウザ自動化を再実行できるコード資産として残したい場面で、特に効いてきます。


