
Sora Fujimoto
AI Solutions Architect

AIエージェントがウェブをあなたの代わりにブラウズするとき、CAPTCHAが最大の障壁となります。保護されたページがエージェントをブロックし、フォームが送信を拒否し、タスクが人間の介入を待って停止します。
Hermes Agent by Nous Researchは、自己改善型のAIエージェントで、$5のVPSからGPUクラスタまでどこでも動作し、Telegram、Discord、Slack、WhatsApp、Signal、メールなど、あなたがすでに使っているすべてのチャネルを通じてアクセスできます。また、ブラウザを操作してページをナビゲートし、ボタンをクリックし、フォームを埋め、データを抽出することも可能です。しかし、他のブラウザ駆動型エージェントと同じように、CAPTCHAで詰まってしまいます。
CapSolverはこれを完全に変えることができます。Hermesが接続するブラウザにCapSolverのChrome拡張機能をロードすることで、CAPTCHAは自動的かつ不可視に背景で解決されます。コードは必要ありません。あなたの側でのAPIコールも必要ありません。プロンプトエンジニアリングのトリックも必要ありません。
最も良い点は、エージェントにCAPTCHAについて言及する必要がないということです。ただ「送信する前に少し待って」と指示するだけで、エージェントが「送信」をクリックする頃にはすでにCAPTCHAは解決されています。
Hermes Agentは、Nous Researchによって作成されたオープンソースの自律型AIエージェントです。3つの原則に基づいて設計されています:永続的なメモリ(セッション間であなたやプロジェクトを記憶)、自律的なスキル作成(経験から手順を学び、次回に再実行)、インフラの柔軟性(小さなVPS、Dockerコンテナ、サーバーレスサンドボックス、または自分のGPUボックスで動作)。

hermes modelで切り替え可能Hermesは実際のChromiumブラウザを駆動して作業を行います—ナビゲート、DOMを読み取る、クリック、タイプ、スクリーンショット、スクレイピング。そのブラウザツールレイヤーは特定の点で異なります:単一のバックエンドに強制するのではなく、Hermesは5つの交換可能なブラウザプロバイダーをサポートしています。
| プロバイダー | タイプ | 拡張機能? |
|---|---|---|
| Browserbase | クラウド | ✗ |
| Browser Use | クラウド | ✗ |
| Firecrawl | クラウド | ✗ |
| Camoufox | ローカル(Firefoxステルス) | ✗ |
| CDPアタッチ | ローカル(任意のChromium) | ✓ |
クラウドプロバイダーは拡張機能をロードできません—リモートブラウザを制御できません。CamoufoxはFirefoxベースで、Chrome MV3拡張機能を実行できません。クリーンな統合ポイントは5番目:CDPアタッチで、Hermesはあなたが別途起動したChromiumに接続します。ここにCapSolverが統合されます。
これはOpenClaw(独自のChromiumを起動し、browser.extensions配列を受け入れる)やCrawlee(Playwright起動フラグを制御)とは異なるモデルです。Hermesでは、拡張機能が事前にロードされたChromeを自分で用意し、DevToolsプロトコル経由でHermesに接続します。
CapSolverは、現代のCAPTCHAチャレンジを回避するためのAI駆動のソリューションを提供するリーディングなCAPTCHA解決サービスです。すべての主要なCAPTCHAタイプをサポートし、高速な応答時間を提供し、自動ワークフローにシームレスに統合されます—ブラウザをPlaywright経由で駆動する場合、APIを直接呼び出す場合、またはこのガイドで示すように、エージェントのブラウザセッション内でChrome拡張機能を実行する場合です。
ほとんどのCAPTCHA解決の統合では、コードを書く必要があります—APIコールを作成し、結果をポーリングし、隠しフォームフィールドにトークンをインジェクトします。これはCrawlee、Puppeteer、またはPlaywrightなどのツールで行われます。
Hermes + CapSolverは根本的に異なります:
| 伝統的(コードベース) | Hermes(自然言語) |
|---|---|
CapSolverServiceクラスを書く |
--load-extension=...でChromeを一度起動 |
createTask() / getTaskResult()を呼び出す |
エージェントに話しかけるだけ |
page.$eval()でトークンをインジェクト |
拡張機能がすべてを処理 |
| コードでエラー、リトライ、タイムアウトを処理 | 「60秒待ってから送信」と指示する |
| 各CAPTCHAタイプごとに異なるコード | すべてのタイプで自動的に動作 |
重要な洞察:CapSolver Chrome拡張機能はアタッチされたブラウザで実行されます。HermesはCDP経由でそのブラウザに接続し、通常通り操作します。エージェントがCAPTCHAのあるページに移動すると、拡張機能—同じChromeで動作し、エージェントには完全に見えない—がウィジェットを検出し、CapSolver APIを呼び出し、ページに解決トークンをインジェクトします。エージェントが「送信」をクリックする頃には、フォームにはすでに有効なトークンが含まれています。
ただ時間を与えるだけで良いのです。 エージェントに「CAPTCHAを解決」と指示する代わりに、単に以下のように指示すれば良いのです:
「そのページに移動し、60秒待ってから送信してください。」
それだけです。エージェントはCapSolverが存在することを知る必要はありません。
統合を設定する前に、以下のものを確認してください:
Google Chrome 137+(2025年中盤リリース)は、ブランド付きビルドで
--load-extensionのサポートを静かに削除しました。 これは、標準的なGoogle Chromeで自動化セッションでChrome拡張機能をロードできなくなったことを意味します。エラーは発生しません—このフラグは単に無視されます。
これはGoogle ChromeとMicrosoft Edgeに影響します。あなたは以下の代替手段を使用する必要があります:
| ブラウザ | 拡張機能のロード | 推奨? |
|---|---|---|
| Google Chrome 137+ | サポートされていない | No |
| Microsoft Edge | サポートされていない | No |
| Chrome for Testing | サポートされている | Yes |
| Chromium(スタンドアロン) | サポートされている | Yes |
| PlaywrightのバンドルChromium | サポートされている | Yes |
Chrome for Testingのインストール方法:
# オプション1:Playwright経由(推奨—Hermesは内部でPlaywrightを使用しています)
npx playwright install chromium
# バイナリのパスは以下のようになります:
# ~/.cache/ms-playwright/chromium-XXXX/chrome-linux64/chrome (Linux)
# ~/Library/Caches/ms-playwright/chromium-XXXX/chrome-mac/Chromium.app/Contents/MacOS/Chromium (macOS)
# オプション2:Chrome for Testingの直接ダウンロード
# 以下のURLにアクセスしてください:https://googlechromelabs.github.io/chrome-for-testing/
# ご使用のOSに一致するバージョンをダウンロードしてください
インストール後、バイナリのフルパスを記録してください—次のステップで必要になります。
統合には2つの要素が連携して動作します:
9222)でCDPが公開されます。config.yamlの小さな変更:それ自体のブラウザを起動する代わりに、このCDPポートに接続するように指示します。これだけで—コードも、Hermesのパッチも必要ありません。
CapSolver Chrome拡張機能をダウンロードし、安定した場所に抽出してください:
CapSolver.Browser.Extension-chrome-vX.X.X.zipをダウンロードmkdir -p ~/.hermes/capsolver-extension
unzip CapSolver.Browser.Extension-chrome-v*.zip -d ~/.hermes/capsolver-extension/
ls ~/.hermes/capsolver-extension/manifest.json
manifest.jsonが表示されるはずです—これにより拡張機能が正しい場所にあることが確認されます。
パスに関するヒント:後でChromeに
--load-extension=...を渡す際には、絶対パス(~ではなく)を使用してください。一部のChrome MV3ビルドでは、カスタムユーザーデータディレクトリのシンボリックリンク下で拡張機能のサービスワーカーが登録に失敗する場合があります。別の場所からシンボリックリンクしている場合、readlink -fで実際のパスを解決し、それを使いましょう。
拡張機能の設定ファイル~/.hermes/capsolver-extension/assets/config.jsを開き、apiKeyの値を自分のものに置き換えてください:
export const defaultConfig = {
apiKey: 'CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // ← ここにあなたのキーを入力
useCapsolver: true,
enabledForRecaptcha: true,
enabledForRecaptchaV3: true,
// ... 他の設定
};
あなたのAPIキーはCapSolverダッシュボードから取得できます。
これは重要なステップです。Hermesとは別に、3つの重要なフラグを含むChromeを一度だけ起動します:
--remote-debugging-port=9222 — DevToolsプロトコルを公開し、Hermesが接続できるようにします--load-extension=... — CapSolver拡張機能を事前にロード--user-data-dir=... — ユーザープロファイルを専用に使用し、あなたの個人的なChromeと衝突しないようにしますHermesには--user-data-dirの既定値があります:~/.hermes/chrome-debug。このパスを使用すると、Hermesのインアプリ/browser connectコマンドも追加のフラグなしで動作します。
/path/to/chrome-for-testing/chrome \
--remote-debugging-port=9222 \
--remote-debugging-address=127.0.0.1 \
--user-data-dir="$HOME/.hermes/chrome-debug" \
--load-extension="$HOME/.hermes/capsolver-extension" \
--disable-extensions-except="$HOME/.hermes/capsolver-extension" \
--no-first-run \
--no-default-browser-check \
--no-sandbox
/path/to/chrome-for-testing/chromeを実際のバイナリに置き換えてください。例えば~/.cache/ms-playwright/chromium-1200/chrome-linux64/chrome。
ヘッドレスサーバー:Linuxサーバーで物理的なディスプレイがない場合(VPS、EC2など)、以下のベストプラクティスセクションで
Xvfbの設定を参照してください。Chrome拡張機能サブシステムはディスプレイコンテキストが必要です。
一度のテストランよりも長く動作する設定の場合、起動を小さなシェルスクリプトでラップして、Chromeをバックグラウンドで動作させ、クリーンに再起動し、任意のプロセスマネージャー(systemd、supervisor、runit、OpenRC、Dockerなど)で監視できます。
~/.hermes/chrome-debug.shとして保存し、chmod +xを実行してください:
#!/usr/bin/env bash
# ~/.hermes/chrome-debug.sh
# CapSolver付きのChrome-for-Testingを起動し、
# CDPを127.0.0.1:9222で公開します。
CHROME_BIN="$HOME/.cache/ms-playwright/chromium-1200/chrome-linux64/chrome"
EXT_DIR="$HOME/.hermes/capsolver-extension"
USER_DATA_DIR="$HOME/.hermes/chrome-debug"
export DISPLAY=:99 # ヘッドレスLinux用 — ベストプラクティスを参照
exec "$CHROME_BIN" \
--remote-debugging-port=9222 \
--remote-debugging-address=127.0.0.1 \
--user-data-dir="$USER_DATA_DIR" \
--load-extension="$EXT_DIR" \
--disable-extensions-except="$EXT_DIR" \
--no-first-run \
--no-default-browser-check \
--no-sandbox \
--disable-dev-shm-usage \
--disable-features=Translate
最も単純な永続的な起動は以下の通りです:
nohup ~/.hermes/chrome-debug.sh > /tmp/chrome-debug.log 2>&1 &
プロダクション環境では、任意のプロセスマネージャーでスクリプトを監視してください。最小限のsystemdユニットを~/.config/systemd/user/chrome-debug.serviceに:
[Unit]
Description=CapSolver対応のChrome for Hermes Agent
After=network.target
[Service]
ExecStart=%h/.hermes/chrome-debug.sh
Restart=always
RestartSec=5
[Install]
WantedBy=default.target
その後:
systemctl --user daemon-reload
systemctl --user enable --now chrome-debug
同等の設定(supervisordプログラム、runitサービス、Dockerコンテナなど)は同様に動作します—統合は何かしらがchrome-debug.shを動作させていることを気にしません。
~/.hermes/config.yamlのHermes設定を編集してください。browser:セクション(通常はinactivity_timeoutのみ)を見つけ、cdp_urlを追加してください:
browser:
inactivity_timeout: 120
cdp_url: http://127.0.0.1:9222
この1行は、Hermesのbrowser_cdpツールに、ステップ3で起動したChromeインスタンスを通じてすべてのブラウザ操作をルーティングするように指示します。
逆転可能:これはHermes自体への唯一の変更です。元に戻すには
cdp_urlの行を削除してください。Hermesは以前のデフォルトブラウザプロバイダー(Browserbase、Browser Useなど)に戻り、他の影響はありません。
Hermesがすでに動作している場合、新しいcdp_urlを読み込むために再起動してください:
# 通常の実行(フォアグラウンドまたはあなたのスーパーバイザー経由):
hermes gateway run
# または、Hermesを監視している任意のプロセスマネージャー経由で再起動—
# 必要なのは新しい環境/設定が有効になることです。
Hermesには統合のすべての部分を一度にチェックする組み込みの診断コマンドが付属しています:
hermes doctor
以下のようなシグナルを探してください:
◆ ツールの利用可能性
✓ browser-cdp ← CDPアタッチが動作中
✓ browser
...
◆ API接続性
OpenRouter APIの確認中... ✓ OpenRouter API
browser-cdpがツールの利用可能性に表示されていれば、HermesはCDPエンドポイントを検出しており、統合は正しく接続されています。表示されていない場合は、Hermesは静かにツールを無効にします(エラーは発生しません)—これが診断のポイントです。
直接Chromeがアクセス可能か確認することもできます:
curl -s http://127.0.0.1:9222/json/version
CDPが動作していることを確認するレスポンスは次のようになります:
{
"Browser": "Chrome/<あなたのバージョン>",
"Protocol-Version": "1.3",
"webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/..."
}
CapSolverサービスワーカーの可視性について: Chrome MV3サービスワーカーは積極的にアイドル状態になります。最近のChromeビルドでは、/json/listエンドポイントが実行中のサービスワーカーを完全に省略する場合があります。/json/listに表示されないことは診断的ではありません。CapSolverが動作していることを確認するには、エージェントを通じて実際のreCAPTCHAページを読み込み、ページ内のウィジェットの結果を観察してください。ターゲットリストをポーリングしないでください。
これは最も重要なセクションです。設定が完了したら、HermesとCapSolverの使用は非常に簡単です。
エージェントにCAPTCHAまたはCapSolverについて言及しないでください。 フォームの送信前に時間を与えるだけでよいです。
エージェントはCAPTCHAについて知る必要はありません。拡張機能が背景ですべてを処理します。必要なのは、拡張機能がチャレンジを解決する時間があるよう、指示に待機時間を含めることだけです。
Hermesの1回限りモード(hermes -z "...")は統合テストに最適です。hermes CLIが利用可能な任意のターミナルで実行してください:
hermes -z 'https://www.google.com/recaptcha/api2/demoを開き、ページが完全にレンダリングされるまで60秒待機してください。次に「Send!」ラベルまたはID「recaptcha-demo-submit」のボタンをクリックしてください。クリック後、5秒待ってページに表示されているテキストを教えてください。' --yolo
裏で何が起こっているか:
g-recaptcha-responseフォームフィールドに挿入されますこの"Verification Success... Hooray!"という文字列はGoogle独自の確認メッセージであり、フォームに有効なreCAPTCHAトークンが送信された場合にのみ表示されます。
Hermesゲートウェイに接続されている任意のチャネル(Telegram、Discord、Slackなど)から送信してください:
https://example.com/loginにアクセスし、メールフィールドに"me@example.com"、パスワードフィールドに"mypassword123"を入力してください。その後30秒待って「Sign In」ボタンをクリックしてください。サインイン後のページは何ですか?
Hermesはリクエストをエージェントにルーティングし、同じChromeに接続し、フォームを入力し、ログインページのCAPTCHAを解決する時間を与え、サインインをクリックし、サインイン後のページの内容を返します。この間、CAPTCHAについて一度も言及する必要はありません。
https://example.com/contactを開き、連絡フォームを入力してください:
- 名前: "John Doe"
- メール: "john@example.com"
- メッセージ: "こんにちは、サービスについて質問があります。"
45秒待って「Send Message」をクリックしてください。ページに表示される確認メッセージは何ですか?
| CAPTCHAタイプ | 通常の解決時間 | 推奨される待機時間 |
|---|---|---|
| reCAPTCHA v2(チェックボックス) | 5–15秒 | 30–60秒 |
| reCAPTCHA v2(非表示) | 5–15秒 | 30秒 |
| reCAPTCHA v3 | 3–10秒 | 20–30秒 |
| AWS WAF CAPTCHA | 5–15秒 | 30秒 |
ヒント: 疑問がある場合は60秒を使用してください。早すぎるよりも少し長く待つほうが良いです。余分な待機時間は基本的に無料です。CapSolverの料金は解決ごとで計算され、秒ごとではありません。
Hermesの任意のチャネルで使用できる検証済みの表現:
これらの表現を避けてください。エージェントを混乱させ、一部のセキュリティチューニングされたモデル(特にGLMシリーズ)で拒否を引き起こす可能性があります:
技術的に興味のある方のために、アーキテクチャを以下に示します:
あなたのメッセージ Hermesゲートウェイ
──────────────────────────────────────────────────────────
"ページにアクセスし、 ──► Hermesエージェントがメッセージを受け取る
60秒待って送信" │
▼
browser_cdp / browserツール
│ (WebSocket経由でws://127.0.0.1:9222に接続)
▼
┌────────────────────────────────────┐
│ chrome-debug Chromium(背景)│
│ │
│ ┌───────────────────────────────┐ │
│ │ CapSolver MV3拡張機能 │ │
│ │ (--load-extensionでロード; │ │
│ │ Chromeテスト用またはChromium—ブラウザ Chrome │ │
│ │ 137+はこのフラグを無視します) │ │
│ │ │ │
│ │ 1. コンテンツスクリプトがCAPTCHAを検出 │
│ │ 2. サービスワーカーがCapSolver APIを呼び出す │
│ │ 3. トークンを受信 │ │
│ │ 4. トークンをフォームフィールドに挿入 │ │
│ └───────────────────────────────┘ │
└────────────────────────────────────┘
│
▼
Hermesエージェントが60秒待機...
│
▼
browser_cdp: 送信ボタンをクリック
│
▼
有効なトークンを含むフォームが送信されます
│
▼
送信後の確認ページ
Hermesのブラウザツールレイヤーは、5つの交換可能なプロバイダー(Browserbase、Browser Use、Firecrawl、Camoufox、headless Chromium)に基づいて構築されています。そのうち3つはクラウド—あなたはブラウザバイナリを制御できないため、--load-extensionフラグを置く場所がありません。1つ(Camoufox)はFirefoxベースです。5つ目の—CDP接続—は、ユーザー制御のChromiumを接続できる唯一のセームです。
トレードオフは非常に良いものです: Hermesはデフォルトでクラウドに移行可能ですが、ブラウザ側のスーパーパワー(CapSolver、独自の広告ブロッカー、カスタムMV3ツール、永続的なクッキーなど)が必要な場合、Chromeを自分で起動し、Hermesに接続させます。1行の構成ファイル。完全なコントロール。
--load-extensionが実際に何をするのかChromeが--load-extension=/path/to/extensionで起動すると、そのディレクトリを展開済み拡張機能として扱います—Chromeの開発者モードで使用されるメカニズムと同じです。拡張機能のマニフェスト、コンテンツスクリプト、サービスワーカーは、Chromeウェブストアからインストールした場合とまったく同じように登録されます。サンドボックスの違いやAPIアクセスの低下はなく、完全に特権を持つ拡張機能です。
その後、CapSolver拡張機能が残りの処理を行います:
assets/config.jsから取得したキーを使用してCapSolver APIに認証し、チャレンジの詳細を送信し、トークンをポーリングします。Hermesエージェントは完全に無関与です—正常なページを見ているだけです。あなたが指定した時間だけ待って送信します。ページには単に有効なトークンが含まれているだけです。
環境の注意: Chromeのフラグで
--disable-background-networkingを避けてください。これにより、CapSolverサービスワーカーの出力XHR/fetchがブロックされ、拡張機能がCapSolver APIにアクセスできなくなります。ステップ3のレシピでは意図的にこのフラグを省略しています。
~/.hermes/config.yaml必要な変更はbrowser:ブロックにcdp_urlを追加することのみです:
browser:
inactivity_timeout: 120
cdp_url: http://127.0.0.1:9222
--load-extension引数Chromeに渡すべき完全なフラグ一覧:
| フラグ | 目的 |
|---|---|
--remote-debugging-port=9222 |
CDPをTCPポート9222で公開(Hermesが接続するため必須) |
--remote-debugging-address=127.0.0.1 |
CDPをローカルのみにバインド(セキュリティ—CDPを公開しないでください) |
--user-data-dir=$HOME/.hermes/chrome-debug |
お使いの個人用Chromeと衝突しない専用プロファイル |
--load-extension=/abs/path/to/capsolver-extension |
実際の拡張機能をロード |
--disable-extensions-except=/abs/path/to/capsolver-extension |
二重の保険—この拡張機能のみロード |
--no-first-run --no-default-browser-check |
Chromeのセットアップウィザードをスキップ |
--no-sandbox |
Chromeのサンドボックスを無効化。Chromiumドキュメントでは「テスト用のみ」とされていますが、ユーザー名空間/SYS_ADMINの権限が不足しているヘッドレスLinux/Docker環境での標準的なワークアラウンドです。 |
--disable-dev-shm-usage |
コンテナでの/dev/shmの問題を回避 |
assets/config.js~/.hermes/capsolver-extension/assets/config.jsにある最小限の構成:
export const defaultConfig = {
apiKey: 'CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
useCapsolver: true,
enabledForRecaptcha: true,
enabledForRecaptchaV3: true,
// ... CapSolverドキュメントの全トグルを参照
};
hermes doctorがTool Availabilityにbrowser-cdpを表示しない症状: Hermesを再起動した後、hermes doctorの出力にbrowser-cdpツールが表示されません。
原因: HermesはCDPエンドポイントが構成されている場合にのみbrowser-cdpを登録します—config.yamlのbrowser.cdp_url、BROWSER_CDP_URL環境変数、またはアクティブな/browser connectセッション。チェックは構成の存在に基づいており、到達可能性ではありません(tools/browser_cdp_tool.py:_browser_cdp_checkを参照)。最も一般的な原因は、config.yamlにキーが誤ってネストされていること、または誤ってタイプミスしていることです。Chromeが到達不能なことはほとんどありません。
修正:
# 1. キーが"browser:"の下に正しくネストされていることを確認(トップレベルではない)
grep -A2 '^browser:' ~/.hermes/config.yaml
# 期待される出力:
# browser:
# ...
# cdp_url: http://127.0.0.1:9222
# 2. その後、そのエンドポイントでChromeが実際に起動しているか確認
curl -s http://127.0.0.1:9222/json/version
# 3. Chromeが起動していない場合、chrome-debugログを確認:
tail -n 30 /tmp/chrome-debug.log # または: journalctl --user -u chrome-debug -n 30
症状: Chromeはクリーンに起動するが、CAPTCHAは解決されず、すべての送信が失敗する。
原因: ブランド版Google Chrome 137+を使用しており、--load-extensionが無視されている。
修正: Chrome for TestingまたはChromiumに切り替えてください。バイナリを確認してください:
/path/to/your/chrome --version
# Chrome for Testing: "Chromium 143.0.7499.4"
# ブランド版Chrome: "Google Chrome 143.0.7499.109" ←動作しません
可能性のある原因:
--disable-background-networkingが含まれていないか確認してください(拡張機能の出力API呼び出しをブロックします)症状: ヘルメスを再起動した後の最初のブラウザアクションがタイムアウトしますが、以降のアクションは正常に動作します。
原因: 冷却スタート時のCDPハンドシェイクが、Hermesのデフォルトツールタイムアウトを偶発的に超えることがあります。以降のアクションはウォームなWebSocketを使用し、高速です。
修正: コマンドを1回再実行してください。解決しない場合は、config.yamlのbrowser.inactivity_timeoutを増やしてください。
症状: 1つのChromeバージョンから別のバージョンに切り替えた後、Chromeがディスクキャッシュエラーでクラッシュします。
原因: 以前のChromeバージョンで作成されたuser-data-dirが現在のバージョンと互換性がないためです。
修正:
# 1. 現在のchrome-debugプロセスを停止(お使いの監視方法で)
pkill -f "remote-debugging-port=9222"
# 2. 古いプロファイルを削除
rm -rf ~/.hermes/chrome-debug
# 3. chrome-debugを再起動(プロセスマネージャーで、またはスクリプトを再実行)
nohup ~/.hermes/chrome-debug.sh > /tmp/chrome-debug.log 2>&1 &
/json/listに表示されない症状: curl http://127.0.0.1:9222/json/listがpageエントリのみを返し、service_workerが表示されない。
原因: Chrome MV3サービスワーカーは積極的にアイドル状態になり、最近のChromeビルドでは/json/listエンドポイントが実行中のサービスワーカーを完全に表示しない場合があります。
修正: これは診断的ではありません。CapSolverがロードされていることを確認するには、実際のreCAPTCHA保護ページ(例: https://www.google.com/recaptcha/api2/demo)にエージェントをナビゲートし、フォーム送信が成功するかを確認してください。送信が成功したことは、拡張機能がロードされ、チャレンジを解決している証拠です。ターゲットリストエントリが表示されないことは失敗のシグナルではありません。
より長い待機時間は常に安全です。CAPTCHAは通常5〜20秒で解決されますが、ネットワーク遅延、複雑なチャレンジ、またはリトライにより時間がかかります。30〜60秒が最適な範囲です。
以下のようにしないでください:
"URLに移動し、CAPTCHAソルバーを待ってから送信"
以下のようにしてください:
"URLに移動し、約1分待ってからフォームを送信"
自然な表現はエージェントとより良く機能し、セーフティチューニングされたモデルとより良い互換性があります。CAPTCHAの周囲で敵対的な表現が一部のGLMクラスモデルで拒否を引き起こすことが観測されています。
各CAPTCHAの解決にはクレジットが使われます。中断を避けるために、capsolver.com/dashboardで定期的に残高を確認してください。
--user-data-dirを実際のChromeプロファイルに指定しないでください。代わりに~/.hermes/chrome-debugを使用してください(Hermesの組み込み/browser connectもデフォルトでこの場所をターゲットにしています)。これにより、エージェントのブラウザが個人のブラウジングから完全に隔離されます。
--remote-debugging-address=127.0.0.1は本番環境では必須です。Chrome DevTools Protocolは、ポートにアクセスできる誰でもブラウザを完全に制御できます。9222ポートをパブリックネットワークに公開しないでください。
Xvfbを使用するChrome拡張機能は、ブラウザを表示したくても表示コンテキストを必要とします。物理的なディスプレイのないLinuxサーバーで、仮想ディスプレイを起動してください:
# Xvfbのインストール(Ubuntu/Debian)
sudo apt-get install xvfb
# 仮想ディスプレイの起動
Xvfb :99 -screen 0 1920x1080x24 &
# Chromeに使用するように設定(上記のchrome-debug.shランチャーは既にDISPLAY=:99をエクスポートしています)
export DISPLAY=:99
chrome-debug.shランチャーを使用している場合、上記のexport DISPLAY=:99はすでに実行されています。ホストでXvfb :99が動作していることを確認してください。
単なるchrome &は、親シェルが終了したとき、Chromeがクラッシュしたとき、またはボックスが再起動したときに終了します。chrome-debug.sh(ステップ3)でラップし、既存のスタックで実行しているプロセスマネージャー(systemd、supervisord、runit、Dockerなど)で監視してください。統合はプロセスマネージャーに依存せず、ホストで既に動作しているものを選択してください。
モデルはCAPTCHAを一度も見ることなく、拡張機能が非表示で解決するため、CAPTCHAが多い作業には最先端のモデルは必要ありません。安価でツール対応のモデルで十分です(例: config.yamlでprovider: openrouterとdefault: z-ai/glm-4.6を設定)。すべてのスマート機能は拡張機能にあり、モデルはナビゲート、タイプ、クリックのみが必要です。
このHermes統合を支える同じCapSolverインフラは、生産環境のオートメーションパイプラインでreCAPTCHA v2/v3、Cloudflare Turnstile、AWS WAFチャレンジを処理しています。これは一時的なワークアラウンドではなく、チームが大規模なスクリーピングとQAオートメーションにすでに運用している解決層です。
Hermes + CapSolverの統合は、エージェントワークフローにおけるCAPTCHA解決の根本的な新しいアプローチを表しています。CAPTCHAを検出するコードを記述し、APIを呼び出し、トークンをインジェクトするのではなく、単に:
--load-extension=/abs/path/to/capsolver-extensionと--remote-debugging-port=9222でChromeを一度起動~/.hermes/config.yamlのbrowser:ブロックにcdp_urlを追加:
browser:
cdp_url: http://127.0.0.1:9222
cdp_urlは無視されます)CapSolver Chrome拡張機能が残りの処理を担当します — CAPTCHAの検出、CapSolver APIを通じた解決、ページへのトークンのインジェクト。エージェントはCAPTCHAについて一切知らなくても良いです。
これは自律的なAIエージェントでCAPTCHA解決がどのように見えるかです: 目に見えず、自動的で、コードなし。
準備はできましたか? CapSolverに登録し、初回チャージでボーナスコード**
herme**を使用してください!

いいえ。 実際には、メッセージでCAPTCHAやCapSolverについて言及しないでください。拡張機能はバックグラウンドで非表示で動作します。CAPTCHAがページに表示された場合に解決する時間を確保するために、指示に待機時間を含めてください(例: 「60秒待ってから送信」)。
Google Chrome 137+(2025年中盤リリース)では、ブランドビルドで--load-extensionコマンドラインフラグが削除されました。これは自動化されたセッションでChrome拡張機能をロードできなくなったことを意味します。--load-extensionをサポートしているChrome for TestingまたはスタンドアロンのChromiumを使用する必要があります。
いいえ — クラウドプロバイダーは他の人のインフラでブラウザを実行するため、セッションに任意の拡張機能をロードすることはできません。このガイドのCDPアタッチパターンがHermesとChrome拡張機能を組み合わせる唯一の方法です。(config.yamlでbrowser.cdp_urlが設定されると、HermesはローカルChromeを通じてブラウザトラフィックをルーティングし、クラウドプロバイダーはその行を削除するまで無効になります。)
はい — --load-extensionをサポートしている任意のChromiumベースのブラウザが動作します。使用可能なのは:
npx playwright installを実行したことがある場合、すでにホストにあります)統合のレシピは同じです: お好みのバイナリに--remote-debugging-port=9222 --load-extension=/path/to/capsolver-extensionを指定してください。
動作しないもの:
--load-extensionを無視しますはい — CamoufoxはHermesの5つの組み込みブラウザプロバイダーの1つであり、Chrome拡張機能を必要としないタスクに最適なステルスFirefoxオプションです。ただし、CamoufoxはFirefoxベースで、CapSolverブラウザ拡張機能はChrome MV3形式で構築されているため、1つのセッションで同時に動作することはできません。
良いニュース: Hermesでは、永続的に選択する必要はありません。~/.hermes/config.yamlのbrowser.cdp_url設定は単一のスイッチです — CAPTCHA解決が必要なときにCapSolver対応のChromeに、Firefoxステルスが必要なときにCamoufoxにポイントします。通常の設定では両方を実行しています:
# 有効な行: 設定をコメント/アンコメントしてプロファイルを切り替え
browser:
cdp_url: http://127.0.0.1:9222 # CapSolver Chrome(このガイド)
# cdp_url: http://127.0.0.1:9333 # Camoufoxエンドポイント
Hermesを再起動(hermes gateway run、またはホストでゲートウェイを再起動する仕組みを介して)すると、数秒で切り替えが適用されます。同じHermes、同じチャネル、同じスキル — 作業ごとに異なるブラウザ。
/browser connectコマンドはこの設定と動作しますか?はい。Hermesの組み込み/browser connectスラッシュコマンド(インタラクティブなhermes TUI内)は、使用したデフォルトのユーザーデータディレクトリ(~/.hermes/chrome-debug)と同じポート(9222)をターゲットにしています。chrome-debugサイドカーを設定すると、Hermes内で/browser connectをインタラクティブに使用できます。または、config.yamlのbrowser.cdp_urlを永続的に設定して、常に接続します — どちらも同じChromeに対して動作します。
統合はチャネルに依存しません。config.yamlでbrowser.cdp_urlが設定されると、CLIのhermes -z、インタラクティブなhermes TUI、またはTelegram、Discord、Slack、WhatsApp、Signal、メールからのメッセージから来るすべてのブラウザアクションが、CapSolver対応のChromeを通じてルーティングされます。拡張機能はすべてのケースで同じようにCAPTCHAを解決します。
デモページは素早くテストするためだけに使用してください。Googleの公式reCAPTCHA FAQでは、生産パイプラインで公開されたデモページに依存する代わりに、専用のテストサイトキーを作成することを推奨しています。
CapSolver Chrome拡張機能は、reCAPTCHA v2(チェックボックスおよび非表示)、reCAPTCHA v3、Cloudflare、AWS WAF CAPTCHA、および他の広く導入されているウィジェットを自動的に解決します。コンテンツスクリプトがページ上のCAPTCHAタイプを検出し、それに応じて解決します — あなたの側でタイプごとの設定は必要ありません。(注: Cloudflare TurnstileとCloudflare 5秒チャレンジはブラウザ拡張機能では解決されず、CapSolverのAPI経由でのみ利用可能で、このガイドの範囲外です。)
CapSolverはCAPTCHAの種類とボリュームに基づいて競争力のある料金を提供しています。現在の料金についてはcapsolver.comをご覧ください。
Hermesエージェントはオープンソース(github.com/NousResearch/hermes-agent)で、自分のハードウェアで無料で実行できます。AIモデルプロバイダーのAPIキー(OpenRouterが推奨 — Hermesは200以上のモデルをサポート)と、CAPTCHA解決用のCapSolverアカウントとクレジットが必要です。
ほとんどのCAPTCHAでは30〜60秒が十分です。実際の解決時間は通常5〜20秒ですが、余分なバッファを追加することで信頼性が向上します。心配な場合は60秒を使用してください。
はい。Chrome拡張機能は表示コンテキストを必要とするため、Xvfb(X仮想フレームバッファ)が必要です。ホストでXvfb :99 -screen 0 1920x1080x24 &を実行し、chrome-debug.shランチャーでDISPLAY=:99がエクスポートされていることを確認してください(ステップ3のランチャーはすでにこれを実行しています)。また、ほとんどのサーバーカーネルではChromeのサンドボックスが必要とする機能を許可しないため、Chromeの引数に--no-sandboxを含めてください。
技術的には可能ですが、タブ/セッションの競合を自分で管理する必要があります。ほとんどの作業では、1つのHermes ↔ 1つのchrome-debugが最もクリーンな設定です。真の並列処理が必要な場合、異なるポート(9222、9223、…)で複数のchrome-debugサイドカーを実行し、それぞれのHermesを自分のものにポイントしてください。
はい。Hermesスキルはプロシージャルメモリ — エージェントが学んだステップのシーケンスです。CAPTCHA保護されたサイトをブラウジングするスキルは、アドホックなメッセージと同じように、CapSolver統合から自動的に恩恵を受けます。スキル側の変更は必要ありません。