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 命令(openclickfillscreenshot 等),然后执行并返回结果。

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调试、单次操作
Batchagent-browser batch "cmd1" "cmd2"CI/CD、定时任务
Batch JSONecho [...] | agent-browser batch --json程序化生成
Chatagent-browser chat "自然语言指令"探索、AI Agent 集成

需要企业代理方案?

我们可根据目标站点、并发规模与稳定性目标提供定制方案。