Heidi Labs
GitHub TrendingGitHub Trending 项目约 8 分钟3,327 字

agent-browser:为 AI 智能体打造的浏览器自动化 CLI

本文目录

agent-browser#

面向 AI 智能体的浏览器自动化:打开页面,以无障碍树(accessibility tree)读取页面,并从 shell 对元素执行操作。

agent-browser 是一个原生 Rust CLI,为 AI 智能体提供一个可以一次一条命令驱动的浏览器。snapshot 把页面返回为紧凑文本,并为每个元素附带一个类似 @e1 的引用(ref)。智能体对引用执行操作,再次读取页面检查结果,然后重复。浏览器在命令之间保持打开,因此每一步都是一次简短的 shell 调用。

安装#

npm install -g agent-browser
agent-browser install # download Chrome for Testing (first time only)

Homebrew:brew install agent-browser,然后运行 agent-browser install。

Linux:agent-browser install --with-deps 还会安装浏览器所需的系统库。

无需安装:npx agent-browser open example.com。

项目内安装、从源码构建、升级和 doctor 诊断,请参阅 Installation。

快速开始#

agent-browser open example.com
agent-browser snapshot -i # interactive elements, each with a ref
agent-browser click @e1 # act on a ref from that snapshot
agent-browser get url # check the result
agent-browser close

example.com 的快照:

- link "Learn more" [ref=e1]

引用描述的是快照生成时的页面。在导航或 DOM 变化之后,使用引用前需要重新拍摄快照。

CSS 选择器、文本、XPath 和语义定位器也可以使用,例如 agent-browser find role button click --name "Submit"。参见 Selectors。

当目标被隐藏、禁用、位于视口之外,或被另一个元素(如同意横幅)遮挡时,点击会失败,而不是报告成功。关闭遮挡元素,重新拍摄快照,然后重试。

完整演练见快速开始。

工作原理#

CLI 把每条命令发送给一个后台守护进程(daemon),该进程在第一条命令时启动,并通过 Chrome DevTools Protocol 控制浏览器。每个 --session 都有自己的守护进程和浏览器。默认情况下,守护进程会在无命令一小时后关闭无头浏览器并退出,如果配置了会话持久化,则会先保存状态。

Chrome for Testing 是默认浏览器。你也可以通过 --cdp 或 --auto-connect(CDP 模式)附加到正在运行的 Chrome,用 --engine 选择 Lightpanda 或 Obscura 引擎,在 iOS 模拟器中驱动 Mobile Safari,或使用 Browserbase、Browserless、Browser Use、Kernel 或 AgentCore 等云浏览器提供商。

面向 AI 智能体#

CLI 附带与其版本匹配的技能:

agent-browser skills get core # the core loop, refs, waiting, and common workflows
agent-browser skills get core --ref commands # one reference, such as the full command list
agent-browser skills get core --full # adds the full command reference and templates
agent-browser skills list # specialized skills: electron, slack, dogfood, and more

从 skills.sh 把发现技能安装到智能体工具链中:

npx skills add vercel-labs/agent-browser

安装的技能是一个薄薄的存根(stub),它告诉智能体加载 agent-browser skills get core,因此其指令始终与已安装的 CLI 匹配。或者把下面内容加入你的 AGENTS.md:

Use `agent-browser` for browser automation. Before the first use, run
`agent-browser skills get core` and follow it.

对于 MCP 客户端,agent-browser mcp 会通过 stdio 启动一个 MCP 服务器。参见 MCP server。

命令#

运行 agent-browser --help 查看完整列表,或运行 agent-browser <command> --help 查看单个命令。

分组命令文档
导航与读取open、back、forward、reload、read、snapshot、get、isCore、Snapshots
交互click、dblclick、fill、type、press、keyboard、hover、focus、select、check、uncheck、scroll、drag、upload、mouse、findCore、Find elements
等待waitWait
捕获screenshot、pdf、record、download、diffRecording、Diffing、Files
页面与网络状态cookies、storage、network、set、clipboard、eval、pushstateNetwork、Settings
标签页、框架与对话框tab、frame、dialogTabs and frames
调试与性能console、errors、highlight、inspect、trace、profiler、vitals、react、a11yDebugging、Profiler、React
会话与认证session、state、auth、profiles、confirm、denySessions、Security
智能体与集成skills、mcp、webmcp、flow、chat、batch、pluginSkills、WebMCP、Plugins
观察stream、dashboardStreaming、Dashboard
安装install、upgrade、doctor、connect、closeInstallation

标志、环境变量和 agent-browser.json 的文档见 Configuration。

平台#

原生二进制适用于 macOS(ARM64、x64)、Linux(ARM64、x64、glibc 和 musl)以及 Windows(x64)。npm 包会为主机选择正确的二进制。

开发#

从源码构建需要 Node.js 24 或更高版本、pnpm 11 或更高版本,以及 Rust:

pnpm install
pnpm build:source # builds the dashboard and the native CLI
pnpm link --global
agent-browser install

在 cli/ 中运行 Rust 检查:

cargo fmt -- --check
cargo clippy
cargo test
cargo test e2e -- --ignored --test-threads=1 # launches real headless Chrome

AGENTS.md 列出了每次变更需要更新的文件、文档检查和发布流程。

文档#

agent-browser.dev:介绍、指南和参考

  • 命令与配置
  • 安全:认证保险库(auth vault)、域名允许列表、动作策略和内容边界
  • Next.js 与 Vercel 及 eve:在 Vercel Sandbox 和 eve 智能体中运行 agent-browser

变更日志见 Changelog。

许可#

Apache-2.0

关于#

面向 AI 智能体的浏览器自动化 CLI

agent-browser.dev