【爆死回避】話題のAIエージェント『browser-use』導入の落とし穴:Python 3.9とAPIキーの罠をuvで突破する
GitHubで話題の browser-use を入れたら、3分でエラーを吐いて止まった。解決策は uv と OpenAI 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以上が必須だからだ。
ここで pyenv や conda をいじくり回して時間を浪費するな。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
以上だ。無駄なエラーログとの格闘は終わりにして、さっさとコードを書け。


コメント