agent-browser + 16YUN 代理:企业级 AI 采集部署
多 Session 隔离、域白名单安全策略、操作审批控制、与 16YUN 各代理产品的配合方案以及生产部署 Checklist。
亿牛云技术团队2026年5月13日3 分钟阅读
从开发到生产
前三篇文章覆盖了 agent-browser 的单个能力。生产环境需要的是把这些能力组合成安全、稳定、可扩展的采集系统。
Session 隔离架构
生产环境中,多个采集任务应使用独立的 Session,互不干扰:
# 每个采集任务独立 session
AGENT_BROWSER_SESSION=crawler-task-1 agent-browser open https://example.16yun.cn
AGENT_BROWSER_SESSION=crawler-task-2 agent-browser open https://example.16yun.cn
# 查看当前活跃 session
agent-browser session list
# Output:
# Active sessions:
# -> crawler-task-1
# -> crawler-task-2每个 Session 拥有独立的:
- 浏览器实例
- Cookie 和存储
- 导航历史
- 认证状态
Session + 代理绑定
# 任务 1:独享代理 A + session A
HTTP_PROXY=http://user:pass@dedicated-a.16yun.cn:8888 \
AGENT_BROWSER_SESSION=task-a \
agent-browser batch \
"open https://example.16yun.cn/login" \
"fill @e3 admin@a.com" \
"fill @e4 pass-a" \
"click @e5" \
"wait 3000" \
"screenshot dashboard-a.png"
# 任务 2:爬虫代理隧道 + session B
HTTP_PROXY=http://user:pass@proxy.16yun.cn:8888 \
AGENT_BROWSER_SESSION=task-b \
agent-browser batch \
"open https://example.16yun.cn/products" \
"snapshot -i -c" \
"screenshot products-b.png"安全策略
agent-browser 为 AI Agent 场景提供了多层次的安全控制:
域白名单
限制浏览器只能访问指定域名,防止 AI Agent 产生意外导航:
export AGENT_BROWSER_ALLOWED_DOMAINS="example.16yun.cn,*.example.16yun.cn,api.example.16yun.cn"
# 以下可访问
agent-browser open https://example.16yun.cn/dashboard
agent-browser open https://app.example.16yun.cn/settings
# 以下被拒绝
agent-browser open https://blocked.example.16yun.cn # *.example.16yun.cn 通配符已覆盖此域名通配符 *.example.16yun.cn 也会匹配裸域名 example.16yun.cn。子资源请求(script、image、fetch)和 WebSocket 连接也会被限制。
操作审批
对高风险操作(eval、download)要求确认:
export AGENT_BROWSER_CONFIRM_ACTIONS="eval,download"
# 执行 eval 时会提示确认
agent-browser eval "document.cookie" # 需要确认操作策略文件
通过 JSON 策略文件定义运行时的操作规则:
# policy.json
cat > policy.json << 'EOF'
{
"allowedDomains": ["example.16yun.cn"],
"blockedDomains": ["evil.com"],
"maxScreenshots": 100,
"denyEval": true,
"denyFileUpload": true
}
EOF
export AGENT_BROWSER_ACTION_POLICY=./policy.json内容边界标记
在页面输出前后添加标记,让 AI 明确区分工具输出和页面内容:
export AGENT_BROWSER_CONTENT_BOUNDARIES=true
# 输出会被包裹在边界标记中
agent-browser get text body
# <BEGIN_PAGE_CONTENT>
# ... 页面文本 ...
# <END_PAGE_CONTENT>输出长度限制
防止页面内容过大导致上下文溢出:
export AGENT_BROWSER_MAX_OUTPUT=50000 # 最大 50K 字符安全配置一览
| 配置 | 环境变量 / 参数 | 说明 |
|---|---|---|
| 域白名单 | AGENT_BROWSER_ALLOWED_DOMAINS | 限制导航范围 |
| 操作确认 | AGENT_BROWSER_CONFIRM_ACTIONS | 高风险操作需确认 |
| 策略文件 | AGENT_BROWSER_ACTION_POLICY | JSON 策略文件 |
| 内容边界 | AGENT_BROWSER_CONTENT_BOUNDARIES | 标记工具输出边界 |
| 输出上限 | AGENT_BROWSER_MAX_OUTPUT | 防止上下文过多 |
| Session 加密 | AGENT_BROWSER_ENCRYPTION_KEY | AES-256-GCM 存储加密 |
16YUN 产品配合方案
| 代理产品 | 适用 agent-browser 场景 | 配置要点 |
|---|---|---|
| 爬虫代理(隧道) | 大量 session 共享 IP 池,每个请求自动切换 IP | HTTP_PROXY=http://user:pass@proxy.16yun.cn:8888 |
| API 代理 | 需要精细化控制 IP 分配,自定义提取策略 | 先提取 IP 列表,创建 session 时指定不同代理 |
| 独享代理 | 长期固定身份,需要稳定登录态的采集 | 绑定固定 session + 固定 proxy + state 持久化 |
爬虫代理 + 批量 Session
#!/bin/bash
# 10 个采集任务共享爬虫代理 IP 池
export HTTP_PROXY=http://user:pass@proxy.16yun.cn:8888
for i in $(seq 1 10); do
AGENT_BROWSER_SESSION="batch-$i" \
agent-browser batch \
"open https://example.16yun.cn/page-$i" \
"snapshot -i -c > snaps/page-$i.txt" &
done
waitAPI 代理 + 精细化 IP 控制
#!/bin/bash
# 提取 IP 列表,为每个 session 分配不同出口
IP_LIST=$(curl -s "http://ip.16yun.cn:817/myip/pl/xxx/?s=xxx&u=user&format=json&count=5")
echo "$IP_LIST" | jq -c '.[]' | while read -r proxy; do
IP=$(echo "$proxy" | jq -r '.ip')
PORT=$(echo "$proxy" | jq -r '.port')
SESSION_NAME="crawl-${IP//./-}"
HTTP_PROXY="http://user:pass@$IP:$PORT" \
AGENT_BROWSER_SESSION="$SESSION_NAME" \
agent-browser batch \
"open https://example.16yun.cn" \
"screenshot shots/$IP.png" &
done
wait独享代理 + 长期账号运营
#!/bin/bash
# 每个账号绑定独享代理 + 独立 session + 持久化状态
ACCOUNTS=(
"account-01:http://user:pass@dedicated-01.16yun.cn:8888"
"account-02:http://user:pass@dedicated-02.16yun.cn:8888"
)
for entry in "${ACCOUNTS[@]}"; do
NAME="${entry%%:*}"
PROXY="${entry##*:}"
HTTP_PROXY="$PROXY" \
AGENT_BROWSER_SESSION_NAME="$NAME" \
agent-browser batch \
"open https://seller.example.16yun.cn/dashboard" \
"snapshot -i -c"
done生产部署 Checklist
□ Session 隔离
□ 每个任务使用独立 --session 参数
□ 配置 AGENT_BROWSER_SESSION_NAME 自动持久化
□ 安全配置
□ 设置 AGENT_BROWSER_ALLOWED_DOMAINS 白名单
□ 启用 AGENT_BROWSER_CONTENT_BOUNDARIES
□ 设置 AGENT_BROWSER_MAX_OUTPUT 限制输出
□ 生产环境配置 AGENT_BROWSER_ENCRYPTION_KEY
□ 代理选型
□ 大批量匿名采集 → 爬虫代理(隧道模式)
□ 精细化 IP 控制 → API 代理(IP 池)
□ 长期固定身份 → 独享代理(固定出口)
□ 错误处理
□ 代理 407 认证失败:核对凭据
□ 代理 429 频率限制:降低并发
□ 超时 retry:3 次重试 + 指数退避
□ 监控日志
□ 记录每个 session 的操作日志
□ 定期清理过期 session 和 state 文件
□ 监控代理流量和消耗总结
agent-browser 为 AI Agent 提供了 CLI-first 的浏览器自动化能力,结合 16YUN 代理产品,可以构建从单步命令到大规模分布式采集的完整方案:
| 层级 | 技术 | 解决的问题 |
|---|---|---|
| 自动化层 | agent-browser CLI | 浏览器控制、截图、内容提取 |
| 身份层 | Session + State 管理 | 认证持久化、操作隔离 |
| 安全层 | 白名单 + 策略 + 加密 | 防止误操作和数据泄漏 |
| 网络层 | 16YUN 代理 | IP 隐藏、频率控制、区域覆盖 |
需要企业代理方案?
我们可根据目标站点、并发规模与稳定性目标提供定制方案。