🏠 ホーム ニュース 📖 解説記事 📚 トピック解説 🏷️ タグ一覧 ℹ️ About
🔍 記事を検索
カテゴリ
📡 RSSフィード
Follow
X (Twitter) 🧵 Threads
Quick Links
ニュース一覧 🏷️タグから探す
🧠Claude 🤖Agent 💬LLM 🔌MCP 🛠️Tool
Subscribe
📡 RSSフィード
ホーム agent 2026.04.04

agent-browser入門:VercelがOSS公開したAIエージェント向けRust製ブラウザ自動化CLI

vercel-labs/agent-browser
🌐
agent-browser入門:VercelがOSS公開したAIエージェント向けRust製ブラウザ自動化CLI - AIツール日本語解説 | AI Heartland
// なぜ使えるか
CSSセレクタではなくアクセシビリティツリーのref参照によりLLMが確実にブラウザ要素を操作できる。Rust製で高速起動し、Node.js環境が不要なため、AIエージェントのブラウザ自動化ツールとして実用性が高い。

agent-browserとは:なぜAIエージェント向けに設計されたのか

Vercel Labsが2024年にOSSとして公開したagent-browserは、AIエージェントによるブラウザ操作に特化したRust製CLIツールだ。従来のブラウザ自動化ツール(PlaywrightやSelenium)がエンジニアのテストコード向けに設計されているのに対し、agent-browserはLLM(大規模言語モデル)が直接コマンドを発行するワークフローを前提として設計されている。

最大の特徴は「アクセシビリティツリーのref参照」という仕組みだ。Webページをスナップショットとして取得すると、各インタラクティブ要素に@e1@e2といった参照タグが付与される。LLMはこの参照タグを使って要素を確実に操作でき、HTMLのCSSセレクタを推測する必要がない。

Rust製のため起動が速く、Node.jsランタイムも不要。npm経由でインストールは可能だが、実行にはRustバイナリが使われる。Browser UseのようにPythonライブラリとして統合するのではなく、あくまでCLIツールとしてシェルから呼び出す設計で、言語非依存のエージェント統合を実現している。

主な機能:ブラウザ操作からセキュリティ機能まで

クイックスタート:インストールから最初の操作まで

インストール

3つの方法からプロジェクトに合うものを選べる。

# npm でグローバルインストール(最も手軽)
npm install -g agent-browser

# Homebrew でインストール(macOS向け)
brew install vercel-labs/agent-browser/agent-browser

# Cargo でインストール(Rustが入っている環境)
cargo install agent-browser

インストール後、Chromeが未検出の場合はGoogle Chrome for Testingチャンネルから自動ダウンロードが始まる。

基本的なページ操作フロー

agent-browserの典型的な操作は「open → snapshot → 操作」の3ステップだ。

# 1. URLを開く
agent-browser open https://example.com

# 2. スナップショットを取得(アクセシビリティツリー + refタグ)
agent-browser snapshot
# 出力例:
# [ref=@e1] button "ログイン"
# [ref=@e2] input[type=text] "メールアドレス" placeholder="[email protected]"
# [ref=@e3] input[type=password] "パスワード"

# 3. refタグで要素を操作
agent-browser fill @e2 "[email protected]"
agent-browser fill @e3 "password123"
agent-browser click @e1

# スクリーンショットで結果確認
agent-browser screenshot result.png

JSON パイプによるバッチ処理

複数ステップのワークフローをJSONパイプでまとめて実行できる。これにより起動オーバーヘッドを削減し、LLMからの一括命令に対応する。

[
  {"action": "open", "url": "https://news.ycombinator.com"},
  {"action": "snapshot"},
  {"action": "screenshot", "path": "/tmp/hn.png"}
]
cat workflow.json | agent-browser batch

LangChain からの呼び出し例

LangChainのToolとしてシェルコマンドをラップする方法が最も汎用的だ。

from langchain.tools import ShellTool
from langchain.agents import AgentType, initialize_agent
from langchain.chat_models import ChatAnthropic

shell_tool = ShellTool()

# agent-browserのコマンドをLangChainツールとして登録
def browser_snapshot(url: str) -> str:
    """指定URLのアクセシビリティツリーを返す"""
    import subprocess
    subprocess.run(["agent-browser", "open", url], check=True)
    result = subprocess.run(
        ["agent-browser", "snapshot"],
        capture_output=True, text=True
    )
    return result.stdout

llm = ChatAnthropic(model="claude-opus-4-6")
# ツール定義と組み合わせてエージェントを構成

アーキテクチャ:AIエージェントとブラウザの連携フロー

agent-browserの設計は「LLMがCLIを呼び出し、結果を受け取ってループする」シンプルなアーキテクチャだ。Mermaid図で全体像を示す。

flowchart LR LLM["LLM
(Claude / GPT-4)"] -->|"コマンド発行
open, snapshot, click"| CLI["agent-browser
CLI (Rust)"] CLI -->|"アクセシビリティツリー
+ refタグ"| SNAP["snapshot
@e1, @e2, ..."] SNAP -->|"構造化テキスト"| LLM CLI -->|"headless操作"| CHROME["Chrome
(headless)"] CHROME -->|"ページ描画"| PAGE["Web Page"] PAGE -->|"DOM → A11y Tree"| SNAP CLI -->|"スクリーンショット
PDF"| OUT["出力ファイル"] OUT -->|"視覚的フィードバック"| LLM

ポイントは「LLMが直接Webページ構造を解析しない」点だ。agent-browserがアクセシビリティツリーを中間表現として提供することで、LLMは生のHTMLを扱う必要がなく、refタグという安定した識別子で操作できる。

セキュリティレイヤーとして「アクションポリシー」と「確認ゲート」も設計されており、エージェントが意図しないアクション(決済ボタンのクリックなど)を実行しようとした際に人間の承認を要求できる。

競合ツールとの比較:Browser Use / Playwright MCP との違い

AIエージェントによるブラウザ操作を実現するツールは複数存在する。それぞれの特性を整理する。

項目 agent-browser Browser Use Playwright MCP Selenium
主な対象 AIエージェント AIエージェント AIエージェント テスト/自動化
実装言語 Rust Python TypeScript 多言語
操作方式 CLI + refタグ Python API MCPプロトコル APIコール
Node.js 必要 不要 不要 必要 不要
要素識別 A11yツリー + ref CSSセレクタ/AI A11yツリー CSSセレクタ/XPath
セキュリティ機能 充実(ポリシー/ゲート) 基本的 基本的 なし
クラウド対応 Browserbase等6社 限定的 なし Saucelabs等
セッション永続化 あり(暗号化) なし なし 限定的
ライセンス MIT MIT Apache 2.0 Apache 2.0

Browser UseはPythonネイティブでLLMとの統合が密なのに対し、agent-browserはCLIとして言語非依存で使える。OpenHandsのような汎用コーディングエージェントがブラウザ操作をサブタスクとして呼び出す場合はagent-browserのCLI設計が向いている。

実践的な使い方:エージェントへの組み込みパターン

パターン1:セッション付きログインフロー

認証が必要なサービスへのアクセスは、セッション永続化機能を使う。

# 名前付きセッションを作成(暗号化して保存)
agent-browser session create myapp

# セッションを使って操作(ログイン状態が維持される)
agent-browser --session myapp open https://app.example.com/dashboard
agent-browser --session myapp snapshot

パターン2:ドメイン許可リストによる安全なエージェント

エージェントが意図しないドメインにアクセスしないよう、ポリシーで制限できる。本番環境でLLMに自律的なブラウザ操作を委ねる際に有効だ。

{
  "policy": {
    "allowedDomains": ["app.example.com", "api.example.com"],
    "requireConfirmation": ["checkout", "delete", "submit"],
    "blockThirdPartyRequests": true
  }
}

パターン3:Vercel AI SDK との統合

Vercel AI SDKのtool定義とagent-browserを組み合わせることで、Next.jsアプリからブラウザエージェントを呼び出せる。

import { tool } from 'ai';
import { z } from 'zod';
import { execSync } from 'child_process';

const browserSnapshot = tool({
  description: 'Webページのアクセシビリティツリーを取得する',
  parameters: z.object({
    url: z.string().describe('取得するURL'),
  }),
  execute: async ({ url }) => {
    execSync(`agent-browser open ${url}`);
    const output = execSync('agent-browser snapshot').toString();
    return { snapshot: output };
  },
});

Vercel AI SDKのmulti-stepエージェント(maxSteps設定)と組み合わせると、LLMがスナップショットを確認→refを選択→操作→再確認のループを自律的に回せる。LangChainでのエージェント構築についてはLangChainのエージェント構築ガイドも参照されたい。

まとめ:agent-browserを使うべきケースと注意点

agent-browserが最も力を発揮するのは以下のシーンだ:

注意点として、agent-browserのCLIスタイルは「シンプルなコマンドのシーケンス」に向いており、DOMの複雑なイベント処理や高度なネットワーク制御が必要な場面ではPlaywrightのAPIを直接使う方が柔軟な場合もある。また、2024年公開のOSSとして開発が続いているため、APIは変更される可能性がある点も留意が必要だ。

AIエージェントがブラウザを操作する基盤ツールとして、agent-browserはRust製の高速性とアクセシビリティツリーによるLLMフレンドリーな設計で、今後の自律エージェント実装に有力な選択肢を提供している。

参照ソース

よくある質問
agent-browserとPlaywrightの違いは何ですか?
Playwrightはプログラム向けのAPIを提供するのに対し、agent-browserはAIエージェントが直接呼び出すCLIツール。アクセシビリティツリーのref参照を使いCSSセレクタ不要で操作でき、Node.js環境も不要。
agent-browserはどのLLMと組み合わせられますか?
CLI経由でJSON入出力をするため、GPT-4やClaude、Geminiなどあらゆるモデルと組み合わせ可能。AI SDKやLangChainからシェルコマンドとして呼び出す構成が一般的。
agent-browserのインストールに必要な環境は?
npm、Homebrew(macOS)、またはCargoが使えればインストール可能。ChromeはGoogle Chrome for Testingチャンネルから自動ダウンロードされる。
広告
🔌
MCP対応ツール特集
Claude Codeと連携できるMCPサーバーの日本語解説まとめ
GitHub で見る X 🧵 Threads Facebook LINE B! はてブ
🔔 AI速報、毎日Xで配信中
Claude Code・MCP・AIエージェントの最新ニュースをいち早くお届け
@peaks2314 をフォロー
記事の信頼性について
AI Heartland エディトリアルポリシーに基づき作成
複数ソース照合
公式情報・報道等を突き合わせて確認
ファクトチェック済
ソースURLの内容を検証
参照ソース明記
記事末尾に引用元を掲載
Next Read →
🔓 GitHubセキュリティ危機:GlassWormがサプライチェーン攻撃で433件汚染した手口と対策
関連記事
🤖 AWS DevOps Agent正式リリース——CI/CDパイプライン生成からインシデント自動解決まで
2026年3月31日にGA開始のAWS DevOps Agent。CloudWatch・Datadog連携でインシデント自動解析、Terraform/CloudFormation対応CI/CDパイプライン生成、MCP拡張対応。MTTR最大75%削減の実績を持つ自律型DevOpsエージェントの全機能と導入手順を解説。
2026.04.04
💬 Gentle AI:シンプルなUI設計のAIチャットアプリケーションテンプレート
1442スターを獲得したGentleman Programmingのジェントルなメディアクエリ対応型AIチャットUIフレームワーク。Reactベースで直感的なプロンプト管理と会話管理を実装できる。AIアプリケーションの開発速度を短縮する基盤を今すぐ確認する。
2026.04.02
🎨 awesome-design-md:DESIGN.md 55個を統合したAIエージェント向けOSS
Google Stitch対応のDESIGN.mdを55個以上集約したAIエージェント向けOSSリポジトリ。設計仕様をMarkdownで統一しLLMによるUI自動生成を実現する仕組みと導入手順、活用パターンを徹底解説。今すぐ導入を検討しよう。
2026.04.02
✨ Happier Dev Happier:開発体験を向上させるコード整形ツール
JavaScriptプロジェクトのコード品質を自動改善するフォーマッター。Prettier互換の設定で導入でき、開発チームの一貫性を確保したい場合に検討する価値がある。
2026.04.01
Popular
#1 POPULAR
🔓 Claude Codeのソースコード流出、npmソースマップに51万行が丸見えだった件
Anthropic Claude Codeのnpmパッケージにソースマップが含まれ、1,902ファイル・51万行超のTypeScriptソースが公開状態に。未公開プロジェクト「KAIROS」や107個のフィーチャーフラグなど、内部コードの全貌を解説する。
#2 POPULAR
🚨 【速報】JavaScript主流ライブラリAxios、NPM供給チェーン攻撃でRAT配布
JavaScriptの週間1億DL HTTPクライアント「Axios」がNPM供給チェーン攻撃の被害に。[email protected]と0.30.4に悪意あるパッケージplain-crypto-jsが注入され、クロスプラットフォーム対応RATが配布。証拠自動削除機能を備えた高度な攻撃。
#3 POPULAR
⚠️ Anthropic、Claude Codeで予想外の高速クォータ枯渇認める。キャッシュバグで料金10〜20倍
Claude Codeでプロンプトキャッシュを破壊する2つのバグが発見され、API利用料が10〜20倍に跳ね上がる問題が発生。Anthropicは「チームの最優先事項」と認める。Pro/Maxユーザーから月間の大半で使用不可との報告多数。
#4 POPULAR
🔍 Claude Codeセキュリティ事件を切り分ける:ソース漏洩とaxios攻撃の違いと対処法
3月31日にClaude Codeで起きたソース漏洩とaxiosマルウェア。感染チェックコマンド・対策コードを交えて、2つの別事件の実態と具体的な対応手順を解説。
#5 POPULAR
🚀 ソフトウェア開発者ではない人が400ドルから年7M達成。AI時代の先発者優位性
AI技術を活用して短期間で大規模な収益を生み出した事例から、開発経験がなくても可能な起業の実態と、AI知識の先発者優位性について解説する。
← AWS DevOps Agent正式リリース——CI/CDパイプライン生成からインシデント自動解決まで GitHubセキュリティ危機:GlassWormがサプライチェーン攻撃で433件汚染した手口と対策 →