**Show HN:** *AIエージェント向けオープンソースブラウザ*

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
claude mcp add browser -- npx -y agent-browser-protocol --mcp
Codex CLI
codex mcp add browser -- npx -y agent-browser-protocol --mcp
Opencode
config.json
に MCP 設定を追加(例参照)
どんな HTTP クライアントでもABP を起動 (
npx -y agent-browser-protocol
) 後、
http://localhost:8222/mcp
を指す

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
theredsix/abp-npm
手動バイナリダウンロード
MANUAL_INSTALL.md
ソースからビルド
COMPILE.md
アンインストール
Uninstall

ABP の実演

デモ: Google マップでシアトルから LA への列車経路を検索。
ページのローディングスピナーは LLM が考える間にフリーズし、JavaScript と仮想時間もステップ間で停止します。


ABP のメリット

機能ABPCDP/PuppeteerPlaywrightSeleniumagent‑browser
REST APIありなし(WebSocket)なし(RPC)ありなし(CLI)
JS 一時停止エンジンレベルデバッガなしなしなし
仮想時間あり部分的(CDPのみ)部分的(Clock API)なしなし
仮想カーソルコンポジタなしなしなしなし
スクショ自動取得あり手動手動手動手動(CLI フラグ)
イベント検出内蔵手動購読手動手動なし
要素マークアップ内蔵なしなしなしアノテーション付きスクショ
セッション記録内蔵DevTools RecorderCodegen + TraceSelenium IDEなし

コアの利点

  1. エンジンレベル制御 – Chromium の Browser, TabStripModel, DevTools へ直接アクセス
  2. スマートなアクション応答 – 各リクエストは決定論的状態(スクショ、イベント、カーソル)を返す
  3. 実行制御 – ステップ間で JavaScript 実行が凍結し、タイマーと
    Date.now()
    が確定する
  4. 要素マークアップ – スクショに対話型要素のバウンディングボックスを付与
  5. ネイティブイベントハンドリング – ダイアログ、ファイル選択ダイアログ、ダウンロードがイベントとして露出
  6. セッション記録 – すべてのアクションが SQLite にロギング(ビジョン‑ラングエージモデル訓練に有用)

コマンドラインフラグ

フラグ説明
--abp-port=8222
API ポート(デフォルト: 8222)
--abp-session-dir=PATH
セッションデータディレクトリ(デフォルト:
/tmp/abp-UUID
--abp-config=PATH
設定ファイルパス
--abp-window-size=W,H
ウィンドウサイズ(デフォルト: 1280,887)
--abp-zoom=FACTOR
ズーム係数(デフォルト: 1.0)
--abp-disable-pause
ステップ間の自動 JS 停止を無効化
--allow-system-inputs
システム入力を許可(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 の変更も同じライセンスに準拠します。

同じ日のほかのニュース

一覧に戻る →

2026/03/12 0:35

**Temporal:JavaScript で時間を直すための9 年間の旅**

## Japanese Translation: > Bloomberg の JavaScript インフラストラクチャチームは、Chromium(ブラウザ用)、Node.js(サーバー用)、SpiderMonkey(埋め込み用途)という統一されたランタイムスタックを提供し、そのエンジニアリングワークフォースを支援しています。 > このチームは TC39 を通じて Temporal の提案を推進する上で重要な役割を果たしており、Igalia と緊密に協力し代表者として活動しています。Promise.allSettled、Arrow Functions、BigInt、Class Fields などへの貢献で知られる Jason Williams がこの取り組みを主導しました。 > Temporal は JavaScript の可変 Date オブジェクトを不可変型(PlainDate、PlainTime、ZonedDateTime、Instant)に置き換え、明示的なタイムゾーンとカレンダーのサポート、およびナノ秒精度を提供します。2024 年 6 月に Stage 4 に達し、現在は ES2026 スペックの一部となっています。 > Bloomberg の金融ユースケースでは、設定可能なタイムゾーン、最新の IANA tzdata、そして高精度のタイムスタンプが必要であり、これが Temporal の開発を推進しました。この提案は Google Internationalization チーム、Boa、Kevin Ness、Manish Goregaokar、Jose Espina によって構築された Rust ライブラリ *temporal_rs* を通じて協力的に実装され、現在約 4,500 件の Test262 テストに合格しています。 > ブラウザサポートのマイルストーンは次のとおりです:Firefox v139(2025 年 5 月)、Chrome v144 & Edge v144(2026 年 1 月);Node.js v26 および TypeScript 6.0 Beta(2026 年 2 月)も近々期待されています。Safari は部分的なプレビューを提供しています。 > 主な実装上の課題には、提案サイズ(ECMA‑402 より大きい)、仕様の揺らぎ、パフォーマンス要求、および大規模テストスイートの必要性が含まれます。 > 今後の作業は Temporal を既存の Web API(デートピッカー、DOMHighResTimeStamp、クッキー有効期限など)と統合し、従来の Date ベースのライブラリとの後方互換性を確保することに焦点を当てています。 > Microsoft、Google、Mozilla、Bloomberg、Igalia、Boa、および独立した貢献者間の協力は、重複を減らし JavaScript エコシステム全体でイノベーションを加速させる共有インフラストラクチャモデルを示しています。 この改訂された概要はすべての主要ポイントを保持し、不当な推論を排除し、明確で曖昧さのない物語を提示します。

2026/03/12 4:29

生成・AI で編集されたコメントを投稿しないでください。HN は人と人との対話の場です。

## 日本語訳: (すべての重要ポイントを含む)** このポリシーは明確な使命を示しています。ハッキング、スタートアップ、および関連技術テーマに関する好奇心駆動型ディスカッションを開催し、政治・犯罪・スポーツ・有名人ゴシップ(新たな現象が明らかでない限り)は厳格に除外します。 この焦点を維持するため、ガイドラインはオントピックとオフトピックのコンテンツを区別し、投稿にはオリジナルソースの使用(再投稿時は引用)を求め、タイトルで宣伝的言語を禁止します。タイトルは大文字・感嘆符・過剰な数字や形容詞を避け、サイト名を含まないようにし、代わりに強調のためにアスタリスクを使用できます。動画またはPDF投稿の場合、タイトルに「[video]」または「[pdf]」を付加します。 コメントは思慮深く実質的であることが期待されます。皮肉・浅い軽蔑・炎上誘発・政治/イデオロギー戦争は排除し、人物ではなく議論に対処すべきです。AI生成または編集されたコメントは禁止されており、全てのディスカッションは人間同士で行われることを意図しています。アップボートやコメントの要請は禁じられており、投票とコメントは真剣な関心から生まれるべきです。 モデレーションは過度に差し控えめな発言をフラグ付けすることに重点を置き、形式ルールを強化し、イデオロギー対立を会話から排除します。その結果、誤情報・センセーション主義・宣伝活動を抑制しつつ、集中した技術的探求を奨励するプラットフォームが実現されます。

2026/03/12 5:56

多くのSWE bench‑passing PR はマージされることがないでしょう。

## Japanese Translation: **概要:** 本研究では、2024年中頃から2025年末までに提出された296件のAI生成プルリクエスト(PR)を、scikit‑learn、Sphinx、および pytest の3つの主要なソフトウェア工学ベンチマークリポジトリで、4名の活発なメンテナーから検証しました。これらの PR の約半分は、メンテナーの判断にノイズを加えてもメインブランチへマージされませんでした。平均して、自動評価者(グレーダー)の合格率はメンテナーのマージ率より 24.2 パーセントポイント高く、統計的に有意であることが示されました。メンテナーの年次改善率はグレーダーのそれを約 9.6 pp/yr 遅れ、弱いながらも統計的に有意な結果でした。 メンテナーは主にコード品質(スタイル不備やリポジトリ標準への非準拠)を理由に PR を拒否しました。他の失敗要因としては既存コードの破損、コア機能の喪失、および自動グレーダーの失格が挙げられます。Claude 3.5 Sonnet から Claude 3.7 Sonnet へのモデルアップグレードにより合格率は上昇しましたが、同時にコア機能拒否も増加し、後続のアップグレードでは主にコード品質の改善が見られました。GPT‑5 は Anthropic モデルと比べてコード品質で顕著に劣り、マージ率を低下させました。 ヒューマン「ゴールデン」パッチは 68 % のメンテナー マージ率と約 90 % のマージ可能性向上率を示し、このベースラインがモデルスコアの正規化に使用されました。PR を再評価して ≥80 % のマージ可能性進捗に達した場合、結果は合格率分析と同様であり、AI パッチの約 50 % が閾値を満たし、ゴールデンパッチでは約 100 % に相当しました。時間軸解析では、自動グレーダーがメンテナー評価に対してモデル能力を約7倍過大評価していることが明らかになりました。 制限点としては、リポジトリカバレッジの限定(検証済みリポジトリ 3/12)、レビュー時の継続的インテグレーションの欠如、および静的評価に留まるパッチ評価が挙げられます。著者は、ベンチマークスコアからの単純な外挿は誤解を招くと結論付けており、メンテナーによるレビューこそがエージェント有用性をより現実的に測定する手段であると示しています。