fast-browser-use について
ローカルのQwen3.5-9Bモデルにブラウザー操作を委ねるスキルとCLIです。操作前にページの最新状態を確認し、結果のアサーションも指定できます。ホストが目標を渡して結果を検証する用途で、推論はローカルで行います。
主な機能
- 01ローカルモデルによるブラウザー操作
- 02操作前のページ鮮度チェック
- 03URL・タイトル・テキストのアサーション
- 04JSONトレースとタスク録画
- 05Chromium実行環境のセットアップ案内
活用シーン
- 01ブラウザーで設定タスクを実行
- 02操作後にページの結果を確認
- 03検証済みブラウザータスクを録画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ apus-ai-lab/ fast-browser-use --skill fast-browser-useインストール後、Claude Code で/fast-browser-useを入力して読み込まれたか確認します。
詳細
Fast Browser Use
ブラウザー操作のループを fbu run に委任します。可視 DOM を読み取り、ローカルモデルに実行可能な操作を提示し、フィールドのテキストをローカルで生成して、実行前に最新状態であることを確認します。ホストはユーザーの目標を提示し、結果を検証します。ループ内でクラウド推論は使用しません。
ランタイムのセットアップ
このスキルには手順が含まれていますが、Python ランタイム、Chromium、重みは別途用意する必要があります。
fbu --help を確認してください。見つからない場合は、ソースリポジトリの README に記載されたインストール手順に従ってください。同じ名前の PyPI パッケージがこのプロジェクトのものだと決めつけないでください。uv tool install を使うと、複数のプロジェクトで CLI を利用できます。PATH の認識には uv tool update-shell の実行とホストの再起動が必要な場合があります。
インストール済みのランタイムを一度だけ fbu install-browser と fbu download で準備します。サポート対象のモデルは Qwen3.5-9B で、デフォルトではバージョンが固定されています。Apple Silicon では MLX の 4-bit 版(重みは約 5.95 GB)を使用します。それ以外のプラットフォームでは torch エクストラと、オリジナルの Qwen3.5-9B の重みを使用します。MLX と PyTorch の重み形式には互換性がありません。FBU_BACKEND=auto は、Apple Silicon では MLX、それ以外では PyTorch を選択します。FBU_MODEL には対応するローカル重みを指定できます。バックエンドを切り替えるときは、古いオーバーライドを削除してください。それ以外のアーキテクチャやサイズは拒否されます。
Linux サーバーでは、uv sync --locked --extra torch、uv run fbu install-browser --with-deps、および uv run fbu download --backend torch を実行します。タスクは --backend torch --device cuda(または cpu)を指定して実行します。cuda:N は、利用可能な GPU を選択します。CUDA では、BF16 に対応している場合は BF16、それ以外の場合は FP16 がデフォルトです。CPU では FP32 を使用します。BF16/FP16 の重みとランタイムメモリ用に約 18 GB、または FP32 の重みだけで 36 GB を確保してください。デスクトップ、DISPLAY、Xvfb は必要ありません。Windows では --with-deps を付けずに同じ CLI を使用します。
チェックアウトから実行する場合は、uv sync --locked の後、fbu の代わりに uv run --project /absolute/path/to/fast-browser-use fbu を使用します。モデルとトレースのパスは、ユーザーの作業ディレクトリを基準に解決してください。
任意の目標を実行する
FBU_MODEL=/absolute/path/to/Qwen3.5-9B-4bit \
fbu run 'https://target.example/' \
--goal 'The user-requested outcome and constraints' \
--trace artifacts/task.json
デフォルトでは、目標全体を使い、操作と完了をまとめて一度に判断し、ページの読み込みが落ち着くまでの待機時間を制限します(FBU_PLAN=0、FBU_REASONING=0)。FBU_HEADLESS=0 を設定すると、ブラウザーが表示されます。インスペクター UI は必要ありません。
要求された結果を独立して確認できる場合は、既知の終了条件を指定してください。
fbu run 'https://target.example/settings' \
--goal 'Save workspace preferences with timezone Asia/Singapore and weekly digest enabled.' \
--expect-title 'Preferences saved' \
--expect-text 'Timezone: Asia/Singapore.' \
--expect-text 'Weekly digest: enabled.' \
--trace artifacts/preferences.json
--expect-url と --expect-title は完全一致で照合されます。--expect-text は繰り返し指定でき、レンダリングされた本文テキストにすべての文字列が含まれていることを要求します。アサーションは実行後にブラウザーから最新の情報を読み取って評価され、操作プランとしてモデルに渡されることはありません。アサーションで証明できるのは、指定した条件のみです。「Saved」のような一般的なメッセージだけでは、フィールドの値は証明できません。アサーションを指定しない場合、終了コードが 0 であればモデルが DONE と報告したことを意味します。
トレースから status、verification、page、history、rejections、elapsed_ms を読み取ってください。DONE という主張や操作履歴だけでは成功を証明できません。組み込みのアサーションで結果を確認できない場合は、完了を報告する前に、結果の状態を独立して確認してください。
任意のタスクを記録する
FBU_MODEL=/absolute/path/to/Qwen3.5-9B-4bit \
fbu record --url 'https://target.example/' --goal 'The requested outcome' \
--expect-url 'https://target.example/result' --output artifacts/recordings/task
カスタム記録には、URL、目標、少なくとも 1 つの結果アサーションが必要です。--scenario オプションは任意の開発用デモであり、サポート対象サイトの一覧ではありません。記録では、FBU_HEADLESS=0 が設定されていても、常にヘッドレス Chromium を使用します。
生の記録には、すべての推論と待機が保持されます。プレビューのレンダリングには、システムの ffmpeg/ffprobe が必要です。チェックアウトから scripts/render_demo.py RECORDING_DIR --name task --max-seconds 10 を実行すると、ラベル付きの高速プレビューが作成され、元の動画が保持されます。また、実際のタスク時間と再生速度が個別に記録されます。独立して検証された完了済みの実行のみレンダリングできます。
実行境界
- 成果とユーザーの制約を指定します。手順を選択し、フィールド値を生成するのはローカルモデルです。 ループをホスト側で生成したセレクター、実行可能なモデルコード、事前に用意したフィールド文字列、サイト固有のアクション計画に置き換えてはいけません。
- サイトの状態を変更した可能性のあるタスクが失敗した場合、自動的に再実行してはいけません。次に許可された操作を行う前に、実際の状態を確認してください。新たな観測結果によって古い判断が否定される場合があります。実行した変更操作は、操作後の観測より前に記録されます。
- 候補のソフトマックススコアは相対的な選好を示すものであり、較正された正解確率ではありません。
- ブラウザーは毎回、新たに分離されたプロファイルを使用します。既存のログイン状態は引き継がれません。V1 は、ネストされた iframe/深いシャドウツリーの走査、キャンバスとのインタラクション、アップロード、複数タブのオーケストレーションには対応していません。
- トレースにはページデータと生成されたフィールド値が含まれます。個人のトレースや認証情報を git に含めないでください。
ランタイムはサイトに依存しませんが、信頼性は実験段階です。最適化後、Qwen3.5-9B は計測対象の Wikipedia タスクを中央値 30.1 秒で完了しました(検証済みの試行を 3 回実施)。リリース例では、簡単なナビゲーションと設定フォームも扱っていますが、これらは一般的なウェブサイトでの信頼性を実証するものではありません。計測の範囲と再現可能なチェックについては、リポジトリの docs/performance.md を参照してください。