概要
Browser Useは、AIエージェントがWebブラウザを操作するためのPythonライブラリです。GitHubで8万スター以上を獲得し、LLMとブラウザ自動化を組み合わせる分野で最も注目されているプロジェクトの一つです。Playwrightをベースに構築されており、クリック・入力・スクロール・スクリーンショット取得などのブラウザ操作をLLMが自律的に判断して実行します。
マーケティング担当の山田さんは、Browser Useで競合サイトの価格調査を自動化。週に約12時間の手作業を削減しました。
主な機能
- LLM駆動のブラウザ操作:自然言語の指示でWebページをナビゲーション・操作
- マルチモデル対応:OpenAI、Anthropic、Google AI等の主要LLMに対応
- Playwright連携:安定したヘッドレス・ヘッドフルブラウザ制御
- ステルスモード:Bot検知を回避するクラウドブラウザオプション
- 視覚認識:スクリーンショットベースでページ構造を理解
- タスクチェーン:複数ステップのWebタスクを連続実行
- クラウド版:Browser Use Cloudでスケーラブルな実行環境を提供
技術スタック
- 言語:Python(3.11以上)
- ブラウザ制御:Playwright
- LLM統合:OpenAI API、Anthropic API、Google AI
- パッケージ管理:uv / pip
- ライセンス:MIT
導入方法
uvを使ったインストールが推奨されています。
uv init && uv add browser-use && uv sync
最小限のコードでエージェントを起動できます。
from browser_use import Agent, Browser, ChatBrowserUse
import asyncio
async def main():
agent = Agent(
task="GitHubでbrowser-useのスター数を調べて",
llm=ChatBrowserUse(),
)
result = await agent.run()
print(result)
asyncio.run(main())
APIキーを.envファイルに設定するだけで、すぐにAIブラウザエージェントが動作します。
競合比較
| 特徴 | Browser Use | Selenium + LLM | Puppeteer |
|---|---|---|---|
| AI統合 | ネイティブ | 手動構築 | なし |
| 視覚認識 | ○ | △ | × |
| Python対応 | ○ | ○ | × |
| ステルスモード | ○ | × | △ |
| セットアップ | 3行 | 数十行 | 数十行 |
Seleniumは長い歴史を持つブラウザ自動化ツールですが、LLMとの連携は開発者が自前で構築する必要があります。CSSセレクタやXPathの指定が必須で、サイト構造が変わるたびにスクリプトを修正しなければなりません。
Browser Useの最大の優位点は、サイト構造に依存しない自律的なナビゲーションです。LLMが視覚的にページを理解するため、HTMLの構造変更に強く、メンテナンスコストが大幅に下がります。PuppeteerはNode.js専用で、Python開発者にとっては選択肢になりにくいのも差別化ポイントです。
アーキテクチャと動作原理
Browser Useの内部は3つのレイヤーで構成されています。
- ブラウザレイヤー(Playwright):実際のChromiumブラウザを制御。ページの描画、JavaScript実行、ネットワーク通信を処理します
- 認識レイヤー:ページのスクリーンショットを取得し、DOM構造と組み合わせてLLMが理解できる形式に変換。クリック可能な要素やフォーム入力欄を自動検出します
- エージェントレイヤー(LLM):認識レイヤーから受け取った情報をもとに次のアクションを決定。「このボタンをクリック」「このフィールドに入力」といった具体的な操作指示を生成します
この3層構造により、開発者は「何をしてほしいか」だけを自然言語で伝えれば、具体的なブラウザ操作の指示をLLMが自動生成します。
活用シーン
データ収集・スクレイピング
従来のスクレイピングはCSSセレクタの特定が面倒で、サイト更新のたびにコードが壊れるのが悩みでした。フリーランスエンジニアの佐藤さんは不動産サイトから物件情報を収集するスクレイパーを運用していましたが、サイトリニューアルのたびに2〜3日の修正作業が発生。Browser Useに切り替えてからは「新しい物件情報を全件取得して」の一言で、サイト構造が変わっても問題なく動作。年間約15日分の保守工数がゼロになりました。
フォーム入力の自動化
経理チームのリーダー中村さんは、毎月50件以上の経費精算をWebシステムに手入力していました。Browser Useで「このCSVの内容を経費精算フォームに入力して」と指示するだけで、ログイン→フォーム遷移→入力→送信を自動実行。月8時間の作業が30分に短縮されました。
競合モニタリング
マーケティングチームでは、競合5社のサービスページを毎週チェックしていましたが、Browser Useの定期実行で「各社の料金ページをスクリーンショット付きで比較レポートにまとめて」を自動化。週3時間の調査作業がゼロになり、変更があった場合だけSlack通知が飛ぶ仕組みを構築しました。
こんな人におすすめ
- RPA開発者:従来のルールベース自動化をAI駆動にアップグレードしたい方。セレクタ管理の負担から解放されます
- データ収集エンジニア:動的Webサイトからの情報抽出を自動化したい方。SPAやJSレンダリングサイトもそのまま処理可能
- AIエージェント開発者:ブラウザ操作をエージェントのツールとして組み込みたい方。LangChainやCrewAIとの統合も容易
- マーケティング担当者:競合分析、SEOチェック、SNS分析を定期自動化したい方
- QAエンジニア:AIを活用したE2Eテストを検討している方。テストシナリオを自然言語で記述可能
注意点とベストプラクティス
- APIキーの管理:LLMのAPIキーを
.envに保存し、リポジトリにコミットしないこと - レート制限:対象サイトへのアクセス頻度を適切に制御。
time.sleep()での待機を推奨 - 倫理的利用:利用規約を確認し、スクレイピング禁止サイトでの使用は避ける
- コスト意識:LLM APIの呼び出し回数が多くなるため、GPT-4よりもClaude HaikuやGPT-4o-miniなどコスト効率の良いモデルを検討する
- エラーハンドリング:ネットワークエラーやページ読み込みタイムアウトに備え、リトライロジックを実装する