CAPSOLVER
ブログ
AutoGen AgentsにおけるCAPTCHAの解決方法

CAPTCHAを解決する方法: AutoGenエージェント

Logo of CapSolver

Sora Fujimoto

AI Solutions Architect

29-Jul-2026

マイクロソフトのAutoGenフレームワークは、複雑なタスクを完了するために複数の対話で協力するコンセプショナルAIエージェントを可能にします。AutoGenエージェントがウェブベースの操作(データ取得、フォーム送信、自動リサーチ)を実行する際、CAPTCHAチャレンジが会話フローを妨げ、タスクの完了をブロックします。CapSolverのcapsolver-agentパッケージは、AutoGenの関数コールメカニズムに直接統合されるツールスキーマと非同期エクスキュータを提供し、あなたのエージェントに会話中にreCAPTCHA、Cloudflare Turnstile、その他の検証チャレンジを解決する能力をもたらします。

TL;DR

  • AutoGenのコンセプショナルエージェントは、ウェブタスクでCAPTCHA検証チャレンジに遭遇すると停止します
  • CapSolverはAutoGenのregister_function APIを通じてコール可能なツールとして統合されます
  • capsolver-agentエクスキュータは非同期で解決を処理し、構造化された結果を返します
  • reCAPTCHA v2/v3(エンタープライズを含む)とCloudflare Turnstileをサポートしています
  • AutoGenの2エージェントチャットとグループチャットパターンの両方に適用可能です

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

AutoGenのマルチエージェントアーキテクチャは、メッセージを通じてエージェントが協力するコンセプショナルパターンを使用します。一般的な設定には、AIであるAssistantAgentとコードとツールを実行するUserProxyAgentが含まれます。アシスタントがウェブタスクにCAPTCHA解決が必要であると判断した場合、登録された関数を呼び出さなければ、会話ループが停止し、進行する手段がありません。

AutoGenのグループチャットシナリオでは、問題がさらに悪化します。複数のエージェントが同時にウェブアクセスを必要とする可能性があります:1つのエージェントが会社データをリサーチし、別のエージェントが連絡先情報の検証を行い、3つ目のエージェントが規制文書をチェックします。それぞれが異なるサイトでCAPTCHAに遭遇する可能性があります。解決メカニズムがなければ、グループ会話全体が最初の検証壁で停止します。

CapSolverの生産データによると、約30%のエージェントウェブタスクが検証チャレンジに遭遇します。AutoGenワークフローで10のウェブ依存ステップを実行する場合、会話ごとに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

# AutoGenフレームワーク
pip install autogen-agentchat

環境変数を設定してください:

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

CapSolverアカウント(https://www.capsolver.com)が必要です。APIクレジットがチャージされている必要があります。

ステップ1 — AutoGen関数としてCAPTCHA解決を登録する

行うべきこと

AutoGenはregister_functionを使用してツールをエージェントに利用可能にします。CAPTCHA解決用の関数を作成し、登録してください:

python Copy
import asyncio
from autogen import AssistantAgent, UserProxyAgent, config_list_from_json
from capsolver_agent.schema import create_executor

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

def solve_captcha(
    captcha_type: str,
    website_url: str,
    website_key: str,
    page_action: str = "",
    min_score: float = 0.7
) -> str:
    """CAPTCHAチャレンジを解決し、検証トークンを返します。
    
    Args:
        captcha_type: CAPTCHAタイプ - 'reCaptchaV2', 'reCaptchaV3', または 'cloudflare'
        website_url: CAPTCHAが表示されているページの完全なURL
        website_key: サイトキー(data-sitekey属性)
        page_action: reCAPTCHA v3用のアクション名(オプション)
        min_score: reCAPTCHA v3の最小スコア(デフォルト0.7)
    
    Returns:
        解決されたCAPTCHAトークンまたはエラーメッセージ
    """
    params = {
        "captcha_type": captcha_type,
        "website_url": website_url,
        "website_key": website_key
    }
    if page_action and captcha_type == "reCaptchaV3":
        params["page_action"] = page_action
        params["min_score"] = min_score
    
    result = asyncio.run(executor.execute("solve_captcha", params))
    
    if result["success"]:
        token = result["solution"]["token"]
        return f"CAPTCHAは正常に解決されました。トークン(最初の80文字): {token[:80]}..."
    return f"CAPTCHA解決に失敗しました: {result['error']}"

なぜこれが重要なのか

AutoGenの関数登録は、エージェントに実行可能な機能を提供する標準的な方法です。アシスタントエージェントは関数の説明を認識し、ドキュストリングを通じてパラメータを理解し、会話でCAPTCHA解決が必要なときに呼び出します。これはAutoGenのデザインパターンに完全に合致しています。

ステップ2 — AutoGenの2エージェントチャットを設定する

行うべきこと

CAPTCHA解決機能を持つAssistantAgentとUserProxyAgentのペアを作成してください:

python Copy
# LLM構成
llm_config = {
    "config_list": [{"model": "gpt-4o", "api_key": "YOUR_OPENAI_KEY"}],
    "temperature": 0
}

# アシスタントエージェント(何をすべきかを決定するAI)
assistant = AssistantAgent(
    name="web_assistant",
    system_message="""ウェブリサーチアシスタントで、CAPTCHA解決機能を持っています。
    タスクでCAPTCHA保護されたウェブサイトにアクセスする必要がある場合、次のパラメータを使用してsolve_captcha関数を呼び出してください:
    - captcha_type: 'reCaptchaV2', 'reCaptchaV3', または 'cloudflare'
    - website_url: ページの完全なURL
    - website_key: ページからのサイトキー
    
    解決後、トークンをユーザーに返してフォーム送信を完了してください。""",
    llm_config=llm_config
)

# ユーザープロキシ(アシスタントの代わりに関数を実行)
user_proxy = UserProxyAgent(
    name="user_proxy",
    human_input_mode="NEVER",
    max_consecutive_auto_reply=5,
    code_execution_config={"work_dir": "workspace", "use_docker": False}
)

# CAPTCHA解決関数を登録
from autogen import register_function

register_function(
    solve_captcha,
    caller=assistant,      # アシスタントがいつ呼び出すかを決定
    executor=user_proxy,   # ユーザープロキシが関数を実行
    name="solve_captcha",
    description="CAPTCHAチャレンジ(reCAPTCHA v2/v3またはCloudflare Turnstile)を解決し、検証トークンを返します"
)

なぜこれが重要なのか

2エージェントパターンはAutoGenのコアアーキテクチャです。アシスタントはタスクを推論し、必要に応じてsolve_captchaを呼び出します。ユーザープロキシは関数呼び出しを実行し、結果をアシスタントに返します。アシスタントはトークンが利用可能になるまで会話を続けます。

ステップ3 — CAPTCHA解決を含む会話を実行する

行うべきこと

CAPTCHA解決が必要な会話を開始してください:

python Copy
# 会話を開始
user_proxy.initiate_chat(
    assistant,
    message="""reCAPTCHA v2で保護されたページにアクセスする必要があります。
    URL: https://example.com/data-portal
    サイトキー: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
    
    CAPTCHAを解決し、トークンを私に提供してください。"""
)

会話フロー:

  1. ユーザープロキシがタスクメッセージを送信
  2. アシスタントがCAPTCHA解決が必要であると認識
  3. アシスタントがsolve_captchaをパラメータで呼び出す
  4. ユーザープロキシが関数を実行(CapSolverが解決)
  5. 結果がアシスタントに戻る
  6. アシスタントがトークンを提示してタスクを完了

ステップ4 — AutoGenグループチャットで使用する

行うべきこと

複雑なワークフローで複数のエージェントを使用する場合、グループチャットでCAPTCHA解決を登録してください:

python Copy
from autogen import GroupChat, GroupChatManager

# 特化したエージェント
researcher = AssistantAgent(
    name="researcher",
    system_message="ウェブサイトをリサーチし、データを収集します。検証チャレンジに遭遇した場合はsolve_captchaを使用してください。",
    llm_config=llm_config
)

analyst = AssistantAgent(
    name="analyst",
    system_message="収集されたデータを分析し、洞察を生成します。",
    llm_config=llm_config
)

executor_agent = UserProxyAgent(
    name="executor",
    human_input_mode="NEVER",
    code_execution_config={"work_dir": "workspace", "use_docker": False}
)

# リ searcherにCAPTCHA解決を登録
register_function(
    solve_captcha,
    caller=researcher,
    executor=executor_agent,
    name="solve_captcha",
    description="ウェブサイトのCAPTCHAチャレンジを解決"
)

# グループチャットを作成
group_chat = GroupChat(
    agents=[researcher, analyst, executor_agent],
    messages=[],
    max_round=10
)

manager = GroupChatManager(groupchat=group_chat, llm_config=llm_config)

# グループリサーチタスクを開始
executor_agent.initiate_chat(
    manager,
    message="https://example.com/reportsのデータをリサーチしてください。reCAPTCHA v2(キー: 6Le...)で保護されています。CAPTCHAを解決し、データを収集した後、分析してください。"
)
CAPTCHAタイプ タスクタイプパラメータ 平均解決時間 一般的なサイト
reCAPTCHA v2 reCaptchaV2 5-12秒 ログインページ、フォーム、ポータル
reCAPTCHA v3 reCaptchaV3 3-8秒 API、非表示保護
Cloudflare Turnstile cloudflare 2-5秒 モダンなSaaS、Shopifyサイト

CapSolverのreCAPTCHAガイドCloudflare Turnstileドキュメントは、各CAPTCHAタイプのパラメータ詳細を追加で提供しています。

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

ステップ5 — プロダクションパターンとエラー処理

行うべきこと

プロダクション展開でリトライロジックと残高チェックを追加してください:

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

def check_captcha_balance() -> str:
    """CAPTCHA解決クレジットの残高を確認します。"""
    result = asyncio.run(executor.execute("get_balance", {}))
    if result["success"]:
        return f"CapSolverの残高: ${result['balance']:.2f}"
    return "残高を取得できませんでした"

両方の関数を登録して包括的な機能を提供してください:

python Copy
register_function(solve_captcha_with_retry, caller=assistant, executor=user_proxy,
    name="solve_captcha", description="リトライロジック付きでCAPTCHAを解決")
register_function(check_captcha_balance, caller=assistant, executor=user_proxy,
    name="check_balance", description="CAPTCHA解決クレジット残高を確認")

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

結論

AutoGenエージェントにCAPTCHA解決を統合するには、register_functionを介して解決関数を登録し、それをCapSolverのエクスキュータに接続し、アシスタントエージェントが会話中に呼び出すようにする必要があります。CapSolverは、3〜12秒で検証チャレンジを解除するAI駆動の解決インフラを提供し、人間の介入なしにAutoGenの会話をスムーズに進行させます。

単純なタスクには2エージェントパターンから始め、複雑なマルチエージェントワークフローにはグループチャットに拡張してください。関数登録アプローチにより、エージェントは会話コンテキストに基づいて自然に解決を決定します。ハードコーディングされたCAPTCHA検出は必要ありません。

FAQ

AutoGenの非同期実行でCapSolverは動作しますか?

はい。AutoGenのregister_functionは同期関数シグネチャを使用しますが、登録された関数内でasyncio.run()でCapSolverの非同期エクスキュータをラップできます。これにより、AutoGenの同期関数コールインターフェース内で接続プールや並列リクエストなどの非同期解決の利点を提供できます。

複数のAutoGenエージェントが同じCAPTCHAソルバーを共有できますか?

はい。グループチャットで複数の呼び出しエージェントに同じ解決関数を登録できます。各エージェントは、特定のタスクで必要となるときに独立してCAPTCHA解決を呼び出すことができます。CapSolverのAPIは同時リクエストを処理し、競合を防ぎます。

AutoGenはいつCAPTCHA解決関数を呼び出すかをどうやって決めますか?

AutoGenのアシスタントエージェントは、関数の説明と会話コンテキストを使用して決定します。タスクがCAPTCHA保護されたリソースにアクセスする必要があると述べている場合、アシスタントは必要性を認識し、適切なパラメータで関数呼び出しを生成します。システムメッセージに明示的な指示を含めることもできます。

会話中にCAPTCHA解決が失敗した場合どうなりますか?

関数はアシスタントエージェントにエラーメッセージを返します。アシスタントは異なるパラメータでリトライしたり、説明を求めたり、失敗を報告したりできます。AutoGenの会話ループは常に動作し、失敗はダイアログの一部として処理されるため、システムがクラッシュすることはありません。

AutoGen会話ごとのCAPTCHA解決のコストはどのくらいですか?

通常、1〜3つのCAPTCHAに遭遇するAutoGen会話の解決費用は0.002〜0.009ドルです。reCAPTCHA v2の解決費用は1,000回あたり約2〜3ドルで、Cloudflare Turnstileは1,000回あたり1〜2ドルです。ほとんどのワークフローでは、CAPTCHA解決のコストはLLM APIのコストに比べて無視できるほどです。

コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。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