
Sora Fujimoto
AI Solutions Architect

capsolver-coreはPlaywrightスクリプトに適し、capsolver-agentはツールコールエージェントに適し、capsolver-mcpはMCP互換クライアントに適しています。CrewAIのCAPTCHAソルバー作業には、計画、ブラウザコントロール、レビューの間でコードレベルのツール境界が必要です。CapSolverはドキュメント化されたエージェント機能として接続されるべきです。ブラウザまたはモデルが検出する検証チャレンジ、承認されたツールが処理し、エージェントは元のユーザー認可タスクが有効である場合にのみ再開します。公式のCapSolver AIドキュメントでは、3つの実用的なレイヤーが説明されています。CapSolver for AI Agentsはアーキテクチャ、Core SDKブラウザモードはPlaywrightフロー、エージェントツールスキーマはモデル制御呼び出し、MCPサービスツールはモデルコンテキストプロトコルでツールを発見するクライアントです。この記事では、これらのドキュメントを生産的なCrewAI CAPTCHAソルバーのワークフローに変換し、コード、ストップルール、ロギングフィールドを含めます。
CapSolver AIドキュメントでは3つのレイヤーが説明されています。所有モデルに合った最も低いレイヤーを使用してください。コードがブラウザを制御する場合はCore SDK、モデルがツール呼び出しのタイミングを決定する場合はエージェントツール、AIクライアントがツールを自動的に発見する場合はMCPサービスを使用してください。
pip install "capsolver-core[playwright] @ git+https://github.com/capsolver-ai/capsolver-core.git"
pip install git+https://github.com/capsolver-ai/capsolver-agent.git
pip install "capsolver-mcp[browser] @ git+https://github.com/capsolver-ai/capsolver-mcp.git"
playwright install chromium
export CAPSOLVER_API_KEY="your-capsolver-api-key"
イントロダクションとクイックスタートでは、パッケージの役割が説明されています。capsolver-coreはエンジンを公開し、capsolver-agentはツールとしてラップし、capsolver-mcpは同じ機能をMCPクライアントに公開します。APIキーは環境設定に保持し、プロンプト、ログ、スクリーンショット、記事の例に含めないでください。
CrewAIの実装では、各役割に狭い責任を割り当てます。プランナーは、ページが検証チャレンジによってブロックされていることを識別します。ブラウザワーカーはナビゲーションを担当します。CapSolverツールハンドラーはチャレンジステップを担当します。レビュアーは、実行が不確実な場合の最終的な決定を担当します。
crew_state = {
"task_id": "lead-enrichment-042",
"allowed_domains": ["example.com"],
"captcha_attempts": 0,
"max_captcha_attempts": 1,
"final_state": "planning",
}
def may_call_capsolver(state, current_url):
if state["captcha_attempts"] >= state["max_captcha_attempts"]:
return False
return any(domain in current_url for domain in state["allowed_domains"])
この小さなゲートは、CrewAI CAPTCHAソルバーの動作を可視化するものです。ページが範囲内にあり、リトライ予算がまだ利用可能な場合にのみ、助けを求めることができます。
モデルがチャレンジ処理が必要なタイミングを選択する場合、capsolver-agentを使用してください。エージェントツールガイドはget_all_tools()を通じてツール定義を公開し、モデルのツール呼び出しをcreate_executor()でルーティングします。
import json
from openai import OpenAI
from capsolver_agent.schema import create_executor, get_all_tools
client = OpenAI()
executor = create_executor(api_key="YOUR_CAPSOLVER_KEY", default_timeout=120)
tools = [tool.to_openai_function() for tool in get_all_tools()]
messages = [{
"role": "user",
"content": "承認されたブラウザタスクを続行してください。CAPTCHAが表示されたら、CapSolverツールを一度呼び出して結果を報告してください。"
}]
async def run_one_turn():
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools,
)
for call in response.choices[0].message.tool_calls or []:
args = json.loads(call.function.arguments)
result = await executor.execute(call.function.name, args)
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps(result),
})
CrewAI CAPTCHAソルバーでは、このツールパスをレビューポリシーにバインドしてください。モデルはツールを要求できますが、あなたのアプリケーションが許可されたURL範囲、最大試行回数、および結果がタスクを継続するために使用できるかどうかを決定します。
CrewAI CAPTCHAソルバーのフローが既にPlaywrightページを所有している場合、capsolver-coreを使用してください。公式のコアSDKパスは、検出、CAPTCHA情報の読み取り、解決、ページへのトークンの入力です。ページ構造が動的である場合、ワンストップブラウザ呼び出しが役立ちます。
import asyncio
from capsolver_core import create_capsolver
from playwright.async_api import async_playwright
TARGET_URL = "https://example.com/approved-workflow"
async def run_agent_step():
async with async_playwright() as pw:
browser = await pw.chromium.launch()
page = await browser.new_page()
await page.goto(TARGET_URL, wait_until="domcontentloaded")
async with create_capsolver(api_key="YOUR_CAPSOLVER_KEY") as cap:
captcha_types = await cap.detect(page)
if not captcha_types:
return "continue_without_challenge"
results = await cap.solve_on_page(page)
solved = [r for r in results if r.solution and not r.error]
if not solved:
return "stop_for_review"
return "resume_original_authorized_task"
asyncio.run(run_agent_step())
重要なエンジニアリングの詳細は、戻り値であり、トークンではありません。元のタスクが法的に許可され、合理的でユーザー認可されている場合にのみエージェントは継続する必要があります。ページがプライベート、制限、機密、または認可されていないデータを要求した場合は停止する必要があります。
CapSolverのボーナスコードを引き換える
自動化予算を即座に増やす!
CapSolverアカウントにチャージする際にボーナスコード CAP26 を使用すると、毎回 5%のボーナス を獲得できます — 制限なし。
CapSolverダッシュボードで今すぐ引き換えてください。
どのチャレンジツールを呼び出す前に、ユーザーがタスクを認可したか、ターゲットが承認されたドメインリスト内か、アクセス中のデータが公開されているか、または他の方法で許可されているかを確認してください。CrewAI CAPTCHAソルバーのワークフローでは、技術的機能を許可として扱ってはなりません。
小さなリトライ予算を使用してください。1回のブラウザ状態リトライと1回のクールダウンリトライで十分です。繰り返しのチャレンジイベントは、静かに継続する代わりにレビュー用チケットを作成する必要があります。
URL、タイムスタンプ、チャレンジタイプ、CapSolverパッケージのパス、試行回数、結果状態、最終的なページ状態をキャプチャしてください。ポリシーが明示的に許可している場合を除き、関係のないページコンテンツ、資格情報、セッションシークレット、個人データを保存しないでください。
CrewAI CAPTCHAソルバーでは、実行を法的にかつ証拠に基づいて保つようにしてください。HTTPステータスコードの動作、アクセシビリティ要件、プライバシーリスク管理、および公共データの管理を尊重してください。
強力なCrewAI CAPTCHAソルバー記事は、実際の実装パスを示すべきであり、強力な生産ワークフローも同様です。実用的な選択は単純です。コード所有のブラウザ自動化にはcapsolver-coreを使用し、ツールコールエージェントにはcapsolver-agentを使用し、MCP互換クライアントにはcapsolver-mcpを使用してください。チャレンジ処理を制限し、ログに記録し、法的にユーザー認可された作業に関連付けてください。チームがエージェントワークフローにこの復元層を追加する準備ができたら、CapSolverと公式のAIエージェントドキュメントから始めましょう。
アプリケーションがブラウザコードを所有している場合はcapsolver-coreを使用し、モデルがツールを呼び出す必要がある場合はcapsolver-agentを使用し、AIクライアントがMCPを通じてツールを発見する必要がある場合はcapsolver-mcpを使用してください。
いいえ。モデルはツール呼び出しを要求できますが、アプリケーションが範囲、リトライ制限、および停止条件を強制する必要があります。
いいえ。CAPTCHA処理は許可を提供しません。サイトの利用規約とデータ権を尊重し、法的に妥当でユーザー認可されたワークフローでのみ使用してください。
ソースURL、チャレンジタイプ、ツールパス、試行回数、結果状態、最終的なページ状態をログに記録してください。資格情報や関係のないページコンテンツはログに含めないでください。
OpenAIエージェントのCAPTCHAソルバーのコンテンツは、ツールコールがモデルループにどのように入力および出力されるかを示すべきです。CapSolverは、文書化されたエージェント機能として接続されるべきです。ブラウザやモデルが検証チャレンジを検出すると、承認されたツールが処理し、元のユーザー承認タスクが依然として有効である場合にのみエージェントが再開されます。公式のCapSolver AIドキュメンテーションは、3つの実用的なレイヤーを説明しています。アーキテクチャ用のCapSolver for AI Agents、Playwright用のCore SDKブラウザモード。

reCAPTCHA v2を解決するためのステップバイステップチュートリアル ランゲインエージェントを使用したキャプソルバーエージェントツールについて、トークンモードとブラウザーモードをカバーし、コード例を含む
