Skip to main content
当获准的 Agent 任务需要地域出口、连续的浏览器会话或明确的出站策略时,为它的网络工具配置代理。没有网络工具的纯文本任务无需代理。本教程完成一个三步浏览器任务:读取出口 IP、采集目标页面的标题与 H1、再次读取出口 IP。

选择接入与会话方式

HTTP 客户端可直接设置 HTTP、HTTPS 或 SOCKS 代理。浏览器任务可在 Playwright 启动浏览器时设置代理。托管 API、远程浏览器和 MCP 是其他服务可能提供的接入方式,请按所选服务的接口配置;它们不代表 MiyaIP 提供同名产品。 公开 API、数据集或测试任务可先评估数据中心出口。长期固定地区会话可选择静态 ISP 出口;只有任务确实依赖终端用户或蜂窝网络特征时,才选住宅或移动出口。按工作流需要选择代理,而不是按 IP 池规模选择。 在编排层使用稳定的租户、工作流与会话标识选择路由。不要在一次有状态任务进行到一半时更换出口,也不要在不同客户之间共享 Cookie。浏览器 context 保持本地状态;上游代理的固定或粘性设置决定出口是否保持一致,示例会实际比较任务前后的出口。

安装并运行 Playwright 示例

1

安装运行环境

在新的工作目录安装 Node.js 项目依赖和 Chromium。
下载 ai_agents.mjs 和 retry_after.mjs,保存在同一目录。示例使用 Playwright 安装的 Chromium。
2

配置代理、目标与白名单

将以下占位值替换为所提取的代理信息。此示例使用带账号密码的 HTTP 或 HTTPS 代理;服务器地址与认证字段分开设置。
真实凭据由密钥管理工具注入。修改目标时同步修改 ALLOWED_HOSTS,多个获准主机使用逗号分隔。脚本还允许 api.ipify.org,用于任务前后的出口核验。目标和浏览器请求必须使用白名单中的 HTTPS 主机与默认端口;代理凭据不会写入提示词或日志。
3

保存完整代码

同一次浏览器启动应用一条代理线路,一个 context 承载整个逻辑会话。脚本复用同一个页面执行三步任务,阻止不在白名单中的网络请求,并在结束或失败后关闭 context 和浏览器。
4

运行并检查本次结果

运行后检查控制台的 outcome、目标 status、steps、retries、durationMs、脱敏 exitIp 与 sameExitAcrossTask。output/agent-result.json 保存本次采集的 title、heading 与 titleMatchesHeading。标题与 H1 不一致本身不代表网络失败,请按目标的数据规则判断。完成三步且前后出口一致时退出码为 0;出口变化或其他失败为 1;任务需要延后执行为 2。这里没有预置的成功结果,请以你的实际运行输出为准。

重试与任务恢复

每次导航最多尝试 2 次,导航超时为 30 秒,页面操作默认超时为 15 秒,浏览器启动超时为 30 秒。任务内累计重试等待预算为 10 秒。429、500、502、503 和 504 的有效 Retry-After 秒数或 HTTP 日期会完整保留,不会截短为 10 秒。只有响应头缺失或无效时才使用有限指数退避。 超过剩余等待预算,或最后一次尝试仍返回暂时性错误时,脚本输出 outcome=deferred、UTC retry_at 与原因,关闭浏览器并退出。编排层必须在 retry_at 或之后恢复,示例不创建调度。如果日期超出运行时支持范围,则停止并报告 retry_after_out_of_range,需要人工安排。

接入 Agent 编排层

由已批准的 HTTP 或浏览器工具执行请求。编排层校验目标、租户、任务和路由键,网关再选择上游出口。凭据仅在运行时注入,模型只接收所需结果与脱敏状态。 生产系统还需在网络层处理 DNS 重绑定、私有或元数据地址、短期凭据、并发与带宽限制。为写操作保留幂等键,按出口健康状态设置熔断,并隔离租户与浏览器存储。这些能力需要在你的基础设施中配置,单文件示例只演示浏览器请求和会话流程。 记录时间、任务标识、哈希会话标识、主机名、步骤、尝试次数、状态类别和耗时。不要记录代理密码、Cookie、Authorization 请求头、原始异常或带密钥的完整 URL。先用受控响应测试认证失败、限流、超时与延后执行,再逐步增加任务量。页面采集与文件导出还可参考网页抓取教程。 浏览器代理配置见 Playwright 官方文档,重试时间格式见 RFC 9110:Retry-After。