【爆死回避】話題のAIエージェント『browser-use』導入の落とし穴

【爆死回避】話題のAIエージェント『browser-use』導入の落とし穴:Python 3.9とAPIキーの罠をuvで突破する

GitHubで話題の browser-use を入れたら、3分でエラーを吐いて止まった。解決策は uvOpenAI API への書き換えだ。

この記事は、READMEを信じて爆死した俺の屍を乗り越えるための「生存ガイド」だ。Python 3.9環境で消耗している暇があったら、以下の手順で環境を作り直せ。

【罠1】Pythonバージョンの壁 (The Version Wall)

まず最初にぶち当たるのがこれだ。古いMacやプロジェクトの環境(Python 3.9系)で素直に pip install browser-use を叩くと、こう言われて門前払いを食らう。

ERROR: Could not find a version that satisfies the requirement browser-use (from versions: none)
ERROR: No matching distribution found for browser-use

原因は単純。Python 3.11以上が必須だからだ。

ここで pyenvconda をいじくり回して時間を浪費するな。uv (Astral) を使え。システムを汚さず、一瞬で3.11環境が手に入る。

推奨ルート:uv による爆速環境構築

# 1. uv の導入(まだ入れてないなら)
pip install uv
# 2. Python 3.11環境の爆速構築
uv venv .venv --python 3.11
source .venv/bin/activate

これで土俵に立てる。

【罠2】Playwrightの不在 (The Missing Driver)

uv pip install browser-use でインストールに成功しても、実行すると次のエラーで死ぬ。

zsh: command not found: playwright

またはブラウザが立ち上がらずにクラッシュする。理由は、browser-use はあくまで「司令塔」であり、実際のブラウザを持っていないからだ。

以下のコマンドで、依存ライブラリとブラウザバイナリを叩き込め。

# 1. Playwright本体を入れる
uv pip install playwright
# 2. 【超重要】ブラウザ本体をダウンロードする儀式
playwright install

【罠3】デフォルトコードの課金トラップ (The Paywall)

ここが最大の落とし穴だ。READMEの「Quickstart」にあるコードをそのままコピペして実行すると、こうなる。

ValueError: You need to set the BROWSER_USE_API_KEY environment variable. Get your key at https://cloud.browser-use.com/new-api-key

デフォルトの ChatBrowserUse() クラスは、開発元のクラウドサービス(ベータ版・APIキー登録制)を使おうとする。キーを持っていなければ即死だ。

デフォルトのコードは捨てろ。これをコピペしろ。

手持ちの OpenAI API Key を使い、ローカルから直接LLMを叩く構成に書き換えるのが正解だ。

【正解コード】OpenAI API版 main.py

事前に pip install langchain-openai python-dotenv も忘れるな。

import os
import asyncio
from dotenv import load_dotenv
# 【修正点】純正クラスではなく、LangChainのOpenAIクラスを呼ぶ
from langchain_openai import ChatOpenAI
from browser_use import Agent, Browser
# .envファイルから OPENAI_API_KEY を読み込む
load_dotenv()
async def main():
    # ここでモデルを指定する (gpt-4o 推奨)
    llm = ChatOpenAI(model="gpt-4o")
    # エージェントの作成
    # taskには「Googleで検索して~」など具体的な指示を書く
    agent = Agent(
        task="Go to google.com, search for 'Antigravity', and get the title of the first result.",
        llm=llm,
        browser=Browser()
    )
    # 実行
    history = await agent.run()
    
    # 結果の表示
    print(history)
if __name__ == "__main__":
    asyncio.run(main())

【罠4】実行環境の最終形 (The Final Requirements)

最終的に、以下の構成なら動く。これを requirements.txt に保存しておけば、チームの他のメンバーも爆死せずに済む。

browser-use
playwright
langchain-openai
python-dotenv

以上だ。無駄なエラーログとの格闘は終わりにして、さっさとコードを書け。

コメント

タイトルとURLをコピーしました