跳转到内容

Auto-Heal

Auto-Heal 是 HydraSkill 的自动故障转移系统。当某个 IP 被封锁、封禁或限速时,HydraSkill 会透明地切换到新 IP —— 你的 Agent 永远不必处理代理错误。

HydraSkill 会监控响应中的封锁信号:

信号检测方式
HTTP 403 Forbidden直接封锁
HTTP 429 Too Many Requests速率限制
CAPTCHA 页面内容分析
连接重置网络层封锁
空响应隐蔽封锁
重定向到封锁页URL 模式匹配
Agent Request → Proxy → Target Site
↓ (blocked!)
HydraSkill detects
New IP assigned
Request retried
Agent receives ← Success response

你的 Agent 代码保持简洁:

# 无需为代理错误编写 try/except
response = requests.get(url, proxies=proxy.to_dict())
# 如果第一个 IP 被封锁,HydraSkill 已经自动重试
proxy = client.get_proxy(
target="amazon.com",
auto_heal=True, # 默认启用
max_retries=3, # 最多重试 3 次
retry_delay_ms=500, # 重试之间的等待时间
rotate_on_block=True, # 被封锁时获取新 IP
)

每个请求都有重试预算(默认 3 次)。如果所有重试都失败,HydraSkill 会抛出 ProxyExhaustedError,以便你的 Agent 处理这种边界情况:

from hydraskill.exceptions import ProxyExhaustedError
try:
response = requests.get(url, proxies=proxy.to_dict())
except ProxyExhaustedError:
# 所有重试都失败 —— 目标站点可能正在全面封锁
log.warning(f"Could not reach {url} after 3 proxy rotations")

在你的 dashboard 中跟踪 Auto-Heal 活动:

  • Heal Rate —— 需要轮换 IP 的请求占比
  • Avg Recovery Time —— 切换 IP 所需的毫秒数
  • Block Sources —— 哪些目标触发了最多封锁

用于调试,或当你需要原始响应(包括封锁响应)时:

proxy = client.get_proxy(
target="example.com",
auto_heal=False # 获取原始响应,包括 403
)