agent-browser 批量自动化:Batch 与 AI Chat
batch 单次调用多步执行、chat 自然语言控制浏览器、并发多 session 管理——从单步命令到自动化管线。
亿牛云技术团队2026年5月9日2 分钟阅读
从单步命令到自动化管线
前面的文章演示了单步命令操作。实际生产中你需要的是将多个步骤编排成一个自动化流程。
agent-browser 提供了两种方式:batch(参数化多步执行)和 chat(自然语言交互)。
Batch:单次调用多步执行
每次 agent-browser 命令启动一个独立进程,进程启动有固定开销。batch 将所有命令合并到一次调用:
# 每次独立调用(3 次进程启动)
agent-browser open https://example.com
agent-browser fill @e3 "user@example.com"
agent-browser click @e5
# batch 单次调用(1 次进程启动)
agent-browser \
"open https://example.com" \
"fill @e3 user@example.com" \
"click @e5"
Batch 语法
# 引号包裹每条命令
agent-browser batch \
"open https://example.com/login" \
"fill @e3 admin@example.com" \
"fill @e4 password123" \
"click @e5" \
"wait 2000" \
"screenshot dashboard.png"
JSON 格式(通过 stdin)
适合程序化生成的操作序列:
echo '[
["open", "https://example.com"],
["fill", "@e3", "user@example.com"],
["fill", "@e4", "password123"],
["click", "@e5"],
["screenshot", "result.png"]
]' | agent-browser batch --json
错误处理
# --bail 任一命令失败即停止
agent-browser batch --bail \
"open https://example.com" \
"click @e1" \
"screenshot page.png"
# 不带 --bail,失败后继续执行后续命令
Chat:自然语言控制浏览器
chat 模式将 AI 与浏览器的能力结合起来:
# 单次指令
agent-browser chat "打开 example.com,截取首页截图"
# REPL 交互模式
agent-browser chat
# Chat> 打开 example.com
# Chat> 在搜索框输入 "browser automation"
# Chat> 点击搜索按钮
# Chat> 把第一个结果的标题给我
# Chat> 退出
AI 会自动将自然语言翻译为 browser 命令(open、click、fill、screenshot 等),然后执行并返回结果。
Chat 模式的工作流程
用户输入 → AI 解析意图 → 生成命令序列 → 执行 → 返回结果 → 继续
实际编排模式
模式一:定时巡检
#!/bin/bash
# 每天 9 点检查服务状态
SITES=(
"https://app.example.com/dashboard"
"https://app.example.com/api/health"
"https://app.example.com/status"
)
for site in "${SITES[@]}"; do
agent-browser batch \
"open $site" \
"screenshot shots/$(basename $site)-$(date +%Y%m%d).png" \
"get text body"
done
模式二:多 session 并发采集
#!/bin/bash
# 并发采集多个站点,每个 session 隔离
sites=(
"site-a:https://example.com/products"
"site-b:https://example.com/products"
"site-c:https://example.com/products"
)
for entry in "${sites[@]}"; do
name="${entry%%:*}"
url="${entry##*:}"
# 每个 session 独立代理(需配合 IP 池)
HTTP_PROXY=http://user:pass@proxy.16yun.cn:8888 \
AGENT_BROWSER_SESSION_NAME=$name \
agent-browser batch \
"open $url" \
"snapshot -i -c > data/$name-snapshot.txt" &
done
wait # 等待所有后台进程完成
echo "全部采集完成"
模式三:数据提取管线
#!/bin/bash
agent-browser batch \
"open https://example.com" \
"snapshot -i -c -u" \
"eval \"JSON.stringify([...document.querySelectorAll('article h2 a')].map(a => ({title: a.textContent, url: a.href})))\""
对接代理
在 batch 模式下使用代理:
# 环境变量方式
export HTTP_PROXY=http://user:pass@proxy.16yun.cn:8888
export HTTPS_PROXY=http://user:pass@proxy.16yun.cn:8888
agent-browser batch \
"open https://example.com" \
"snapshot -i" \
"screenshot target.png"
配合 API 代理 IP 池
#!/bin/bash
# 从 16YUN API 代理获取一批 IP,分配给不同 session
# 获取 IP 列表
IP_LIST=$(curl -s "http://ip.16yun.cn:817/myip/pl/xxx/?s=xxx&u=user&format=json&count=10")
echo "$IP_LIST" | jq -c '.[]' | while read proxy; do
IP=$(echo $proxy | jq -r '.ip')
PORT=$(echo $proxy | jq -r '.port')
HTTP_PROXY="http://user:pass@$IP:$PORT" \
agent-browser batch \
"open https://example.com" \
"screenshot shots/$IP.png" &
done
wait
性能对比
| 执行方式 | 10 步操作耗时 | 适用场景 |
|---|---|---|
| 独立命令 x10 | ~3-5 秒 | 交互式调试 |
| batch x1 | ~0.3-0.5 秒 | CI/CD、定时任务 |
| chat(AI 翻译) | ~1-2 秒 + AI 处理 | 探索式操作 |
总结
| 方法 | 命令 | 最佳用途 |
|---|---|---|
| 单步命令 | agent-browser open/click/fill | 调试、单次操作 |
| Batch | agent-browser batch "cmd1" "cmd2" | CI/CD、定时任务 |
| Batch JSON | echo [...] | agent-browser batch --json | 程序化生成 |
| Chat | agent-browser chat "自然语言指令" | 探索、AI Agent 集成 |
需要企业代理方案?
我们可根据目标站点、并发规模与稳定性目标提供定制方案。