Webを操作するAIエージェントを作ったことがあれば、きっとこの壁にぶつかったはずです。開発環境では動いた自動化が、本番環境では失敗する。ページが読み込まれない。サイトにブロックされる。数秒で終わるはずのタスクが、数分もかかる。

原因はコードではありません。ブラウザです。

多くの自動化インフラは、DockerコンテナでヘッドレスChrome(画面を表示しないChrome)を動かしています。低コストでスケールでき、デプロイも簡単だからです。しかし、ヘッドレスブラウザには根本的な制約があり、本番環境ではそれが積み重なっていきます。順に見ていきましょう。


ヘッドレスの4つの問題

┌─────────────────────────────────────────────────────────────────┐
│                ヘッドレスブラウザが失敗する理由                 │
├────────────────┬────────────────┬───────────────┬───────────────┤
│                │                │               │               │
│     互換性     │      検出      │     性能      │    信頼性     │
│                │                │               │               │
│  GPUがないと   │  ボット対策に  │  起動待ちで   │  結果が       │
│  表示できない  │  遮断される    │  速度が落ちる │  安定しない   │
│                │                │               │               │
│  ┌──────────┐  │  ┌──────────┐  │  ┌──────────┐ │  ┌──────────┐ │
│  │  WebGL   │  │  │Cloudflare│  │  │コンテナの│ │  │ タスクA  │ │
│  │  Canvas  │  │  │PerimeterX│  │  │  起動に  │ │  │    ✓     │ │
│  │   動画   │  │  │ DataDome │  │  │100秒以上 │ │  │ タスクB  │ │
│  │  複雑な  │  │  │ Turnstile│  │  │  かかる  │ │  │    ✗     │ │
│  │    JS    │  │  │  CAPTCHA │  │  │          │ │  │ タスクC  │ │
│  └──────────┘  │  └──────────┘  │  └──────────┘ │  │    ?     │ │
│                │                │               │  └──────────┘ │
└────────────────┴────────────────┴───────────────┴───────────────┘

1. 互換性:そもそも動かないサイト

ヘッドレスブラウザは、リソースを節約するためにGPUレンダリングを省いています。しかし、最近のWebアプリはGPUレンダリングを前提に作られています。

本物のGPUレンダリングがないと動かないもの
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

銀行ポータル          ████████████████████  セキュリティ部品が動かない
                                      セッションの検証に失敗する

業務ダッシュボード       ██████████████████░░  グラフが表示されない
                                      複雑なUI部品がフリーズする

ECサイトの決済        █████████████████░░░  決済フォームが誤作動する
                                      商品の3D表示が動かない

WebGLアプリ        ████████████████████  まったく動かない
                                      汎用的なデータや空のデータを返す

動画配信サービス        ███████████████░░░░░  再生に問題が出る
                                      DRMの検証に失敗する

レガシー業務アプリ       ██████████████████░░  ActiveXやJavaのプラグイン
                                      特定のブラウザが必要

本物のブラウザは、GPUアクセラレーションを標準で備えています。実際のハードウェアの上で動くので、WebGL、Canvasフィンガープリント、ハードウェアアクセラレーションによるレンダリングがすべてそのまま動きます。小細工も偽装も必要ありません。お使いのブラウザで動くものは、WebRunでも動きます。


2. 検出:フィンガープリントで見破られる

ボット対策システムは、数百ものシグナルをチェックします。ヘッドレスブラウザは、その大半で引っかかります。

┌─────────────────────────────────────────────────────────────────┐
│                    フィンガープリントの比較                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   ヘッドレスブラウザ                  本物のブラウザ            │
│   ──────────────────                  ──────────────            │
│                                                                 │
│   navigator.webdriver: true     →     navigator.webdriver: false│
│   User-Agent: HeadlessChrome    →     User-Agent: Chrome/131... │
│   WebGL Vendor: ❌ 汎用         →     WebGL: ✓ NVIDIA/AMD/Intel │
│   Canvas Hash: ❌ 合成          →     Canvas: ✓ 固有で安定      │
│   GPU Queries: ❌ 実機なし      →     GPU: ✓ 本物のシグネチャ   │
│   Mouse Events: ❌ 機械的       →     Mouse: ✓ 自然な動き       │
│   Plugins: ❌ 空の配列          →     Plugins: ✓ 標準的な構成   │
│   Screen: ❌ 既定の800x600      →     Screen: ✓ 実際の解像度    │
│                                                                 │
│        ⚠️ ブロック                        ✓ 通過                │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

自動化だと見破られないためのステルスプラグインは、既知の特徴を書き換えてごまかしますが、検出システムの更新のほうが速いのが実情です。本物のブラウザには、ごまかすべき点がありません。はじめから本物だからです。


3. 性能:速さがものを言う

従来のブラウザ自動化は、設計上どうしても遅くなります。コールドスタート、コンテナのオーケストレーション、LLMだけに頼った判断が、あらゆるステップで遅延を生みます。

最初の操作までの時間
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

従来型        ████████████████████████████████████████  100秒以上
           └─ コンテナ → ブラウザ → ページ → LLM → 操作

WebRun     █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  1秒未満
           └─ 常に起動済みのブラウザ、CNNとLLMのハイブリッド


タスク完了までの時間
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

従来型        ████████████████████████████████████████  2〜5分
           └─ LLMを順番に呼び出し、失敗すれば再試行

WebRun     ████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░  約45秒
           └─ 100ミリ秒未満の判断と並列処理


1分あたりの操作数
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

従来型        ████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  15〜25

WebRun     ████████████████████████████████████████  60〜100
                                                     └─ 4倍

WebRunは、画像認識モデル(CNN)と言語モデル(LLM)を組み合わせたハイブリッド構成です。すばやい判断には画像認識モデルを、複雑な推論には言語モデルを使います。ほとんどの操作は、従来のシステムが最初のLLM呼び出しを終える前に完了します。


4. 信頼性:安定した結果

互換性の問題、検出によるブロック、性能の問題が重なると、どれだけ失敗するかが読めなくなります。

インフラ別のタスク完了率
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

(バーは左から順に:成功、一部成功、失敗)

ヘッドレス  ██████████████ ████████        ████████████
コンテナ   [    60%     ] [  15%  ]       [    25%    ]
                      ↑ タイムアウト
                                      ↑ ブロック、クラッシュ


本物の    ██████████████████████████████ ████        ██
ブラウザ   [         85%以上            ] [ 10%]      [5%]
                                      ↑ 想定外のケース
                                                  ↑ サイトのダウン


失敗の内訳(ヘッドレス)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ボット対策による遮断            ████████████████░░░░  失敗全体の40%
レンダリングの失敗             ██████████░░░░░░░░░░  失敗全体の25%
タイムアウト                ████████░░░░░░░░░░░░  失敗全体の20%
JavaScriptエラー         ██████░░░░░░░░░░░░░░  失敗全体の15%

本物のブラウザなら、このうち上の2つ(ボット対策による遮断とレンダリングの失敗)は完全になくなります。検出される要素も、レンダリングに失敗する原因もないからです。


アーキテクチャの違い

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│   従来のスタック                     WebRunのスタック           │
│                                                                 │
│   ┌───────────────────┐              ┌───────────────────┐      │
│   │   Docker          │              │  本物の           │      │
│   │   コンテナ        │              │  デスクトップ環境 │      │
│   │                   │              │                   │      │
│   │ ┌───────────────┐ │              │ ┌───────────────┐ │      │
│   │ │Headless Chrome│ │              │ │ 本物のChrome  │ │      │
│   │ │  (GPUなし)  │ │              │ │  (GPUあり)  │ │      │
│   │ └───────────────┘ │              │ └───────────────┘ │      │
│   │        +          │              │        +          │      │
│   │  ステルスパッチ   │              │   ネイティブAPI   │      │
│   │  プロキシ切り替え │              │   実機            │      │
│   │  LLM単独の判断    │              │   CNNとLLM        │      │
│   │  再試行ロジック   │              │   自動復旧        │      │
│   └───────────────────┘              └───────────────────┘      │
│                                                                 │
│   複雑 │ 壊れやすい │ 遅い          シンプル │ 安定 │ 高速      │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

比較の結果

.ヘッドレスコンテナ本物のブラウザ
互換性GPUに依存するサイトで失敗ハードウェアを完全にサポート
検出ボット対策システムにブロックされるすべてのフィンガープリントチェックを通過
性能コールドスタートに100秒以上、タスクに2〜5分1秒未満で起動、タスクは約45秒
信頼性完了率60〜70%完了率85%以上
メンテナンス絶えずパッチが必要パッチは不要

まとめ

ヘッドレスコンテナが失敗する理由は4つあり、しかも互いに重なり合います。GPUレンダリングがないとサイトが正しく動かないこと。ボット対策システムが自動化の特徴を見つけてブロックすること。コールドスタートで速度が落ちること。そして、それらが重なって結果が安定しないことです。

本物のブラウザは、この4つをアーキテクチャの段階で解決します。GPUアクセラレーションを標準で備えているので、サイトは正しく表示されます。フィンガープリントが本物なので、検出されるものがありません。インスタンスは常に起動済みなので、すぐに応答します。そして、すべてが想定どおりに動けば、信頼性は自然とついてきます。

Webは進化しました。次は、ブラウザのインフラが進化する番です。


違いを確かめてみませんか?app.webrun.aiから今すぐ始められます。無料トライアルあり、クレジットカードは不要です。