
2026/03/11 23:39
**Show HN:** *AIエージェント向けオープンソースブラウザ*
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
## Summary ABPはChromiumベースのブラウザで、`http://localhost:8222/api/v1/*` にREST APIを公開するHTTPサーバーを埋め込んでいます。 各API呼び出し(例:`/click` や `/navigate`)では実際のユーザー入力を注入し、ページが「settled」状態になるまで待機し、コンポジタスクリーンショット(オプションで要素マークアップ付き)を取得し、JavaScriptと仮想時間を次のステップまで一時停止した後、豊富なレスポンスを返します。レスポンスにはステータス、前後のスクリーンショット(base64‑webp)、スクロール状態、イベント(ナビゲーション、ダイアログ、ファイル選択、ダウンロード)、タイミング、およびカーソル位置が含まれます。 1回の操作あたりのオーバーヘッドは約100 msであり、ボトルネックはブラウザ自体ではなくLLMです。デフォルトではABPは実際のシステム入力をブロックします(`--allow-system-inputs` で上書き可能)し、`--abp-disable-pause` を使用しない限り操作間で一時停止します。 組み込みMCPサーバー(`/mcp`)により、Claude CodeやCodex CLIなどのエージェントは `claude mcp add browser` で登録できます。 ABPはタブ管理・ナビゲーション・マウス/キーボード入力・JavaScript実行・テキスト抽出・ダイアログ/ファイル選択処理(例:`/dialog/accept`)・ダウンロード管理・権限プロンプト・位置情報スプーフィング・仮想カーソル描画を網羅し、18個のツールを備えた組み込みMCPサーバーもサポートします。 セッション記録はブラウザに組み込まれており、各操作がSQLiteデータベースに保存されます(前後スクリーンショット、パラメータ、タイミング、および成功ステータスを含む)。記録ディレクトリは `--abp-session-dir` で設定できます。 計画中の拡張機能には操作の成功/失敗追跡と人間のブラウジングセッションの記録(エージェント微調整用)があります。 このセットアップにより、ユーザーや開発者はHTTP経由で自動化可能な信頼性が高くテレメトリ豊富なブラウザインターフェースを利用でき、詳細なセッション記録をデバッグやトレーニングデータ生成のために提供しながら、堅牢なAI駆動ウェブタスクを実現します。
本文
ウェブブラウジングをステップバイステップに
ABP(Agent Browser Protocol)は、継続的なウェブ閲覧をエージェントが好む離散型マルチモーダルチャット形式へ変換します。
- Online Mind2Web で 90.53 % の精度 – 再現性のある結果
- Chromium ビルドに MCP + REST を直接ブラウザエンジンへ組み込み
動作概要
- 1リクエスト=1ステップ完了:状態確定 + スクリーンショット + イベントログ
- WebSocket も CDP セッション管理も不要 – HTTP だけで完結
- アクションごとに約 100 ms のオーバーヘッド(スクショ込み)
- ボトルネックはブラウザではなく LLM
クイックスタート
1️⃣ ABP を Claude Code に MCP サーバーとして追加
claude mcp add browser -- npx -y agent-browser-protocol --mcp
2️⃣ サニティチェック(任意)
curl -s http://localhost:8222/api/v1/tabs
例題
「415 Mission St, San Francisco の近くで Doordash にある kung pao chicken を探して」
各ツール呼び出しは、確定したページ状態(スクショ+イベント)を返します。ステップ間でページはフリーズするため、Claude がブラウザに追いつくことはありません。
アクションフロー例
| AI エージェント | ABP Chromium |
|---|---|
| POST /click (x=450, y=320) | 実際の入力イベントを注入 → ページが確定するまで待機 → スクショ取得 → イベント収集 → JavaScript と仮想時間を一時停止 |
| 200 OK: screenshot + events | |
| エージェントはスクショを確認し判断 | |
| POST /type (text="Show HN") | JS・タイムラインを再開 → キーボードイベント注入 → 確定待ち → スクショ+イベント取得 |
対応環境
| クライアント | 追加方法 |
|---|---|
| Claude Code | |
| Codex CLI | |
| Opencode | に MCP 設定を追加(例参照) |
| どんな HTTP クライアントでも | ABP を起動 () 後、 を指す |
REST‑API の使い方
# タブ一覧取得 curl -s http://localhost:8222/api/v1/tabs # ナビゲーション(スクショ+イベント付き) curl -s -X POST http://localhost:8222/api/v1/tabs/<TAB_ID>/navigate \ -H 'content-type: application/json' \ -d '{"url":"https://example.com","screenshot":{"format":"webp"}}'
詳細は
docs/REST-API.md をご覧ください。
npm / ビルド
| トピック | リンク |
|---|---|
| TypeScript SDK | |
| 手動バイナリダウンロード | |
| ソースからビルド | |
| アンインストール | |
ABP の実演
デモ: Google マップでシアトルから LA への列車経路を検索。
ページのローディングスピナーは LLM が考える間にフリーズし、JavaScript と仮想時間もステップ間で停止します。
ABP のメリット
| 機能 | ABP | CDP/Puppeteer | Playwright | Selenium | agent‑browser |
|---|---|---|---|---|---|
| REST API | あり | なし(WebSocket) | なし(RPC) | あり | なし(CLI) |
| JS 一時停止 | エンジンレベル | デバッガ | なし | なし | なし |
| 仮想時間 | あり | 部分的(CDPのみ) | 部分的(Clock API) | なし | なし |
| 仮想カーソル | コンポジタ | なし | なし | なし | なし |
| スクショ自動取得 | あり | 手動 | 手動 | 手動 | 手動(CLI フラグ) |
| イベント検出 | 内蔵 | 手動購読 | 手動 | 手動 | なし |
| 要素マークアップ | 内蔵 | なし | なし | なし | アノテーション付きスクショ |
| セッション記録 | 内蔵 | DevTools Recorder | Codegen + Trace | Selenium IDE | なし |
コアの利点
- エンジンレベル制御 – Chromium の Browser, TabStripModel, DevTools へ直接アクセス
- スマートなアクション応答 – 各リクエストは決定論的状態(スクショ、イベント、カーソル)を返す
- 実行制御 – ステップ間で JavaScript 実行が凍結し、タイマーと
が確定するDate.now() - 要素マークアップ – スクショに対話型要素のバウンディングボックスを付与
- ネイティブイベントハンドリング – ダイアログ、ファイル選択ダイアログ、ダウンロードがイベントとして露出
- セッション記録 – すべてのアクションが SQLite にロギング(ビジョン‑ラングエージモデル訓練に有用)
コマンドラインフラグ
| フラグ | 説明 |
|---|---|
| API ポート(デフォルト: 8222) |
| セッションデータディレクトリ(デフォルト: ) |
| 設定ファイルパス |
| ウィンドウサイズ(デフォルト: 1280,887) |
| ズーム係数(デフォルト: 1.0) |
| ステップ間の自動 JS 停止を無効化 |
| システム入力を許可(ABP はデフォルトでブロック) |
プロジェクト構成
chrome/browser/abp/ ├─ abp_http_server.{cc,h} ├─ abp_controller.{cc,h} ├─ abp_action_context.{cc,h} ├─ abp_input_dispatcher.{cc,h} ├─ abp_event_observer.{cc,h} ├─ abp_event_collector.{cc,h} ├─ abp_mcp_handler.{cc,h} ├─ abp_tool_builder.{cc,h} ├─ abp_history_controller.{cc,h} ├─ abp_history_database.{cc,h} ├─ abp_download_observer.{cc,h} ├─ abp_config.{cc,h} └─ abp_switches.{cc,h}
現状
- 動作中:タブ管理、ナビゲーション、スクショ(マークアップ&カーソル付き)、マウス/キーボード入力、JS 実行、テキスト抽出、ダイアログ、ファイル選択、ダウンロード、権限、仮想時間、セッション履歴、MCP サーバー(18ツール)
- 未実装:アクションの成功/失敗追跡、人間の閲覧セッション記録(訓練用)
アンインストール
# Claude Code claude mcp remove browser # Codex CLI codex mcp remove browser
他のクライアントの場合は、MCP 設定ファイルからブラウザエントリを削除してください。
コントリビューション & ライセンス
ABP は Chromium の大規模フォークです。貢献歓迎 – メンテナ(Han Wang)へご連絡ください。
© 2026 Han Wang. All rights reserved. Chromium は BSD‑3‑Clause によりライセンスされ、ABP の変更も同じライセンスに準拠します。