
Ethan Collins
Pattern Recognition Specialist

capsolver-core适用于Playwright脚本,capsolver-agent适用于工具调用代理,capsolver-mcp适用于MCP兼容客户端。AI代理的公共采购数据需要可重复的收集代码,而不是代理可以浏览的模糊承诺。CapSolver应作为记录的代理能力进行连接:浏览器或模型检测到验证挑战,经批准的工具处理它,代理仅在原始用户授权任务仍然有效时继续。官方CapSolver AI文档描述了三个实用层:CapSolver for AI Agents用于架构,Core SDK浏览器模式用于Playwright流程,agent工具模式用于模型控制的调用,以及MCP服务工具用于通过Model Context Protocol发现工具的客户端。本文将这些文档转化为具有代码、停止规则和日志字段的生产级公共采购数据AI代理工作流。
CapSolver AI文档描述了三个层。使用与您的所有权模型匹配的最低层:当您的代码控制浏览器时使用Core SDK,当模型决定何时调用工具时使用Agent工具,当您的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密钥保留在环境配置中,避免将其放在提示、日志、截图或文章示例中。
采购门户通常会暴露搜索页面、通知详细页面、附件和中标更新。AI代理应在处理任何验证挑战之前将这些步骤标准化为源合同。
source_contract = {
"portal": "city-procurement",
"allowed_paths": ["/bids", "/awards", "/notices"],
"public_records_only": True,
"max_challenge_attempts": 1,
}
def in_public_procurement_scope(url):
return any(path in url for path in source_contract["allowed_paths"])
该合同将AI代理的公共采购数据聚焦于公共记录,并在目标更改为仅账户或受限内容时停止运行。
当您的公共采购数据AI代理流程已拥有Playwright页面时,使用capsolver-core。官方Core SDK路径是检测、读取CAPTCHA信息、求解并将其令牌填充回页面。当页面结构动态时,全功能浏览器调用很有用。
import asyncio
from capsolver_core import create_capsolver
from playwright.async_api import async_playwright
TARGET_URL = "https://example.gov/procurement/notices"
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())
重要的工程细节是返回值,而不仅仅是令牌。您的代理只有在原始任务仍然合法、合理且用户授权时才应继续。当页面要求私有、受限、敏感或未经授权的数据时应停止。
当代理在MCP兼容客户端中运行时,使用capsolver-mcp。MCP服务指南记录了stdio、SSE和可流式传输的HTTP传输,并列出了工具如solve_captcha、detect_captchas、solve_on_page、get_balance和get_supported_captchas。
capsolver-mcp --transport streamable-http --host 127.0.0.1 --port 8000
{
"mcpServers": {
"capsolver": {
"command": "capsolver-mcp",
"env": {
"CAPSOLVER_API_KEY": "YOUR_CAPSOLVER_KEY"
}
}
}
}
对于公共采购数据AI代理,当多个开发人员使用不同客户端但需要一个经过审查的工具表面时,MCP最为强大。保持服务名称稳定,将密钥存储在提示之外,并记录带有请求ID、目标URL、挑战类型、尝试次数和最终状态的工具调用。
领取您的CapSolver优惠码
立即提升您的自动化预算!
在充值CapSolver账户时使用优惠码 CAP26,每次充值可获得额外 5% 的奖励——无限制。
现在在您的 CapSolver仪表板 中领取
在调用任何挑战工具之前,确认用户授权了任务,目标在批准的域名列表内,并且访问的数据是公共的或被允许的。公共采购数据AI代理的工作流不应将技术能力视为权限。
使用小的重试预算。一次浏览器状态重试和一次冷却重试通常就足够了。重复的挑战事件应创建审查工单,而不是继续静默进行。
捕获URL、时间戳、挑战类型、CapSolver包路径、尝试次数、结果状态和最终页面状态。除非您的策略明确允许,否则不要存储无关的页面内容、凭据、会话密钥或个人数据。
对于公共采购数据AI代理,保持运行合法且有证据支持:尊重 HTTP状态码行为、可访问性要求、隐私风险管理 和 公共数据管理。
一篇强大的公共采购数据AI代理文章应展示实际的实现路径,而一个强大的生产工作流也应如此。实用的选择很简单:使用 capsolver-core 进行代码控制的浏览器自动化,capsolver-agent 进行工具调用代理,capsolver-mcp 进行MCP兼容客户端。保持挑战处理的限制、记录和与合法用户授权工作的关联。当您的团队准备好向代理工作流添加该恢复层时,请从 CapSolver 和官方AI代理文档开始。
当您的应用程序拥有浏览器代码时使用 capsolver-core,当模型应调用工具时使用 capsolver-agent,当AI客户端应通过MCP发现工具时使用 capsolver-mcp。
不。模型可以请求工具调用,但应用程序应强制执行范围、重试限制和停止条件。
不可以。CAPTCHA处理不授予权限。仅用于合法、合理、用户授权的工作流,尊重网站条款和数据权利。
记录源URL、挑战类型、工具路径、尝试次数、结果状态和最终页面状态。避免在日志中包含凭据和无关的页面内容。