5層ブラウザ自動化ルーター
段階的リソースエスカレーション——最も軽いツールで仕事を片付ける。
たとえ話:レストランの情報を調べる5つの方法
Section titled “たとえ話:レストランの情報を調べる5つの方法”あるレストランが今夜営業しているか知りたい。合理的な人のアプローチ:
- Googleマップを確認 — 最速、最安。営業時間が掲載されていれば完了。
- レストランのウェブサイトを見る — もう少し手間だが、まだ速い。トップページで営業時間を確認。
- レストランに電話 — より手間(相手の時間も使う)だが、ウェブサイトが古い場合に対応。
- 誰かを現地に送る — 高コストで遅いが、確実に答えが得られる。
- 誰かを送って座って注文させる — 最もコストが高いが、完全な体験を評価する必要がある場合は必要。
DuDuClawのブラウザ自動化は同じ原則に従います:最も安価なアプローチから始め、前のレベルが失敗した時だけエスカレーション。
Layer 1:API Fetch — REST APIエンドポイントへの直接HTTPリクエスト。最速・最安。
適用場面:公開APIを持つ構造化データソース。天気サービス、株価、公開データベース。 失敗時:ターゲットにAPIがない、または必要なデータがAPI経由で公開されていない。
Layer 2:Static Scrape — HTMLページをダウンロードしてJavaScriptを実行せずにパース。
適用場面:コンテンツが初期HTMLにある従来のサーバーレンダリングWebサイト。 失敗時:コンテンツのレンダリングにJavaScriptが必要なシングルページアプリケーション(SPA)。
Layer 3:Headless Browser — ブラウザエンジンを(可視ウィンドウなしで)起動し、JavaScriptを実行、ページを完全にレンダリングしてデータを抽出。
適用場面:クライアントサイドレンダリングの最新Webアプリ。ほとんどのSPA、ダッシュボード、インタラクティブマップ。 失敗時:認証、CAPTCHAの解決、その他のインタラクティブなステップが必要なページ。
Layer 4:Sandbox Browser — L3と同じだが、セキュリティのために隔離コンテナ内で実行。
適用場面:認証が必要なページ、自動化検出を試みるサイト、複雑なインタラクションシーケンスが必要なページ。 失敗時:視覚的パターン認識、ドラッグ&ドロップ、その他の人間のような視覚的インタラクションが必要なページ。
Layer 5:Computer Use — 仮想ディスプレイとシミュレートされたマウス・キーボード。ブラウザが視覚的に実行され、システムが画面を「見て」何をクリックするか判断。
適用場面:人間がコンピューターの前に座ってできることすべて。最も強力な層。 失敗時:失敗しない。ただし最も遅く最もコストの高いオプションなので、最終手段であるべき。
代替案:Browserbase — 仮想ディスプレイをローカルで管理したくないチーム向けに、DuDuClawはL5のクラウドブラウザ代替案としてBrowserbaseをサポートします。ブラウザはBrowserbaseのインフラ上で動作し、DuDuClawはAPI経由でコマンドを送信します。能力は同一で、ローカルのリソースコストはゼロです(ただしBrowserbaseアカウントが必要)。
ルーティング判断
Section titled “ルーティング判断”ルーターは常にL1から開始するわけではありません。タスクとターゲットに基づき、適切な層に直接スキップすることがあります:
既知のAPIエンドポイント? --> L1から開始既知の静的サイト? --> L2から開始既知のSPA? --> L3から開始認証が必要? --> L4から開始視覚タスクが必要? --> L5から開始不明? --> L1から開始、必要に応じてフォールスルーセキュリティ:デフォルト拒否
Section titled “セキュリティ:デフォルト拒否”ブラウザ自動化は強力——そして危険です。無制限のブラウザアクセスを持つエージェントは:
- 悪意のあるサイトにアクセス
- マルウェアをダウンロード
- Webフォーム経由でデータを流出
- 任意のJavaScriptを実行
する可能性があります。
これを防ぐため、DuDuClawはデフォルト拒否のケイパビリティモデルを使用:
エージェントの設定: [capabilities] computer_use = false # L5はデフォルト無効 browser_via_bash = false # シェル経由のL3/L4は無効 allowed_tools = [...] # 許可ツールのホワイトリスト denied_tools = [...] # 禁止ツールのブラックリストL2以降の各層は、エージェントの設定で明示的な承認が必要です。ブラウザ能力を特に付与されていないエージェントは、API呼び出しと静的スクレイピングのみ使用可能。
リソース比較
Section titled “リソース比較”| 層 | 起動時間 | メモリ | ネットワーク | セキュリティリスク |
|---|---|---|---|---|
| L1:API Fetch | ~0ms | ~1 MB | 単一HTTPリクエスト | 最小 |
| L2:Static Scrape | ~0ms | ~5 MB | 単一HTTPリクエスト | 低 |
| L3:Headless Browser | ~2s | ~200 MB | 複数リクエスト | 中 |
| L4:Sandbox Browser | ~5s | ~300 MB | 制御下 | 低(隔離) |
| L5:Computer Use | ~10s | ~500 MB+ | フルブラウザ | 中(隔離) |
L1とL5の差はリソース消費で約500倍。L1で済むタスクにL5を使うのは、手紙を取りにトラックを運転するようなものです。
複雑さに比例したコスト
Section titled “複雑さに比例したコスト”すべてのWebタスクが完了に必要な最小リソースを受けます。単純なデータ取得(ケースの95%)はほぼゼロのリソースを消費。真に複雑なタスク(ログイン、視覚的インタラクション)だけが重い層をトリガーします。
最小化によるセキュリティ
Section titled “最小化によるセキュリティ”株価チェックだけが必要なエージェントはブラウザアクセスを得ません。最小権限の原則がケイパビリティシステムを通じて自動的に実施されます。
グレースフルデグラデーション
Section titled “グレースフルデグラデーション”上位層が失敗した場合(コンテナサービス利用不可、ブラウザエンジンクラッシュ)、完全に失敗するのではなく、機能を制限した下位層にフォールバックできることが多い。
他システムとの連携
Section titled “他システムとの連携”- コンテナサンドボックス:L4はエージェントタスク実行を隔離する同じコンテナインフラを使用。
- セキュリティフック:bashゲートキーパーが広範なセキュリティ防御システムと統合。
- エージェント設定:各エージェントのブラウザ能力は全体的な能力プロファイルの一部。
- 監査ログ:すべてのブラウザ自動化アクションがコンプライアンスのために記録。
5層ブラウザルーターはシンプルな原則を体現しています:額縁を掛けるのにスレッジハンマーは使わない。ツールをタスクの複雑さに自動的にマッチさせることで、リソース使用を最小化し、セキュリティ露出を減らし、ほとんどのWebインタラクションを高速・低コストに保ちます。