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())
この記事をシェア
※ 本記事の情報は2026年5月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。