CAPSOLVER
ブログ
CrewAIのマルチエージェントワークフローでのCAPTCHAの解決方法

CrewAIのマルチエージェントワークフローでのキャプチャの解き方

Logo of CapSolver

Sora Fujimoto

AI Solutions Architect

28-Jul-2026

CrewAIは複数のAIエージェントを統合して複雑なタスク—研究、データ収集、コンテンツ作成、ワークフローの自動化—を実行します。CrewAIのエージェントがウェブ操作中にCAPTCHAチャレンジに遭遇すると、全体のマルチエージェントパイプラインが停止します。CapSolverのcapsolver-agentパッケージはCrewAIワークフローに直接統合され、エージェントがreCAPTCHA、Cloudflare Turnstile、その他の検証チャレンジを解く能力を提供し、コラボレーティブな実行フローを中断することなく運用できます。

TL;DR

  • CrewAIのマルチエージェントワークフローは、タスク中にCAPTCHAに遭遇したエージェントが存在する場合、停止します
  • CapSolverはCrewAIのカスタムツール登録システムと互換性のあるツールスキーマを提供します
  • capsolver-agentエクスキューターはCapSolverのAIサービスを通じて解決を処理し、構造化された結果を返します
  • reCAPTCHA v2/v3(エンタープライズを含む)とCloudflare Turnstileをサポートします
  • 約15行のコードでcreate_executor()とCrewAIの@toolデコレータを使用して統合できます

CrewAIエージェントがCAPTCHA解決を必要とする理由

CrewAIは、複数の能力を必要とするタスクに特化したAIエージェントのチームが協力できるようにします。典型的なクルーには、ウェブをブラウズする研究者エージェント、データを処理するアナリストエージェント、レポートを作成するライターエージェントが含まれます。研究者エージェントがターゲットサイトでCAPTCHAに遭遇すると、進行できません—CrewAIエージェントは出力を逐次的に渡すため、クルー全体のワークフローが停止します。

この問題はCrewAIでさらに深刻になります。複数のエージェントがウェブアクセスを必要とするためです。リードの拡充クルーには、会社データをスクレイピングするエージェントと、連絡先情報を検証するエージェントが含まれる可能性があり、両方とも同時に異なるサイトでCAPTCHAに遭遇します。解決メカニズムがない場合、生産用クルーは常に人間の監視を必要とし、自律的なマルチエージェントのオーケストレーションの目的を無効にします。

CapSolverの生産データによると、約30%のエージェントのウェブタスクが検証チャレンジに遭遇します。CrewAIクルーが10のウェブ依存タスクを実行する場合、1回の実行で3つの潜在的な停止ポイントがあり、自動解決がないと手動介入が必要です。

開始する前に必要なもの

必要なパッケージをインストールします:

bash Copy
# CapSolverコアエンジン(必須の依存関係)
pip install git+https://github.com/capsolver-ai/capsolver-core.git

# CapSolverエージェントツール
pip install git+https://github.com/capsolver-ai/capsolver-agent.git

# CrewAIフレームワーク
pip install crewai crewai-tools

環境変数を設定します:

bash Copy
export CAPSOLVER_API_KEY="your-capsolver-api-key"
export OPENAI_API_KEY="your-openai-api-key"

CapSolverアカウントを取得し、APIクレジットを残していることを確認してください。CapSolverの料金ページでは、各CAPTCHAタイプの現在の料金が表示されます。

ステップ1 — CrewAI用のCAPTCHAソルバーを作成する

行うべきこと

CrewAIは@toolデコレータで定義されたカスタムツールを使用します。CapSolverのエクスキューターをCrewAI互換のツールにラップします:

python Copy
import asyncio
from crewai import Agent, Task, Crew
from crewai.tools import tool
from capsolver_agent.schema import create_executor

# CapSolverエクスキューターを作成
executor = create_executor(api_key="YOUR_CAPSOLVER_API_KEY")

@tool("CAPTCHAを解決")
def solve_captcha(captcha_type: str, website_url: str, website_key: str) -> str:
    """CAPTCHAチャレンジを解決し、トークンを返します。
    ウェブサイトでCAPTCHAに遭遇したときにこのツールを使用してください。
    
    引数:
        captcha_type: CAPTCHAの種類 - 'reCaptchaV2', 'reCaptchaV3', または 'cloudflare'
        website_url: CAPTCHAが表示されているページの完全なURL
        website_key: サイトキー(data-sitekey属性の値)
    
    戻り値:
        フォームに送信する解決されたCAPTCHAトークン
    """
    result = asyncio.run(executor.execute("solve_captcha", {
        "captcha_type": captcha_type,
        "website_url": website_url,
        "website_key": website_key
    }))
    
    if result["success"]:
        return f"CAPTCHAは正常に解決されました。トークン: {result['solution']['token']}"
    else:
        return f"CAPTCHA解決に失敗しました: {result['error']}"

このツールはCrewAIの標準的なパターンに従っており、@toolデコレータはエージェントのLLMがいつ呼び出すかを決定するために名前と説明を登録します。

なぜ重要なのか

CrewAIエージェントはツールの説明に基づいてツールを選択します。明確に記述されたCAPTCHA解決ツールは、エージェントがいつ解決が必要かを自律的に認識し、正しいパラメータでツールを呼び出すことを可能にします。構造化された戻り形式は、エージェントに成功または失敗の明確なフィードバックを提供します。

避けるべき一般的なミス

  • CrewAIツールで直接asyncを使用する: CrewAIのツール実行は同期的です。async CapSolver呼び出しをツール関数内でasyncio.run()でラップしてください。
  • 曖昧なツール説明: LLMはツールを使用するタイミングを知る必要があります。具体的なCAPTCHAタイプ名とパラメータの説明を含めてください。

ステップ2 — CAPTCHA機能を持つCrewAIエージェントを作成する

行うべきこと

CAPTCHA解決を備えたCrewAIエージェントを作成します:

python Copy
from crewai import Agent

# CAPTCHA解決機能を持つ研究者エージェント
researcher = Agent(
    role="ウェブリサーチ専門家",
    goal="ウェブサイトからデータを収集し、遭遇したCAPTCHAチャレンジを処理します",
    backstory="""あなたはさまざまなオンラインソースからデータを収集するエキスパートのウェブリサーチャーです。ウェブサイトでCAPTCHAチャレンジに遭遇した場合は、solve_captchaツールを使用してクリアし、研究を続けます。reCaptchaV2(チェックボックスまたは非表示)、reCaptchaV3(スコアベース)、cloudflare(Turnstileウィジェット)のCAPTCHAタイプを識別する方法を知っています。""",
    tools=[solve_captcha],
    verbose=True
)

ウェブアクセスが必要な複数のエージェントを持つクルーの場合、各エージェントにCAPTCHAツールを提供してください:

python Copy
# データ収集エージェント
data_collector = Agent(
    role="データ収集専門家",
    goal="ターゲットウェブサイトから構造化されたデータを抽出します",
    backstory="あなたはウェブソースからデータを収集し、必要に応じてsolve_captchaツールを使用してCAPTCHAチャレンジを処理します。",
    tools=[solve_captcha],
    verbose=True
)

# 検証エージェント
verifier = Agent(
    role="データ検証専門家", 
    goal="収集されたデータを公式ソースと照合します",
    backstory="あなたは公式ソースをチェックしてデータの正確性を検証し、必要に応じてCAPTCHAを解決します。",
    tools=[solve_captcha],
    verbose=True
)

ステップ3 — CAPTCHA対応のタスクでクルーを構成する

行うべきこと

CAPTCHA解決が必要なタスクを定義し、それらをクルーに組み合わせます:

python Copy
from crewai import Task, Crew, Process

# CAPTCHAに遭遇する可能性のあるタスク
research_task = Task(
    description="""{url}のターゲットウェブサイトをリサーチしてください。 
    CAPTCHAチャレンジに遭遇した場合は、その種類とサイトキーを特定し、solve_captchaツールを使用してトークンを取得してください。
    このサイトではreCAPTCHA v2を使用しており、サイトキーは{site_key}です。
    CAPTCHAを解決した後、必要なデータを収集してください。""",
    expected_output="必要に応じてCAPTCHAトークンを含むターゲットウェブサイトからのデータを収集",
    agent=researcher
)

# 分析タスク(リサーチ結果に依存)
analysis_task = Task(
    description="リサーチャーが収集したデータを分析し、要約レポートを作成してください。",
    expected_output="収集されたデータの構造化された分析レポート",
    agent=data_collector
)

# クルーを作成
crew = Crew(
    agents=[researcher, data_collector],
    tasks=[research_task, analysis_task],
    process=Process.sequential,
    verbose=True
)

# クルーを実行
result = crew.kickoff(inputs={
    "url": "https://example.com/data",
    "site_key": "6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI"
})
print(result)

シーケンシャルプロセスは、リサーチャーがCAPTCHA解決を完了するまでデータコレクターが分析を開始しないようにします。並列実行の場合、各エージェントは割り当てられたサイトでCAPTCHAを個別に処理します。

なぜ重要なのか

CrewAIの強みはマルチエージェントの協働です。CAPTCHA解決機能を必要とするエージェントに提供することで、クルーはエンドツーエンドで自律的に動作します。検証チャレンジが発生した場合、人間の介入は必要ありません—エージェントは状況を認識し、ツールを呼び出し、作業を続けます。

ステップ4 — CrewAIで複数のCAPTCHAタイプを処理する

異なるウェブサイトでは異なるCAPTCHAシステムが使用されます。一般的なシナリオ用の専門的なツールを作成します:

python Copy
@tool("reCAPTCHA v3を解決")
def solve_recaptcha_v3(website_url: str, website_key: str, page_action: str = "verify") -> str:
    """reCAPTCHA v3チャレンジを高スコアトークンで解決します。
    サイトが非表示のreCAPTCHA v3(スコアベース、チェックボックスなし)を使用している場合に使用してください。
    
    引数:
        website_url: ページの完全なURL
        website_key: reCAPTCHAサイトキー
        page_action: v3スコアリング用のアクション名(デフォルト: 'verify')
    """
    result = asyncio.run(executor.execute("solve_captcha", {
        "captcha_type": "reCaptchaV3",
        "website_url": website_url,
        "website_key": website_key,
        "page_action": page_action,
        "min_score": 0.7
    }))
    if result["success"]:
        return f"reCAPTCHA v3は解決されました。トークン: {result['solution']['token']}"
    return f"失敗: {result['error']}"

@tool("Cloudflare Turnstileを解決")
def solve_turnstile(website_url: str, website_key: str) -> str:
    """Cloudflare Turnstileチャレンジを解決します。
    サイトがCloudflareで保護されており、Turnstileウィジェットが表示されている場合に使用してください。
    
    引数:
        website_url: ページの完全なURL
        website_key: Turnstileサイトキー(0xで始まる)
    """
    result = asyncio.run(executor.execute("solve_captcha", {
        "captcha_type": "cloudflare",
        "website_url": website_url,
        "website_key": website_key
    }))
    if result["success"]:
        return f"Turnstileは解決されました。トークン: {result['solution']['token']}"
    return f"失敗: {result['error']}"
CAPTCHAタイプ 使用するツール 平均解決時間 一般的な使用場面
reCAPTCHA v2 solve_captcha 5-12秒 ログインページ、フォーム
reCAPTCHA v3 solve_recaptcha_v3 3-8秒 API、非表示の保護
Cloudflare Turnstile solve_turnstile 2-5秒 モダンなSaaS、Shopify

CapSolverのreCAPTCHAガイドCloudflare Turnstileガイドでは、各CAPTCHAタイプのパラメータと動作の詳細が提供されています。

ボーナスコードを取得してください: CapSolverダッシュボードでコード WEBS を使用すると、毎回の充電で追加の5%のボーナスを獲得できます。CrewAIマルチエージェントワークフローをスケールして実行するチームに最適です。

ステップ5 — CrewAI + CapSolverの本番用パターン

行うべきこと

本番用のCrewAIデプロイメントでは、エラーハンドリングとリトライロジックを追加します:

python Copy
@tool("失敗時に自動リトライするCAPTCHAを解決")
def solve_captcha_robust(captcha_type: str, website_url: str, website_key: str) -> str:
    """失敗時に自動リトライするCAPTCHAを解決します。
    失敗した場合、最大3回まで試行します。
    """
    for attempt in range(3):
        result = asyncio.run(executor.execute("solve_captcha", {
            "captcha_type": captcha_type,
            "website_url": website_url,
            "website_key": website_key
        }))
        if result["success"]:
            return f"試行{attempt + 1}で解決しました。トークン: {result['solution']['token']}"
        if attempt < 2:
            import time
            time.sleep(3)
    return f"3回の試行後に失敗しました: {result.get('error', '不明なエラー')}"

複数のサイトを処理するクルーでは、開始前に残高チェックを実装します:

python Copy
@tool("CAPTCHAソルバー残高を確認")
def check_balance() -> str:
    """CAPTCHAソルバーの残高を確認します。"""
    result = asyncio.run(executor.execute("get_balance", {}))
    if result["success"]:
        return f"残高: ${result['balance']:.2f}"
    return "残高を確認できませんでした"

CapSolverのウェブスクレイピングドキュメントは、CrewAIリサーチエージェントに適用可能な高ボリュームデータ収集の追加パターンをカバーしています。ブラウザ自動化を使用するエージェントの場合、CapSolver拡張機能は開発中のCAPTCHAパラメータの識別に役立ちます。

結論

CrewAIマルチエージェントワークフローにCAPTCHA解決を統合するには、CapSolverのエクスキューターをCrewAI互換の@tool関数にラップし、ウェブタスクを実行するエージェントにこれらのツールを割り当て、検証チャレンジを通過できるようにクルーを構成する必要があります。CapSolverは、人間の介入なしでマルチエージェントパイプラインを実行するためのAI駆動の解決インフラを提供します。

最初に単一のCAPTCHA解決ツールを作成し、1つのエージェントでテストしてから、複数のウェブ対応エージェントを持つ完全なクルーに拡張してください。ツールベースのアプローチにより、エージェントはコンテキストに基づいていつ解決するかを決定します—ハードコードされたCAPTCHA検出ロジックは必要ありません。

FAQ

複数のCrewAIエージェントが同時にCAPTCHAを解決できますか?

はい。CAPTCHA解決ツールを持つ各エージェントは、個別に呼び出すことができます。CapSolverのAPIは並列タスクの提出をサポートしており、レート制限がないため、並列クルー実行は競合なく動作します。各解決はユニークなリクエストIDでトラッキングされ、デバッグに役立ちます。

CrewAIはエージェントがCAPTCHAを解決する必要があるとどうやって知っていますか?

エージェントのLLMはツールの説明とタスクの文脈に基づいて状況を推論します。タスクがCAPTCHA保護されたリソースへのアクセスを含む場合、エージェントは必要性を認識し、適切なパラメータで解決ツールを呼び出します。タスクの説明にCAPTCHAの詳細を含めることで明示的なガイドラインを提供することもできます。

CrewAIワークフローでCAPTCHA解決が失敗した場合どうなりますか?

ツールはエージェントに失敗メッセージを返します。エージェントはその後、リトライ、代替パラメータの試行、またはタスク出力に失敗を報告できます。CrewAIのエラーハンドリングにより、1つのタスクが解決不能なCAPTCHAに遭遇しても、残りのタスクは継続して実行されます。

CapSolverはCrewAIの階層的プロセスモードと互換性がありますか?

はい。階層的モードではマネージャーエージェントがタスクをクルーに委譲します。委譲されたタスクがCAPTCHA解決を必要とする場合、割り当てられたエージェントは独自にツールを使用します。マネージャーはCAPTCHA解決の詳細を理解する必要なく、完了した結果を受け取ります。

CrewAIの実行ごとにCAPTCHA解決にかかる費用はどのくらいですか?

コストは遭遇するCAPTCHAの数と種類によって異なります。reCAPTCHA v2は約1,000件あたり2〜3ドル、reCAPTCHA v3は1,000件あたり1〜2ドル、Cloudflare Turnstileは1,000件あたり1〜2ドルです。1回の実行で3〜5個のCAPTCHAに遭遇する典型的なCrewAI研究クルーの場合、実行あたりのコストは0.005〜0.015ドルです。

コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。

もっと見る

TinyFish AgentQでキャプチャを解く
TinyFish AgentQLを使ってCAPTCHAを解決する方法 – CapSolverを使用したステップバイステップガイド

CapSolverをTinyFish AgentQLに統合する方法を学び、reCAPTCHAやCloudflare TurnstileなどのCAPTCHAを自動的に解決する方法を学びましょう。PythonとJavaScript SDKの例を含むステップバイステップのチュートリアルで、シームレスなAI駆動のウェブ自動化を実現します。

ai
Logo of CapSolver

Sora Fujimoto

05-Aug-2026

ラマインデックスのエージェントでキャプチャをどうやって解決するか
LlamaIndexエージェントにおけるCAPTCHAの解決方法

CAPTCHAの解決をLlamaIndexエージェントにFunctionToolとCapSolverを使用してウェブデータのインジェストパイプラインに統合する。

ai
Logo of CapSolver

Sora Fujimoto

31-Jul-2026

CAPTCHAをMCP CapSolverサービスで解決する方法
MCPを使用したCAPTCHAの解き方: キャプソルバー モデル コンテキスト プロトコル サービス

Claude Desktop、Cursor、および任意のMCPクライアントでゼロコードでCAPTCHAを解くためのCapSolver MCPサービスを設定してください。

ai
Logo of CapSolver

Sora Fujimoto

31-Jul-2026

OpenAI Agents SDKにおけるreCAPTCHA v3の解き方
reCAPTCHA v3をOpenAIエージェントSDKで解く方法

OpenAI Agents SDKで、CapSolverのfunction_toolを使用して、高スコアのreCAPTCHA v3トークンを生成します。

ai
Logo of CapSolver

Sora Fujimoto

30-Jul-2026

クラウドフレアトゥルニスティールを解決する方法 クリューAIエージェントで
Cloudflare Turnstile の解決方法: CrewAI エージェントでの

CrewAIのマルチエージェントワークフローにCloudflare Turnstileの解決を統合し、CapSolverを用いて行います。

ai
Logo of CapSolver

Sora Fujimoto

30-Jul-2026

CAPTCHAを解く方法: AutoGen AIエージェントでCapSolverを使う
CAPTCHAを解決する方法: AutoGenエージェント

Microsoft AutoGenのマルチエージェント会話にCAPTCHAの解決を統合する完全なガイド – register_functionとグループチャットのパターンを使用してCapSolverで

ai
Logo of CapSolver

Sora Fujimoto

29-Jul-2026