「Open Source Project a Day」第45回:Browser Harness――AIエージェントに“手”と“目”を与える軽量ブリッジ

Dev.to / 2026/4/22

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisTools & Practical UsageModels & Research

要点

  • Browser Harnessは軽量なオープンソースのエージェント中心ツールで、Chrome DevTools Protocol(CDP)に直接ブリッジすることで、AIエージェントがブラウザ状態を効率よく「読み書き」できるようにします。
  • PlaywrightやSeleniumのような人向けの自動化フレームワークと違い、重い静的な抽象化を避け、実行中にヘルパー関数を適応できる設計で、エージェントの推論に合わせます。
  • 本プロジェクトは、Rich Suttonの「The Bitter Lesson」の思想に触れつつ、低レベルで透明性の高い制御を重視し、制御可能・再現可能・観測可能なテストハーネスとして設計されています。
  • ローカルのCookieやブラウザプロファイルをリモート環境へ同期することで、認証済みセッションを維持でき、手動でのログインを繰り返す手間を減らします。
  • この記事ではBrowser Harnessを、AI支援のオフィス作業、複雑なWeb自動化、マルチプラットフォームでのセッション同期といった実運用のユースケースに適したものとして位置づけています。

はじめに

"AIにブラウザを渡せば、あなたの代わりにそれが全インターネットに接続します。"

これは「1日1つのオープンソースプロジェクト」のシリーズ第45回の記事です。今日は Browser Harnessbrowser-harness)を取り上げます。

急速に進化し続けるAIエージェントの世界において、根本的な課題は依然として残っています。すなわち、LLMがブラウザと効率的かつ低コストでやり取りするにはどうすればよいのか、という点です。Playwright や Selenium のような従来の自動化ツールは強力ですが、設計の前提が 人間 です。重たいAPIの抽象化や静的なロジックは、多くの場合、エージェントの自律的な推論の障害になります。

Browser Harness は全く別の道を選びます。非常に軽量(Pythonは約600行のみ)で、Chrome DevTools Protocol(CDP)に直接ブリッジします。これにより、タスクの最中にエージェントがリアルタイムで自分自身のヘルパー関数を書いたり修正したりできるよう促します。

学べること

  • 中核となる概念:「エージェント中心」のブラウザツールキットが本当に意味するもの。
  • 技術的なハイライト:CDPへの直接ブリッジと自己修復(self-healing)設計。
  • ユースケース:AI支援による事務作業、複雑なWeb自動化、多プラットフォームでのセッション同期。
  • クイックスタート:お好みのAIアシスタントへのデプロイと接続方法。
  • 比較:なぜ従来のテスティング用フレームワークよりもLLMに適しているのか。

前提条件

  • Python開発の基礎知識。
  • AIエージェントの概念に馴染みがあること(例:Claude Code や OpenAI GPTs)。
  • Playwright のようなブラウザ自動化ツールに関する一般的な理解。

プロジェクトの背景

プロジェクト概要

Browser Harness(♞)は browser-use チームがリリースしたオープンソースツールです。これは「管理され、再現可能で、観測可能な環境」(テストハーネス)として設計されています。その思想はリッチ・サットンの『The Bitter Lesson(苦い教訓)』に由来しており、「AIを人間が定義したルールで制限すべきではなく、代わりに低レベルで透明性のある制御を提供すべきだ」と主張しています。

このプロジェクトにより、AIエージェントはChromeセッション情報を直接読み書きでき、ローカルのブラウザCookieやプロファイルを認証済みセッションのためにリモート環境へシームレスに同期できます。これにより、手動での再ログインを行わずに済みます。

著者/チーム紹介

  • チームbrowser-use
  • 中核となる動機:AIが人間よりも自然(かつ高速)にインターネットを使えるようにする、透明なブリッジを構築すること。
  • プロジェクト状況browser-use エコシステムの主要な柱として、現在も積極的に開発中です。

プロジェクト統計

  • ⭐ GitHubスター:400+(急速に増加中)
  • Fork:30+
  • バージョン:Alpha
  • ライセンス:MIT
  • Webサイト:browser-use.com

主な機能

中核となるユーティリティ

Browser Harness は、AIエージェントの「オペレーティングシステム」の拡張として機能します。トークン消費を最小限に抑えながら、高精度でブラウザを操作できるようにします。

ユースケース

  1. AIによる自動フォーム入力
    • ローカルのCookieを同期し、経費精算レポートのような面倒な処理を各種サイトにまたがって自動で処理します。
  2. クロスプラットフォームなコンテンツ操作
    • GitHub、Medium、Quora のような特定サイトのベストプラクティスに従ってコンテンツを投稿するように、エージェントを学習(訓練)します。
  3. 複雑なデータスクレイピング&分析
    • 既存のスクリプトがレイアウト変更で失敗した場合、エージェントが自律的にDOMを探索し、新しい抽出用関数を書けます。
  4. ユーザーとしてのエージェント
    • ログインを繰り返さずに、認証が必要なWebタスクでユーザーを代理するエージェントを有効化します。

クイックスタート

ローカルのAI開発アシスタント(Claude Code のようなもの)を使用している場合は、次の手順に従ってください:

# 1. クローンして環境をインストール
git clone https://github.com/browser-use/browser-harness
cd browser-harness
uv sync

# 2. ブラウザを起動してセットアップを実行
uv run browser-harness --setup

# 3. これをあなたのエージェントのプロンプトに入力:
# "現在のプロジェクトのinstall.mdとSKILL.mdを読み、私のChromeブラウザに接続するのを手伝って。"

重要な特徴

  1. Direct CDP Bridge(CDPへの直接ブリッジ)
    • Playwright のような高レベルのライブラリをスキップしてChrome DevTools Protocolに直接接続し、超高速な応答を確実にします。
  2. ドメインスキル
    • GitHub、Medium、SoundCloud のような特定サイト向けの、あらかじめ最適化されたパターンを含みます(domain-skills/ にあります)。
  3. プロファイル同期
    • ローカルのユーザー設定をクラウドへスムーズに同期し、認証を簡単にします。
  4. ミニマリストなコア
    • 小さなコードベースにより、AIがツール全体のロジックを簡単に読み取り、上書きできるため、「再帰的なツール改善(recursive tool improvement)」が可能になります。
  5. 待ち時間のない実行
    • 可能な場合は全文のレンダリングよりも、データ取得のためのHTTPレベルの回避策(workaround)を優先します。リソースを節約できます。

プロジェクトの利点

機能 Browser Harness Playwright / Selenium
対象ユーザー AIエージェント 人間の開発者 / QAエンジニア
思想 動的で自己適応的 静的で強い型付けのAPI
統合コスト 非常に低い(LLMが1回読めば理解できる) 高い(複雑なドキュメントを学ぶ必要がある)
柔軟性 エージェントがコアのヘルパーを書き換えられる 公開APIインターフェースの範囲に限定される

詳細な分析

アーキテクチャ:「透明なブリッジ」

Browser Harness のアーキテクチャは優雅でシンプルです(daemon.py を参照)。UnixドメインソケットまたはWebsocketsを介してChromeインスタンスと永続的な接続を維持するバックグラウンドのデーモンを動作させます。

コアモジュールの分析

  1. daemon.py:コマンドの待ち受けを管理し、それらをChromeへ転送します。
  2. helpers.py:「クリック」「スクロール」「ページ情報の取得」といった「原子的な操作(atomic operations)」を提供します。これらはフラットで単純であるため、LLMがロジックを容易に理解し、修正できます。
  3. domain_skills/:特定のWebサイト向けに、マイクロで高効率な操作モジュールを記述する方法を示すライブラリ。
# 例: ページ情報を取得するための、簡略化されたヘルパー
def page_info():
    """コアとなるページのメタデータを取得します。Agentの要約のために最適化されています"""
    # ロジックはCDPを介してタイトル、URL、そして間引いたDOMツリーを直接取得します
    ...

「苦い教訓」の実践

「The Bitter Lesson(苦い教訓)」の中で、Suttonは「計算を活用する一般的な方法が最も効果的であり、その差は大きい」と述べています。

Browser Harnessはこれを、考え得るあらゆるWeb操作に対して人間が定義したラッパーを作ることを拒むことで実現しています。その代わりに、透明性のある低レベル環境を提供します。複雑なWebレイアウトに直面したとき、背後にあるLLMの推論力を信頼し、リアルタイムのフィードバックに基づいて、Agentが一時的で的を絞った操作用の関数を自ら構築できるようにします。

プロジェクトの住所(Address)& リソース

公式リソース

対象読者

  • AI開発者: Webとの相互作用を必要とする自律型Agentを構築します。
  • フルスタックエンジニア: AIを使って日々の反復的なWeb作業を自動化したいと考えています。
  • 研究者: 動的な環境におけるLLMの計画と実行を探求しています。

私のホームページで、役に立つ知識や面白いプロダクトをもっと見つけてください