ブログサイトのロゴsui Tech Blog
5分で読めます

Playwright CLI と agent-browser のどちらがトークン消費量が少ないか比較検証してみた

Playwright CLIとagent-browserで同一操作を行い、トークン消費量を比較しました。スナップショットをファイル出力してGrep検索する設計思想により、Playwright CLIはagent-browserより約40%のトークン削減を達成しています。本記事ではAIブラウザ操作ツールの設計思想の違いがコストに与える影響を検証します。

AIエージェントによるブラウザ自動操作は、2025年3月にMicrosoftが公開したPlaywright MCPによって可能になりました。AIがブラウザを操作し、ページの状態を確認しながら次の操作を決定するというしくみです。しかし、Playwright MCPにはページのスナップショット全体をAIに送信するため、トークン消費量1が膨大になるという課題がありました。

この課題を解決するため、2026年1月にVercelがagent-browserというCLIツールを公開しました。agent-browserは独自の参照方式(Refs)を採用し、ページ全体ではなく必要な要素のRefと要約情報をAIに渡すことで、トークン消費量の削減を実現しています。agent-browserを使用してPlaywright MCPと比較検証した結果、約70%のトークン削減に成功しました。詳細はこちらの記事をご覧ください。

そして同じく2026年1月、Playwrightの開発元であるMicrosoftが新たにPlaywright CLIを公開しました。このツールもagent-browserと同様にCLIベースのブラウザ操作ツールですが、設計思想に違いがあります。この記事では、agent-browserとPlaywright CLIの両方を使って同じ操作を試み、設計思想の違いと実際のトークン消費量の差異を検証していきます。

Playwright CLIのインストール

Playwright CLIの実態はPlaywright MCPです。これはnpmパッケージとして提供されているため、npmを使ってインストールできます。

npm install -g @playwright/mcp@latest

実際に操作するときはagent skills2を使用するのが推奨されていますので、skillsをインストールします。

mkdir -p .claude/skills/playwright-cli
curl -o .claude/skills/playwright-cli/SKILL.md \
  https://raw.githubusercontent.com/microsoft/playwright-cli/main/skills/playwright-cli/SKILL.md

Playwright CLIの使い方

Playwright CLIはagent-browserと同様に、CLIから playwright-cli <コマンド> の形式で使用します。
以下は open コマンドを使用して本ブログのトップページにアクセスするときの例です。

playwright-cli open https://suntory-n-water.com/

その他の要素としてPlaywrightでよく使うクリック操作や文字入力操作、関数を実行できるevalなどのコマンドが用意されています。少し特徴的だったのは、リサイズも用意されている点です。これは開発元であるPlaywrightならではのものでしょう。

playwright-cli open <url>               # open url
playwright-cli click <ref> [button]     # perform click on a web page
playwright-cli dblclick <ref> [button]  # perform double click on a web page
playwright-cli fill <ref> <text>        # fill text into editable element
playwright-cli snapshot                 # capture page snapshot to obtain element ref
playwright-cli eval <func> [ref]        # evaluate javascript expression on page or element
playwright-cli resize <w> <h>           # resize the browser window

実際にサイトへアクセスしてみる

それではPlaywright CLIを使って実際にサイトにアクセスしていきましょう。今回も以前書いた記事と同様にYahoo! JAPANへアクセスしていき、トップページにある最新のニュース1件の本文を取得してみます。

 Playwright CLI を使用して https://www.yahoo.co.jp/から最新のニュースを1件取得し、ニュースの詳細画面へ遷移して内容を取得してください。

image

image

image

ここで特徴的な点は、ページにアクセスすると、その時点でのスナップショットが .playwright-cli/page-xxx.yml にファイルとして保存されることです。エージェントへの返却はそのパスが提供されるというしくみです。

playwright-cli open https://www.yahoo.co.jp/
### Page
- Page URL: https://www.yahoo.co.jp/
- Page Title: Yahoo! JAPAN
### Snapshot
- [snapshot](.playwright-cli/page-2026-01-24T12-15-56-958Z.yml)

AIエージェントは大量のHTMLやref情報などを直接受け取りません。
ファイルとして出力されたものをGrep検索することで、ユーザーが実際に解決したい内容に基づいて操作を柔軟に変更します。以下のymlは実際にYahoo! JAPANへアクセスしたときのスナップショット例です。

- generic [ref=e3]:
  - complementary
  - main [ref=e129]:
    - generic [ref=e501]:
      - article [ref=e503]:
        - generic [ref=e504]:
          - tabpanel "主要" [ref=e527]:
            - heading "主要 ニュース" [level=1] [ref=e529]
            - generic [ref=e530]:
              - generic "主要 ニュース" [ref=e531]:
                - paragraph [ref=e532]:
                  - generic [ref=e533]: 1/24(土) 21:30更新
                - list [ref=e534]:
                  - listitem [ref=e535]:
                    - article [ref=e536]:
                      - text: 
                      - link "25日大雪ピーク 交通への影響警戒 NEW" [ref=e537] [cursor=pointer]:
                        - /url: https://news.yahoo.co.jp/pickup/6567363
                        - generic [ref=e539]:
                          - heading "25日大雪ピーク 交通への影響警戒" [level=1] [ref=e540]:
                            - generic [ref=e541]: 25日大雪ピーク 交通への影響警戒
                          - generic [ref=e543]: NEW
                  - listitem [ref=e544]:
                    - article [ref=e545]:
                      - text: 
                      - link "食料品の消費税ゼロ案 識者の疑問 NEW 232" [ref=e546] [cursor=pointer]:
                        - /url: https://news.yahoo.co.jp/pickup/6567313
                        - generic [ref=e548]:
                          - heading "食料品の消費税ゼロ案 識者の疑問" [level=1] [ref=e549]:
                            - generic [ref=e550]: 食料品の消費税ゼロ案 識者の疑問
                          - generic [ref=e552]: NEW
                          - generic [ref=e556]: "232"

agent-browserとの大きな違いはスナップショットの取得方法です。

まずagent-browserではスナップショットを取得した段階で、すべての要素がコンソールに直接出力されます。

agent-browser snapshot -i
- link "今すぐ設定する" [ref=e1]
- link "閉じる" [ref=e2]
- link "AIアシスタント..." [ref=e3]
 +226 lines (ctrl+o to expand)

agent-browserでは「ブログから最新記事のリンクだけほしい」場合でも、大量のコンテキストがエージェントに流れてしまいます。

一方、Playwright CLIではスナップショットを取得すると、open コマンドを実行したときと同様に、エージェントにはファイルパスのみが返却されます。

playwright-cli snapshot
### Page
- Page URL: https://www.yahoo.co.jp/
- Page Title: Yahoo! JAPAN
### Snapshot
- [snapshot](.playwright-cli/page-xxx.yml)

AIエージェントはファイルとして出力されたものをGrep検索することで、必要な部分だけを取得します。

このように、Playwright CLIはファイルへ出力した後にGrep検索するため、無駄な情報をAIエージェントに渡さずに済むことからトークン消費量を削減できることが予測されます。

agent-browserとトークン消費量を比較する

それではClaude Codeを使って、Playwright CLIとagent-browserの両方に同じ操作をさせてトークン消費量の差異を確認していきましょう。参考程度に実際の手順書を貼っておきます。

検証手順
## 比較条件
- 同じURL(https://www.yahoo.co.jp/)にアクセス
- 最初のニュース記事をクリック
- 記事詳細ページに遷移
- 記事の全文を取得
 
## Playwright CLI
 
### 手順
1. Yahoo! JAPANを開く
```bash
playwright-cli open https://www.yahoo.co.jp/
```
 
2. スナップショットを取得してニュースリンクを探す
```bash
playwright-cli snapshot
```
 
3. 最初のニュース記事のrefを特定し、クリック(例: e547)
```bash
playwright-cli click e547
```
 
4. 記事詳細ページで「記事全文を読む」リンクのrefを特定し、クリック(例: e132)
```bash
playwright-cli click e132
```
 
5. 記事本文を取得
```bash
playwright-cli eval "document.querySelector('article')?.textContent"
```
 
6. ブラウザを閉じる
```bash
playwright-cli close
```
 
---
 
## agent-browser
 
### 手順
1. Yahoo! JAPANを開く
```bash
agent-browser open https://www.yahoo.co.jp/
```
 
2. スナップショットを取得してニュースリンクを探す
```bash
agent-browser snapshot -i
```
 
3. 最初のニュース記事のrefを特定し、クリック(例: @e100)
```bash
agent-browser click @e100
```
 
4. 記事詳細ページで「記事全文を読む」リンクのrefを特定し、クリック(例: @e39)
```bash
agent-browser click @e39
```
 
5. 記事本文を取得
```bash
agent-browser eval "document.querySelector('article')?.textContent"
```
 
6. ブラウザを閉じる
```bash
agent-browser close
```
 
---
 
## 注意事項
 
1. **ref番号の違い**: 各ツールでref番号が異なるため、実際のスナップショット結果を確認して正しいrefを使用してください
3. **eval実行**: 両方とも同じJavaScriptコードを使用して記事本文を取得してください

最終的な結果は以下のとおりです。予想通りagent-browserと比較して40%ほどトークン消費量が少ない結果となりました。これは設計思想の違いによってもたらされた結果だといえます。

ツール 総トークン使用量 差分 コンテキスト量
Playwright CLI 24.7K - 15%
agent-browser 34.4K +39.3%増 21%

各ツール仕様時の詳細なログは、こちらをご覧ください。

Playwright CLI
 Yahoo! JAPANにアクセスし、ニュース記事の本文を取得する作業を開始します。
 
 Bash(playwright-cli open https://www.yahoo.co.jp/)
  ### Page
     - Page URL: https://www.yahoo.co.jp/
     - Page Title: Yahoo! JAPAN
 +6 lines (ctrl+o to expand)
 
 Bash(playwright-cli snapshot)
  ### Page
     - Page URL: https://www.yahoo.co.jp/
     - Page Title: Yahoo! JAPAN
 +4 lines (ctrl+o to expand)
 
 Bash(playwright-cli click e547)
  ### Page
     - Page URL: https://news.yahoo.co.jp/pickup/6567313
     - Page Title: 食料品の消費税ゼロ案 識者の疑問 - Yahoo!ニュース
 +6 lines (ctrl+o to expand)
 
 Bash(playwright-cli snapshot)
  ### Page
     - Page URL: https://news.yahoo.co.jp/pickup/6567313
     - Page Title: 食料品の消費税ゼロ案 識者の疑問 - Yahoo!ニュース
 +2 lines (ctrl+o to expand)
 
 Bash(playwright-cli click e132)
  ### Page
     - Page URL: https://news.yahoo.co.jp/pickup/6567313
     - Page Title: 食料品の消費税ゼロ案 識者の疑問 - Yahoo!ニュース
 +2 lines (ctrl+o to expand)
 
 Bash(playwright-cli eval "document.querySelector('article')?.textContent")
 ### Result
    "食料品の消費税ゼロ案 識者の疑問1/24(土) 15:07ABEMA TIMES2026年衆議院選挙「食料品の消費税ゼロ」で本当に国民は救
    われる?経済専門家が指摘する疑問点の数々「説得力のある財源がない」「今、そこまで必要か」界隈では実質賃金上昇の

    … +9 lines (ctrl+o to expand)
 
 
⏺ Bash(playwright-cli close)
  ⎿  ### Result
     No open tabs. Navigate to a URL to create one.
 
⏺ 完了
 
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ 
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  🪙 24.7K | 15%
agent-browser
 作業を実行します。
 
 Bash(agent-browser open https://www.yahoo.co.jp/)
  ✓ Yahoo! JAPAN
       https://www.yahoo.co.jp/
 
 Bash(agent-browser snapshot -i)
  - link "今すぐ設定する" [ref=e1]
     - link "閉じる" [ref=e2]
     - link "AIアシスタント 誰も知らない「新種の深海魚」。どんな姿か想像しよう" [ref=e3]
 +226 lines (ctrl+o to expand)
 
 Bash(agent-browser click @e100)
  ✓ Done
 
 Bash(agent-browser snapshot -i)
  - link "世界が注目する投資家が語る「未来を動かす投資」とは?" [ref=e1]
     - link "Yahoo! JAPAN" [ref=e2]
     - link "ヘルプ" [ref=e3]
 +103 lines (ctrl+o to expand)
 
 Bash(agent-browser click @e39)
  ✓ Done
 
 Bash(agent-browser eval "document.querySelector('article')?.textContent")
 "明日25日は大雪ピーク 日本海側を中心に大雪注意・警戒 大阪・名古屋にも雪雲流入1/24(土) 18:09配信57コメント57件
    画像:tenki.jp明日25日は大雪がピークとなり、北日本から西日本の日本海側を中心に、山沿いだけでなく平野部でも大雪

    なる見込みです。また、普段、雪の少ない太平洋側でも大雪となる所があるでしょう。積雪や路面凍結による交通への影響
    … +22 lines (ctrl+o to expand)
 
 
⏺ Bash(agent-browser close)
  ⎿  ✓ Browser closed
 
⏺ 完了
 
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ 
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  🪙 34.4K | 21%
 

ただ気になる点として、この動向を、agent-browserが黙って見ているはずがないでしょう。OSSとして開発されている両ライブラリですが、今後のアップデートでよりAIエージェントが使いやすく、かつトークン消費量が少ないツールに進化していくことを期待します。
個人的にCLIでの操作性はagent-browserが勝っているので、そのあたりの体験も期待したいです。

まとめ

  • Playwright CLIはPlaywright MCPをベースとしたCLIでブラウザを操作するツール
  • agent-browserと比較してスナップショットの撮影、要素の検索手法に設計思想の違いがある
  • スナップショットをファイル出力してGrep検索したほうが、エージェントに流れるトークン消費量が少ない
  • agent-browserと比較して40%ほどトークン消費量が少なかった

参考

github.com

GitHub - microsoft/playwright-cli: CLI for common Playwright actions. Record and generate Playwright code, inspect selectors and take screenshots.

CLI for common Playwright actions. Record and generate Playwright code, inspect selectors and take screenshots. - microsoft/playwright-cli

github.com

GitHub - vercel-labs/agent-browser: Browser automation CLI for AI agents

Browser automation CLI for AI agents. Contribute to vercel-labs/agent-browser development by creating an account on GitHub.

Footnotes

  1. トークンとは、AIが処理するテキストの単位で、使用量に応じて料金がかかります。トークン消費量が多いほど、処理コストと応答時間が増加します。

  2. Agent Skillsは、AIエージェントの機能を拡張するモジュール型の機能です。各Skillは、AIエージェントが関連する場合に自動的に使用する指示、メタデータ、およびオプションのリソース(スクリプト、テンプレート)をパッケージ化します。

理解度チェック

問題1: Playwright CLIとagent-browserの設計思想における最も重要な違いは何ですか?

  • Playwright CLIはスナップショットをファイルに出力してGrep検索するが、agent-browserは全要素をコンソールに直接出力する

    正解正解です!

    この設計思想の違いにより、Playwright CLIはAIエージェントに渡すトークン量を削減できます。必要な部分だけをGrep検索で取得するため、全要素を一度に受け取るagent-browserよりもトークン消費量が少なくなります。

  • Playwright CLIはブラウザの自動操作ができないが、agent-browserはできる

    不正解もう一度考えてみましょう!

    両方ともブラウザの自動操作が可能です。違いは操作方法ではなく、スナップショットの取得と処理方法にあります。

  • Playwright CLIはCLIツールだが、agent-browserはGUIツールである

    不正解もう一度考えてみましょう!

    両方ともCLIツールです。記事中でも「agent-browserと同様にCLIベースのブラウザ操作ツール」と説明されています。

  • Playwright CLIはMicrosoftが開発したが、agent-browserはGoogleが開発した

    不正解もう一度考えてみましょう!

    agent-browserはVercelが開発しました。記事中で「2026年1月にVercelがagent-browserというCLIツールを公開しました」と記載されています。

問題2: Yahoo! JAPANでニュース記事を取得する検証の結果、Playwright CLIのトークン消費量はagent-browserと比較してどの程度少なかったですか?

  • 約40%少なかった

    正解正解です!

    検証結果の表によると、Playwright CLIは24.7K、agent-browserは34.4Kで、差分は+39.3%でした。つまりPlaywright CLIはagent-browserよりも約40%少ないトークン消費量で同じ操作を実現しました。

  • 約70%少なかった

    不正解もう一度考えてみましょう!

    70%の削減は、Playwright MCPとagent-browserを比較した際の結果です。Playwright CLIとagent-browserの比較では約40%の削減でした。

  • 約10%少なかった

    不正解もう一度考えてみましょう!

  • ほぼ同じだった

    不正解もう一度考えてみましょう!

問題3: Playwright CLIでスナップショットを取得すると、AIエージェントに何が返却されますか?

  • スナップショットファイルのパス

    正解正解です!

    記事中で「スナップショットを取得すると、エージェントにはファイルパスのみが返却されます」と説明されています。この仕組みにより、AIエージェントは必要な部分だけをGrep検索で取得でき、トークン消費量を削減できます。

  • ページ内のすべての要素とその属性情報

    不正解もう一度考えてみましょう!

    これはagent-browserの動作です。agent-browserでは「すべての要素がコンソールに直接出力されます」が、Playwright CLIでは「ファイルパスのみが返却されます」。

  • ページのHTMLソースコード全体

    不正解もう一度考えてみましょう!

  • スクリーンショット画像

    不正解もう一度考えてみましょう!

関連記事

agent-browserPlaywrightAI

AIエージェント向けに最適化されてたagent-browserをPlaywright MCPと比較検証してみた

agent-browserの「Up to 93% less context than Playwright MCP」は本当か気になったので、Yahoo! JAPANを対象にPlaywright MCPと比較してデータ削減率とトークン消費量を検証します。

記事を読む
Playwright

やはり俺のPlaywrightはまちがっている。

過去のプロジェクトから流用したPlaywrightのコードは「動いて」いました。しかし、偶然ドキュメントを読み直したとき、「動く」と「正しく動く」の間には設計思想の違いがあることに気づきました。page.evaluate()ではなくlocatorを使うべき理由、waitForNavigation()が非推奨である理由。公式ドキュメントには、単なるAPIリファレンスではなく「なぜこの方法が推奨されるのか」が書かれています。時間がない現実の中で、それでもドキュメントを読む価値とは何かを考えます。

記事を読む
ブログAI

図解から始める認知負荷との付き合い方

AI時代、文字を読む量が圧倒的に増えています。生成AIからの提案を承認する度に大量のテキストを読み込む認知負荷の高さに「もう無理だ」と感じた経験から、技術ブログに図解機能を実装しました。図解は「記憶の定着装置」として機能し、全体像を視覚的に示すことで認知負荷を下げます。本記事では、なぜ図解が有効なのか、そしてAIを活用してどう実装したのかを解説します。

記事を読む