browser-use/browser-harness

Browser Harness | Self-healing harness that enables LLMs to complete any task.

Browser Harness – LLMを実際のブラウザに直接接続する

概要 – Browser Harnessは、言語モデルベースのエージェントがChrome DevTools Protocol (CDP) を通じてローカルのChrome/Edgeブラウザを制御できるようにする軽量なPythonライブラリです。エージェントは、その場で小さなヘルパー関数を書き、自身のワークスペースに保存することで、タスクごとにハーネスがより賢くなっていく仕組みです。

仕組み

  • 単一の編集可能なCDP WebSocketが開かれます (chrome://inspect/#remote-debugging)。
  • ライブラリには、LLMに基本的なブラウザワークフロー(タブを開く、クリック、スクロール、ファイルのダウンロードなど)を教えるスキル (browser-harness skill) が同梱されています。
  • エージェントが不足しているヘルパーを見つけた場合、agent-workspace/agent_helpers.py にPythonコードを書き込みます。これらのヘルパーは、将来の実行時に再利用可能です。
  • オプションのMCP (Multi-Chat-Protocol) サーバー (browser-harness-mcp) がstdio経由で同じ制御機能を公開するため、あらゆるMCP互換クライアント(Claude Code, Cursor, Devin, …)がCDPを再実装することなくブラウザを操作できます。

主な機能

  • ファイルのアップロード / ダウンロード – 例えば、サイトにファイルをアップロードしたり、デモGIFに示されているように動画をスクレイピングしたりできます。
  • 並列 / スケール可能なブラウジング – 個人のタスクには無料のローカルブラウザを使用し、大量のブラウザ、プロキシ、CAPTCHA解決などの場合は Browser Use Cloud に切り替えることができます。
  • エージェントによる生成されたヘルパー – LLMはセッション中に自身のツールボックスを拡張できるため、システムが時間の経過とともに改善されます。
  • ユーザー設定不要 – 一度の「リモートデバッグを有効にする」クリックの後、エージェントが残りの作業をすべて行います。

一般的なワークフロー

  1. uv (Python 3.12) でインストール/アップグレードし、スキルを登録します。
  2. ハーネスを実行します。リモートデバッグページが開きます。
  3. ユーザーが接続を承認します。
  4. LLMはプロンプト(例:“Open my X profile, find my latest 20 video posts, and download them.”)を受け取り、CDPコマンドの発行を開始します。
  5. 必要なヘルパーが不足している場合、LLMはそれを agent_helpers.py に書き込み、続行します。

はじめに

  • パッケージのインストール、スキルの登録、およびオプションのローカル録画に関する質問を行う短い Setup prompt (Claude Code または Codex にコピー&ペースト) に従ってください。
  • 詳細なインストール手順は install.md にあります。
  • スキルの定義は SKILL.md にあり、コアライブラリのコードは src/browser_harness/ にあります。

スケーリング – 重いワークロードの場合、Browser Use Cloud からAPIキーを取得し、クラウドサービスを使用して、追加機能(ステルスモード、プロキシ、CAPTCHA解決、ライブプレビュー)を備えた複数のブラウザを立ち上げることができます。

コミュニティ – バグ修正、ドキュメント、またはエージェントが生成する新しいドメインスキルに関する貢献が歓迎されています。ガイドラインについては CONTRIBUTING.md を参照してください。


結論 – Browser Harnessは、現代のLLMエージェントが実際のウェブブラウザと対話、その場で新しいアクションを学習、そしてオプションでクラウドホストされたブラウザへとスケールアウトできる実用的なブリッジを提供します。これは、ウェブエージェントアプリケーションを構築するための具体的なインフラストラクチャです。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト