OpenAI Agents SDK · agent runner


代理自动化 · OpenAI Agents SDK
在 OpenAI Agents SDK 应用程序中解决验证码问题
添加 CapSolver 作为支持浏览器的代理的功能工具。当出现受支持的验证码时,代理可以调用 CapSolver、接收结果并继续授权的工作流程。还可以通过 Agents SDK 跟踪来查看工具调用。
验证码解决的工作原理
当出现受支持的 CAPTCHA 时,代理会调用 CapSolver 并接收继续所需的结果。
出现验证码
挑战出现
收集
页面 URL、站点密钥和验证码类型
解决
向 CapSolver 发送请求
返回
结果发送回代理
继续
代理恢复工作流程
整合
CapSolver 如何融入 OpenAI 代理工作流程
OpenAI Agents SDK 管理代理循环和功能工具调用。单独的浏览器工具处理网站交互,而 CapSolver 处理支持的验证码请求并将结果返回给代理。
组件
主要角色
当验证码出现时
OpenAI代理
规划任务、选择工具并管理状态。
决定何时调用 CapSolver 函数工具。
浏览器工具
导航、单击、键入和阅读页面。
提供页面上下文并继续浏览器操作。
帽解算器
处理支持验证码请求。
将验证码结果返回给代理。
代理SDK跟踪
记录代理运行和工具调用。
帮助检查工具活动和错误。
快速入门
将 CapSolver 作为功能工具添加到 OpenAI 代理中
将 CapSolver 包裹起来@function_tool,将其添加到代理的工具中,并让 Agents SDK 管理工具调用循环。
# pip install capsolver-agent openai-agents
# export CAPSOLVER_API_KEY=CAP-XXXXXX
# export OPENAI_API_KEY=sk-XXXXXX
import json
import os
from agents import Agent, Runner, function_tool, set_default_openai_api, set_tracing_disabled
from capsolver_agent.schema import create_executor
from _env import load_example_env # demo only: reads repo-root .env
load_example_env()
set_tracing_disabled(True)
if os.environ.get("OPENAI_BASE_URL"): # OpenAI-compatible gateway (DeepSeek, ...)
set_default_openai_api("chat_completions")
executor = create_executor() # wraps a capsolver-core engine; key from CAPSOLVER_API_KEY
@function_tool
async def solve_captcha(
captcha_type: str,
website_url: str,
website_key: str,
proxy: str | None = None, # pass a proxy for proxy-bound challenges
) -> str:
"""Solve a captcha (reCaptchaV2 / reCaptchaV3 / cloudflare) and return the result as JSON.
Call this whenever a page blocks the task with a CAPTCHA. Provide the
captcha type, the page URL, and the site key from the challenge widget.
"""
args = {"captcha_type": captcha_type, "website_url": website_url, "website_key": website_key}
if proxy:
args["proxy"] = proxy
result = await executor.execute("solve_captcha", args)
return json.dumps(result, ensure_ascii=False)
agent = Agent(
name="captcha-agent",
model=os.environ.get("OPENAI_MODEL", "gpt-4o"),
instructions=(
"You complete web tasks. When a page shows a CAPTCHA, call solve_captcha "
"with the captcha type, page URL and site key, then continue."
),
tools=[solve_captcha],
)
result = Runner.run_sync(
agent,
"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.final_output)
生产最佳实践
生产 OpenAI 代理的最佳实践
确保 API 密钥安全,传递准确的验证码详细信息,并跟踪每个请求。
面积
推荐
为什么这很重要
API密钥安全
将 CAPSOLVER_API_KEY 存储在环境变量或秘密管理器中。
防止提示、日志和存储库中的意外密钥泄露。
工具输入
对验证码类型、页面 URL 和站点密钥使用清晰的输入。
帮助客服人员使用正确的信息调用该工具。
验证码详细信息
从您的应用程序或浏览器工具传递经过验证的验证码详细信息。
防止模型猜测页面参数。
超时和重试
使用具有整体超时的固定间隔轮询。单独重试 HTTP 错误。
避免长时间等待和不必要的重复请求。
记录和追踪
使用 Agents SDK 跟踪工具调用,并记录任务 ID、状态和错误。
使调试和支持变得更加容易。
故障处理
返回明确的错误并在重复失败后暂停工作流程。
防止盲目重试和意外的代理循环。
最适合的用例
专为在生产中运行 OpenAI 代理的 B2B 团队而构建
销售自动化
使用公共或用户提供的业务数据支持批准的研究和 CRM 工作流程。
人力资源技术
支持跨批准的职位和候选人系统的授权招聘工作流程。
质量保证和测试工具
测试遇到支持的验证码的注册、结账和表单工作流程。
监管科技与合规
公共登记检查和证据收集工作流程需要可靠性和审计日志。
研究自动化
当出现受支持的验证码时,帮助研究代理收集公共网络信息。
内部机器人流程自动化
支持用户授权的需要验证码解决的内部工作流程。
负责任的使用
专为合法且授权的自动化而构建
CapSolver 专为负责任的自动化而设计,包括授权的 QA 测试、批准的 RPA、公共数据工作流程和用户授权的代理任务。用户必须遵守适用的法律、网站条款、隐私要求和速率限制。 CapSolver 不支持未经授权的访问或恶意自动化。

