Browser Use WebUIで色々なユースケースを探ってみる
o3を筆頭とするReasoning modelの進化のみならず、AnthropicのComputer UseやModel Context Protocolといった周辺技術の進展も目覚ましい。いよいよこうした高性能なAI技術が既存のツールと連携し、高度なLLMシステムのモジュール群が、いわゆるAI Agentとして2025年は社会実装されてくるだろうと期待される。
こうした中で、非常に興味深い技術が発表された。Browser Useと呼ばれる、WebブラウザをLLMが自動で操作してくれるエージェントだ。「実質、ほぼAGIでは?」といった言説も散見されるが、確かに自然言語ベースの命令でブラウザを操れるとなると夢が広がる。ちょっとした調べ物から、買い物、仕事であれば申請・承認作業まで、こなしてくれるかもしれない。
このBrowser Useであるが、何より注目されるべきはオープンソースであるという点である。MITライセンスで商用利用も可だ。誰でも自分のPCにインストールして、時間をかけて地道にポチポチ行ってきた作業を代替させることができる。
Browser Useの設定方法や背景技術の説明等に関しては既に様々な解説記事があるので、その詳細は簡単な説明に留めつつ、本稿ではこのBrowser Use WebUIを実際様々なユースケースを試し、その結果を考察していこう。
Browser Use WebUI 設定方法
簡単に設定方法を述べておくが、基本はREADMEの通り行えば問題ない。
gitのリポジトリを取得
git clone https://github.com/browser-use/web-ui.git .
Python環境の設定のためにuvを使う
uv venv --python 3.11
で、これをactivate
source .venv/bin/activate
必要なパッケージをインストール
uv pip install -r requirements.txt
playwrightをインストール
playwright install
起動
python webui.py --ip 127.0.0.1 --port 7788
以上で"http://127.0.0.1:7788"にアクセスすれば使えるようになる。.envファイルへのOpenAIやClaudeのAPIキーの入力は忘れないように。また、ブラウザのパスは以下のように設定すれば良い。
Macの場合:
CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
CHROME_USER_DATA="~/Library/Application Support/Google/Chrome/Profile 1"
Browser Use WebUI 起動
以下のような画面が起動する。
基本はデフォルトのままで良いが、複雑なタスクに対応すべく試行回数を少し増やしている。また、javascriptで高度にビジュアライズされたWebサイトも珍しくないため、基本はUse Visionも有効にしておくのが良いだろう。
LLM Configurationでは、どのタイプのLLMを用いるかを選択することができる。ここでは、Anthropicのclaude-3.5-sonnetを設定しておく。尚、OpenAIはまだo1系のモデルは選択できないようだ。DeepSeekも使える点はコスト面では嬉しい。
Browser Settingsでは、細かなブラウザの設定ができる。
Use Own Browserは、ユーザーが普段利用しているブラウザを使うかどうかを指定する。これを有効にすると、ログイン済みのセッション情報を保持したままブラウザを利用することができる。Google, Amazon, 他各種サービスにログインされた状態が保持されるという訳だ。意図せず決済されたりメールを送ってしまうリスクはあるので、無効にしておくのが妥当だろう。無効にしておけば、Chromiumブラウザが起動する。(余談だが、ChromeとChromiumの違いはこの辺の記事に詳しい)
Keep Browser Openは、タスク実行が終わった後にブラウザを閉じないようにする。後述の通り、ファイルをダウンロードするといった操作には制限があるため、後から結果を見返したいならこちらは有効にしておくのが良さそうだ。
Headless Modeは、ブラウザをバックグラウンドで実行するかどうかを指定する。基本はブラウザがどのように操作されているのかGUI上で確認するため、最初は無効にしておくのが良いだろう。定期実行するようなタスクまで落とし込みができたらバックグラウンド実行を試してみると良いと考えられる。
Disable Securityは、ブラウザのセキュリティ機能を無効にする。
Enable Recordingは、操作履歴の動画をRecordingするかどうかを指定する。
設定は以上だ。早速Agentにタスクを依頼してみよう。
AI Agentにタスクを依頼する
ブラウザを使って以下のような少し突拍子もないタスクを依頼してみよう。
企業のIR情報をダウンロードし、その中身を調べる
Google Mapで経路を調べる
最新のスポーツニュースを調査しサマリする
Amazonで買い物をする
企業のIR情報をダウンロードし、その中身を調べる
PalantirのIRページからダウンロードしようとした結果、結論から言うと敢えなく失敗してしまった。単純なタスクを依頼したつもりだったが、API利用料 $2.93 ~ 460円、約10分もの実行時間をかけて、何も成果が出ず…。そのエラー結果を見てみると、概ね以下のような原因が考えられる。
Failed to click element: <a class="nav-logo" href="/"> ... Element: ... not found
Failed to click element: <a class="smart-search-edgar-full-text" href="..."> ... Cannot find context with specified id
Error executing action click_element: Element with index 1 does not exist ...
ブラウザが特定のHTML要素を見つけられず、操作に失敗している。一般的には、ページの読み込みが完了していない(遅延)、 ターゲット要素が存在しない、もしくは非表示状態、適切なセレクターが指定されていないといった要因が考えられる。おそらくページが高度にビジュアル化されており、AIにとっては認識しにくいものだった可能性がある。
AIは潔く諦め、EDGARのページに飛んで再調査しようとしたが、こちらでもTimeoutエラーに苛まれ、AnthropicのRate Limit Errorに引っかかり終わったようだ。
確かにChromiumブラウザの履歴を見ると、頑張ってEDGARのサイト内を検索しようとした痕跡は見受けられる。
プロンプトで与えた指示がやや曖昧だった点に加え、PalantirのサイトがAIにとって分かりにくかったのかもしれない。流石にこの結果では残念なので、もう少しシンプルなIRページを用意している企業でリトライしてみよう。
企業のIR情報をダウンロードし、その中身を調べる(2)
Palantir社のIRページはビジュアルが凝り過ぎていたため、よりシンプルなfreee社のIRページで再度試してみた。少しプロンプトは変えている。
結論エラーは出なかった。以下が得られた結果である。
ただ、問題なく動作はしたものの、いくつか問題があった。まず、2024年9月に提出されている有価証券報告書は問題なく探し出し、開くことはできた。しかし、この146ページあるpdfファイルの1ページ目から移動することができない。ここで数分止まってしまった。何度も試行した結果うまくいかず、AIは元のIRページに戻り、決算短信を探すことで直近の売上・営業利益を見つけることができた。運良く、決算短信のpdfファイルの1ページ目に該当する数字が記載されていたからである。実際、モデルの思考経過をModel Thoughtから確認すると、以下のような思考プロセスを辿っていることが分かる。
ポイントはここで、実際はスクロールしてはおらず、pdfの1ページ目から動いている様子はなかった。その後諦めて決算短信を探しに行った点は賢いと言えるが。
さらに、ファイルのダウンロードは実際にはできていない。Final Resultには「最新の有価証券報告書(第12期、2023年7月1日から2024年6月30日まで)のPDFファイルを/Users/<name>/Downloads/に保存しました。」とあったが、実際には確認できない。思考過程を見てみると、保存動作時に出て来るダイアログに直接アクセスできないとのことだ。
ここまで、$1.21 ~ 約190円のコストが発生している。たったこれだけのタスクで190円となると足踏みしてしまう。
他のタスクも試してみよう。
Google Mapで経路を調べる
例えば、渋谷から大阪梅田への経路を検索し、その交通手段、所要時間、価格について調べてもらおう。
結果は以下の通りである。ものの1分で調べ切ってくれたので十分な成果ではあるが、惜しいところもあった。
まず、日時を考慮していない。プロンプトでの時刻の指定が漏れてはいたものの、1月20日という点を考慮してはいない。「すぐに出発」する前提になっているので、公共交通機関ではどうしても多大な時間がかかってしまうことになる。とはいえ、出張であるという点を考慮し、最もおすすめの選択肢は空路であると結論づけている点は賢いと言えよう。また、ここまでコストはわずか$0.13 ~ 20円とこれまでのタスクと比較すれば格安ではあるが、感覚的には1円未満で遂行して欲しい気はする。
最新のスポーツニュースを調査しサマリする
次のような依頼をしたところ、ほぼ完璧な回答が返ってきた。
この調査をしたのが1月18日の22時頃である点を考慮しても、満足度の高い最新情報を調査してくれていることがよく分かる。ここまで$0.32 ~ 50円かかっていた。
Amazonで買い物をする
簡単にタスクを遂行してくれた。わずか数分ではあったが、コストは$0.58 ~ 90円と、こちらも決して安いとは言えない結果に。
まとめ
以上、いくつかのユースケースを試してみたが、簡単に遂行してくれるタスクと、案外苦戦するタスクがあることが見えてきた。また、現状のBrowser Useでは、その名の通りBrowserの操作しかできないため、完結しないタスクもあることが分かった。
様々なBrowser動作を自動化することができるが、以下のような動作は苦手、ないしは不可能であるようだ。
ダイアログの操作ができない。結果として、例えばブラウザで開いたpdfファイルをダウンロードするようなことはできない。
複数ページあるpdfファイルのスクロールができない。(少なくとも今回実験した限りではできなかった…。
一つのウィンドウで長文のファイルを開いた際、上手い具合に検索してくれるわけではない。(こういう場面でRAGを応用したい)また、Ctrl + Fで必要な情報を検索するようなこともしてくれない。
簡単な調べ物はしてくれるが、あくまで検索エンジンで引っかかる情報を抽出して来るだけであり、適切な一次情報にリーチしているわけではない。必要に応じてプロンプトで指定する必要がある。
総じてコストが高い。現状の高性能モデルを使うとコスト見合いではない
現状のBrowser Useで出来ることを前提とすると、果たしてブラウザだけで完結するタスクとは何か?という問いを突き詰めなければいけないようだ。企業の中の業務であれば、Salesforceの入力やデータ抽出、勤怠入力や各種承認など、地味に手間のかかる細々したタスクを任せることはできるかもしれない。
何か筆者の認識の間違いなどがあれば、指摘いただければ幸いである。