Auto-Heal
Auto-Heal
Section titled “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/exceptresponse = 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 —— 哪些目标触发了最多封锁
禁用 Auto-Heal
Section titled “禁用 Auto-Heal”用于调试,或当你需要原始响应(包括封锁响应)时:
proxy = client.get_proxy( target="example.com", auto_heal=False # 获取原始响应,包括 403)