AIエージェント入門

Browser-use完全ガイド2026|AIエージェントのブラウザ自動化

Browser-use完全ガイド2026|AIエージェントのブラウザ自動化

この記事の結論

Browser-useはGitHub 78k+のOSS Pythonライブラリ。AIエージェントにブラウザを操作させる最短手段を、インストールから複雑フロー・LangChain連携まで実装例つきで解説。

Browser-useはLLMに「人間と同じようにブラウザを操作させる」ためのOSS Pythonライブラリです。GPT-5・Claude Opus・Gemini など主要LLMをそのまま使え、Playwrightベースの安定性とビジョン併用で複雑なフォーム送信・スクレイピング・E2Eテストまで自律実行できます。GitHub Stars 50k+を突破し、AIブラウザエージェント領域の事実上のデファクトです。本記事ではインストールから本番運用パターン・失敗回避まで、コード15本付きで実装目線で解説します。

Browser-useとは|LLM×Playwrightの設計思想

Browser-useは「LLMにDOMの構造化情報+スクリーンショットを渡し、自然言語タスクを操作シーケンスに翻訳して実行させる」設計です。Playwrightで実ブラウザ(Chromium / Firefox / WebKit)を駆動するため、JavaScript重めのSPA・ログイン保護されたサイト・カレンダー予約・在庫確認などにも強く、単純なPythonスクリプトでは届かない領域を自然言語で書き下せます。

インストール|pip + Playwright dependencies

# Python 3.11+ 推奨
pip install browser-use
playwright install chromium

# LangChain LLM bindings(任意)
pip install langchain-anthropic langchain-openai

Linuxサーバーで動かす場合はplaywright install-deps chromiumを追加実行し、必要なシステムライブラリ(libnss3 / libxkbcommon / libgbm 等)を揃えてください。Docker運用の場合はmcr.microsoft.com/playwright/pythonベースイメージが最短です。

基本Agent定義|30行で動くサンプル

import asyncio
from browser_use import Agent
from langchain_anthropic import ChatAnthropic

llm = ChatAnthropic(model="claude-opus-4-7", temperature=0)

agent = Agent(
    task="Hacker News のトップ3記事タイトルとURLをJSONで返す",
    llm=llm,
    use_vision=True,
)

async def main():
    result = await agent.run()
    print(result.final_result())

asyncio.run(main())

Browser-useはタスクを受け取ると(1)スクリーンショット撮影、(2)DOMから操作可能な要素にindex付与、(3)LLMに状況送信、(4)返ってきたactionを実行、(5)次のステップへ、というループを回します。use_vision=Trueでスクリーンショットも一緒に渡すため、純テキストDOMでは判別困難なUI(モーダル・カルーセル・カレンダー)に強くなります。

マルチタブ・複雑フロー

from browser_use import Agent, Browser, BrowserConfig

browser = Browser(
    config=BrowserConfig(
        headless=False,
        disable_security=False,
        new_context_config={"viewport": {"width": 1280, "height": 800}},
    )
)

agent = Agent(
    task=(
        "Amazon と楽天で『ノイズキャンセリングヘッドホン 4万円以下』を検索し、"
        "それぞれ上位5件の商品名と価格を抽出して比較表を返す"
    ),
    llm=llm,
    browser=browser,
    use_vision=True,
)
result = asyncio.run(agent.run())

この記事をシェア

X Facebook LINE

※ 本記事の情報は2026年5月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。

関連記事