Langchain •agent runner


エージェントオートメーション · LangChain
LangChain エージェントに CapSolver を追加 — 1 回のツール呼び出しで CAPTCHA を解決します
CapSolver エージェントは、get_langchain_tools() 経由で既製の LangChain BaseTools を ReAct または LangGraph エージェントに追加します。 CAPTCHA が表示されると、LangChain 用のネイティブ SDK、ブラウザ ツール、MCP を利用して、ソルバーを呼び出し、トークンを取得して続行します。
エージェント CAPTCHA ワークフロー
検出
CAPTCHAまたは認証が表示されます
抜粋
URL、サイトキー、メタデータ
解決する
CapSolver タスク
戻る
解決策がエージェントに返されました
続ける
エージェントがワークフローを再開します
LangChain エージェントに CAPTCHA 解決を追加する
エージェントループ用に構築
LangChain CAPTCHA ソルバーは、エージェント ワークフローが実際の Web サイトにアクセスし、トラフィック検証や CAPTCHA チャレンジによって停止される可能性がある場合に役立ちます。
ツールネイティブのパターン
CapSolver を明確な入力を持つ呼び出し可能な LangChain ツールとして公開することで、エージェントは必要なときにのみ CAPTCHA の解決を要求できます。
生産回復
エージェントのワークフローを中断することなく、再試行、エラー、リクエスト ID、タイムアウトを処理します。
ツールの境界を明確にする
エージェントがワークフローを制御します。 CapSolver は解決タスクを処理し、結果を返します。
LangChain エージェントが運用環境で CAPTCHA リカバリを必要とする理由
LangChain は、ツールを通じてアクションを実行するエージェント向けに設計されています。ブラウザ自動化ワークフローでは、このループは reCAPTCHA または Cloudflare Turnstile によって中断されることがよくあります。正しい解決策は、CapSolver をエージェント フレームワークにすることではありません。CapSolver を、現実世界のすべてのブラウザ エージェントが必要なときに呼び出せる、エージェント対応の CAPTCHA インフラストラクチャ層にすることです。
ワークフロー層
LangChain ワークフローにおける役割
CapSolver が追加するもの
ラングチェーンエージェント
タスクを計画し、ツールを選択し、状態を維持します。
必要な場合にのみ呼び出すことができる、呼び出し可能な CAPTCHA 回復ツール。
CapSolver API
課題固有のタスクを作成し、解決策を返します。
reCAPTCHA v2/v3、Cloudflare Challenge /Turnstile、およびその他のサポートされているチャレンジを API 経由で処理します。
可観測性
ツールの呼び出し、エラー、ワークフローのステータスを追跡します
CAPTCHA タスク ID、チャレンジ タイプ、解決ステータス、エラー コード/再試行。
建築
責任を明確にする: LangChain が調整し、CapSolver が CAPTCHA を解決します
LangChain ワークフローの集中ツールとして CapSolver を使用します。エージェントは、Web サイトの URL、サイト キー、およびチャレンジの詳細を提供します。このツールはタスクを作成し、結果を確認して、解決策を返します。 LangChain はエージェントのワークフローを管理し、CapSolver は CAPTCHA 解決を処理します。
検出
CAPTCHA チャレンジがターゲット ページに存在します。
抜粋
websiteURL、websiteKey、チャレンジタイプを収集します。
作成
正しいタスク オブジェクトを使用して CapSolver createTask を呼び出します。
投票
タスクの準備が完了するかタイムアウトになるまで、getTaskResult を確認してください。レート制限エラーには再試行遅延を使用します。
続ける
ツールは構造化トークンを返し、LangChain エージェントは元のタスクを再開します。
観察する
タスク ID、ステータス、エラー コード/再試行を記録します。
クイックスタート
CapSolver API を使用して Python LangChain ツールを構築する
CapSolver をラップするcreateTask+getTaskResult1 つのツールで、構造化された情報が入力され、構造化された結果が得られます。ポーリングでは、全体的なタイムアウトのある固定間隔が使用されます。
# pip install "capsolver-agent[langchain]" langchain-openai langgraph
# export CAPSOLVER_API_KEY=CAP-XXXXXX
# export OPENAI_API_KEY=sk-XXXXXX
import asyncio
import os
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
from capsolver_agent.schema import create_executor
from _env import load_example_env # demo only: reads repo-root .env
load_example_env()
# 1. Wrap CapSolver as one LangChain tool.
# createTask + result polling are handled inside capsolver-agent.
executor = create_executor() # key from CAPSOLVER_API_KEY
@tool
async def solve_captcha(captcha_type: str, website_url: str, website_key: str) -> dict:
"""Solve a captcha (reCaptchaV2 / reCaptchaV3 / cloudflare) and return its token.
captcha_type: captcha family, e.g. reCaptchaV2
website_url: full URL of the page that loads the captcha
website_key: site key found on that page
"""
result = await executor.execute(
"solve_captcha",
{"captcha_type": captcha_type, "website_url": website_url, "website_key": website_key},
)
if not result.get("success"):
return {"ok": False, "error": result.get("error", "unknown error")}
return {"ok": True, "token": result["solution"]["token"]}
# 2. Any OpenAI-compatible chat model works; the LLM decides when to call the tool.
llm = ChatOpenAI(model=os.environ.get("OPENAI_MODEL", "gpt-4o"), temperature=0)
# 3. Give the tool to a ReAct agent.
agent = create_react_agent(llm, [solve_captcha])
# 4. Run.
PROMPT = (
"Solve the reCaptchaV2 at https://www.google.com/recaptcha/api2/demo "
"with site key 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ- "
"and report the first 40 characters of the token."
)
result = asyncio.run(agent.ainvoke({"messages": [("user", PROMPT)]}))
print(result["messages"][-1].content)
LangChain エージェントにツールを追加する
get_langchain_tools()エージェントがすでに使用しているブラウザ、データ抽出、またはワークフロー ツールの横にある標準の BaseTools を返します。
# pip install "capsolver-agent[langchain]" langchain-openai langgraph
# export CAPSOLVER_API_KEY=CAP-XXXXXX
# export OPENAI_API_KEY=sk-XXXXXX
import asyncio
import os
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
from capsolver_agent.langchain_tools import get_langchain_tools
from _env import load_example_env # demo only: reads repo-root .env
load_example_env()
# CapSolver's ready-made LangChain BaseTools, backed by capsolver-core:
# solve_captcha, detect_captchas, solve_on_page, get_balance, get_supported_captchas
tools = get_langchain_tools(api_key=os.environ["CAPSOLVER_API_KEY"])
llm = ChatOpenAI(model=os.environ.get("OPENAI_MODEL", "gpt-4o"), temperature=0)
# The solver tools sit beside the browser / data / workflow tools your agent already uses
agent = create_react_agent(llm, tools)
result = asyncio.run( # CapSolver tools are async, so use ainvoke
agent.ainvoke(
{
"messages": [
{
"role": "user",
"content": "Solve the reCaptchaV2 at "
"https://www.google.com/recaptcha/api2/demo with site key "
"6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ- and report the "
"first 40 characters of the token.",
}
]
}
)
)
print(result["messages"][-1].content)
ツールを直接インポートします。JavaScript や TypeScript パッケージは必要ありません。
本番環境のベストプラクティス
LangChain エージェント向けに本番環境に対応した CAPTCHA 解決機能を構築する
01
秘密管理
CAPSOLVER_API_KEY を環境変数またはシークレット マネージャーに保存します。
なぜ
プロンプト、ログ、リポジトリでのキーの誤った公開を防ぎます。
02
ツールスキーマ
ツールの入力は狭くして入力してください (website_url、website_key)。
なぜ
モデルの混乱と安全でない引数の生成を減らします。
03
検出
ページのコンテキストからチャレンジ タイプとサイト キーを読み取ります。
なぜ
モデルは生のテキストからページパラメータを推測すべきではありません。
04
ポーリングと再試行
設定した間隔でタスクのステータスを確認し、タイムアウト後に停止します。 API エラーをバックオフで再試行します。
なぜ
不要な負荷と暴走エージェント ループを防ぎます。
05
ロギング
task_id、チャレンジ タイプ、ステータス、エラー コード/再試行を記録します。
なぜ
デバッグとサポートが容易になります。
06
エラー処理
繰り返される失敗を止め、必要に応じて人間によるレビューのためにタスクを送信します。
なぜ
機密性の高いワークフローや不確実なワークフローでのやみくもな再試行を防ぎます。
07
コンプライアンス
サイト規約、ユーザー認証、プライバシー要件、レート制限を確認してください。
なぜ
自動化を承認されたユースケースに合わせて維持します。
エコシステムフィット
CapSolver はブラウザ インフラストラクチャと連携して動作します。ブラウザ インフラストラクチャを置き換えるものではありません。
01
ブラウザベース / スチール
02
劇作家 / 人形遣い
03
ラングチェーン / ランググラフ
主な仕事
ホスト型ブラウザーの実行とセッション管理。
ブラウザ制御と DOM インタラクション。
エージェントのオーケストレーションとツールの使用。
CapSolver なし
ブラウザ セッションは実行し続けることができますが、CAPTCHA によってワークフローが停止する可能性があります。
オートメーションはページを検出して操作できますが、それでも CAPTCHA 解決ロジックが必要です。
エージェントはツールを呼び出すことができますが、CAPTCHA を解決するための組み込みツールはありません。
キャップソルバーあり
CapSolver は、ブラウザ セッションがアクティブなまま CAPTCHA タスクを処理します。
オートメーションはチャレンジ データを CapSolver に送信し、返されたソリューションを使用します。
エージェントは CapSolver をツールとして呼び出し、結果を使用してワークフローを続行します。
最適なユースケース
実稼働環境でブラウザ ワークフローを実行する B2B エージェント チーム向けに構築
セールスオートメーション
承認された販売調査および CRM ワークフローでは、ブラウザー タスク中に CAPTCHA または検証チェックが発生する場合があります。
HRテクノロジー
承認された採用ワークフローは、複数ステップのブラウザータスク中に確認が表示されると一時停止することがあります。
QAおよびテストツール
サインアップ、チェックアウト、フォームのエンドツーエンドのテストでは、テスト実行の失敗を減らすために明確な CAPTCHA 処理が必要です。
RegTech とコンプライアンス
パブリック レジストリ チェックと証拠収集のワークフローには、信頼性、監査ログ、明確なフォールバック動作が必要です。
研究の自動化
ソースに CAPTCHA または検証チェックが表示されると、承認されたパブリック データ ワークフローが一時停止する場合があります。
社内RPA
ユーザーが承認した反復的なワークフローは、トラフィック検証によってタスクがブロックされた場合に、明確な CAPTCHA 回復レイヤーの恩恵を受けます。
責任ある使用
合法かつ認可された自動化には CapSolver を使用する
CapSolver は、承認された QA テスト、社内 RPA、ユーザー承認のエージェント タスク、準拠したパブリック データ ワークフローなど、合法かつ承認された使用を目的としています。 Web サイトを自動化する前に、その規約、適用されるプライバシー ルール、レート制限、および組織のコンプライアンス要件を確認してください。
認定された QA テスト
承認されたRPA
パブリックデータのワークフロー
ユーザーが承認したエージェントのタスク
コンプライアンスを審査した自動化
Eコマースの自動化
よくある質問
関連する統合
エージェント スタック向けの CapSolver 統合をさらに検討する
別の統合を選択して、エージェントまたはブラウザのワークフローに CAPTCHA 解決を追加します。

