技能介绍
agent-browser 是 vercel-labs 开源的一个高性能 Rust 原生命令行工具,专为 AI 代理设计,让你可以用编程方式控制网页浏览器,无需图形界面。它适用于 AI 智能体、自动化脚本,以及需要与网页交互(导航、点击、填写表单、截图、提取文本等)的开发者。
它采用客户端-守护进程架构:Rust CLI 负责解析命令并与守护进程通信,守护进程同样是纯 Rust 实现、直接使用 CDP,不需要 Node.js,也不需要 Playwright。守护进程在第一条命令时自动启动,并在命令之间保持运行,因此后续操作执行很快。许可证为 Apache-2.0。
适用场景
- 需要浏览网页的 AI 智能体和编程助手
- 需要自动化浏览器任务(测试、爬取、监控)的开发者
- 希望从命令行或脚本中控制浏览器的人
- 需要让智能体在 CI、容器或没有图形界面的服务器上操作网页的团队
- 需要把网页操作接入 MCP 客户端的场景
核心能力
快照与引用(推荐用于 AI)。 snapshot 输出带引用的无障碍树,引用形如 @e1,可以直接用于点击、填写、取值。引用指向快照中的确切元素,无需重新查询 DOM,确定性好、速度快,是最适合 LLM 的工作流。快照支持过滤以减少输出:-i 仅交互元素、--urls 附带链接 URL、-c 紧凑、-d 限制深度、-s 限定选择器。
多种定位方式。 除引用外,还支持 CSS 选择器、text=、xpath=,以及语义定位器 find role/text/label/placeholder/alt/title/testid 配合 click、fill、check、hover、text 等动作。
读、取与导出。 get 可取文本、innerHTML、输入值、属性、标题、URL、CDP WebSocket URL、元素计数、边界框与计算样式;read 获取智能体友好的文本,显式 URL 读取默认发送 Accept: text/markdown,会尝试 .md 与祖先目录的 llms.txt,也可用 --outline、--llms、--filter、--require-md 等选项控制;pdf 保存页面为 PDF。
截图。 screenshot 支持整页 --full、指定目录与格式(png/jpeg 及 JPEG 质量);--annotate 会在截图上叠加编号标签,每个 [N] 对应引用 @eN,方便多模态模型推理视觉布局。
网络与存储。 network route 可拦截、阻断、模拟响应,network requests 可按类型/方法/状态过滤,network har start|stop 支持 HAR 录制(可选择嵌入响应体);cookies 与 storage local|session 管理 Cookie 与本地存储,支持从 Copy-as-cURL、JSON 数组或裸 Cookie 头导入。
调试与度量。 trace、profiler、console、errors、highlight、inspect;自带 React 内省(react tree/inspect/renders/suspense,需启动时加 --enable react-devtools)与通用 Web Vitals(vitals 输出 LCP/CLS/TTFB/FCP/INP 及水合摘要,与框架无关);a11y 通过内嵌的 axe-core 做无障碍审计,可离线与在严格 CSP 下工作。
差异对比。 diff snapshot 比较当前与上次或基线快照,diff screenshot 做视觉像素差异并可调颜色阈值,diff url 直接比较两个 URL,支持限定选择器与自定义等待策略。
安全能力(均为可选,显式启用前不影响现有工作流)。 认证保险库把凭据加密存在本地、按名称引用,LLM 永远不会看到密码;--content-boundaries 用分隔符包裹页面输出,帮 LLM 区分工具输出与不可信内容;--allowed-domains 做域名白名单,会同时阻断子资源与 WebSocket/sendBeacon 并禁用 WebRTC 对等连接;--action-policy 用静态策略限制破坏性操作;--confirm-actions 要求敏感操作显式批准;--max-output 限制输出长度防止上下文泛滥。插件系统通过 agent-browser.plugin.v1 stdio JSON 协议在进程外运行,按 credential.read、browser.provider、launch.mutate、command.run 等能力声明权限。
接入方式。 mcp 通过 stdio 启动 MCP 服务器(默认 core 工具配置以保持上下文精简,--tools all 提供完整等价表面);chat 把自然语言指令转成 agent-browser 命令并流式返回 AI 响应,交互模式下输入 quit 退出;dashboard 在 4848 端口启动本地 Web 仪表盘,实时显示视口与命令流。
多引擎与云提供商。 默认引擎为 Chrome(来自 Chrome for Testing),可用 --engine 在 chrome 与 lightpanda 间切换,也支持通过 iOS WebDriver 控制 Safari。-p/--provider 可接入 Browserless、Browserbase、Browser Use、Kernel、AgentCore 等云浏览器。
效果预览

工作方式
运行机制是「CLI + 守护进程」:CLI 解析命令并与守护进程通信,守护进程持有浏览器实例并通过 CDP 驱动。守护进程在无命令、无仪表盘输入 1 小时后保存配置的恢复状态、关闭浏览器并退出,避免未调用 close 就崩溃的集成无限泄漏进程;下一个命令会启动新守护进程并恢复状态。可用 --idle-timeout(如 30s、5m、1h)或 AGENT_BROWSER_IDLE_TIMEOUT_MS 调整,0 表示禁用。有头浏览器、Safari/iOS WebDriver 会话、用户附加的浏览器默认不受空闲关闭影响。
会话隔离。 每个 --session 拥有独立的浏览器实例、Cookie 与存储、导航历史、认证状态。session list 查看活动会话,session id --scope worktree --prefix xxx 可生成稳定的工作树范围会话 ID。
认证复用。 提供多种持久化登录状态的方式:Chrome 配置文件复用(--profile,复制为只读快照)、持久配置文件目录、--session + --restore 自动保存/恢复、从已登录的 Chrome 会话导入(--auto-connect 配合 state save)、状态文件(--state)以及认证保险库(auth save / auth login)。会话状态在关闭、空闲超时和守护进程关闭时保存,也会按 AGENT_BROWSER_AUTOSAVE_INTERVAL_MS(默认 30000,0 表示仅关闭时保存)定期保存。
配置优先级。 用户级 ~/.agent-browser/config.json → 项目级 ./agent-browser.json → AGENT_BROWSER_* 环境变量 → CLI 标志。配置文件用 camelCase 键,未知键会被忽略以保持向前兼容,可用 $schema 指向 https://agent-browser.dev/schema.json 获得 IDE 补全。
你需要提供
- Chrome。 运行
agent-browser install从 Chrome for Testing(Google 官方自动化渠道)下载。它会自动检测已有的 Chrome、Brave、Playwright 和 Puppeteer 安装;守护进程不需要 Playwright 或 Node.js。 - 首次使用前建议自检。
agent-browser doctor会检查环境、Chrome 安装、守护进程状态、配置文件、加密密钥、提供商与网络可达性,并跑一次实时无头启动测试,--fix可执行破坏性修复。 - 可选凭据。 云提供商需要对应的 API Key 或凭据(如
BROWSERLESS_API_KEY、BROWSERBASE_API_KEY、BROWSER_USE_API_KEY、KERNEL_API_KEY,AgentCore 走 AWS 凭据链);AI 聊天需要AI_GATEWAY_API_KEY(默认模型anthropic/claude-sonnet-4.6)。 - 可选环境要求。 iOS 提供商需要 macOS、Xcode 与 Appium;Linux 上无显示器使用
--headed需要 Xvfb(缺失时需AGENT_BROWSER_NO_XVFB=1退出);Linux 上用 WebGPU 需要libvulkan1与mesa-vulkan-drivers。 - 配置项(可选)。 如需状态加密,设置 64 位十六进制密钥
AGENT_BROWSER_ENCRYPTION_KEY(可用openssl rand -hex 32生成)。
你会获得
- 页面快照(带引用的无障碍树)与结构化
--json输出 - 截图(整页、注释截图、JPEG 质量控制)与 PDF 文件
- 智能体友好的页面文本(markdown 或从 HTML 提取的可读文本)与
llms.txt链接 - 网络请求详情与 HAR 录制文件
- 追踪文件、Chrome DevTools 性能分析文件(.json)、控制台与页面错误列表
- axe-core 无障碍审计报告(含影响等级、规则 ID、修复指导 URL 与失败节点选择器)
- React 组件树/props/hooks/state/渲染分析结果与 Web Vitals 指标
- 快照与截图的差异结果(含差异图)
- 可复用的认证状态文件(可选 AES-256-GCM 静态加密)
使用示例
快速开始:
agent-browser open example.com
agent-browser snapshot # 获取无障碍树及引用
agent-browser click @e2 # 通过快照中的引用点击
agent-browser fill @e3 "test@example.com" # 通过引用填写
agent-browser get text @e1 # 通过引用获取文本
agent-browser screenshot page.png
agent-browser close也支持传统选择器与语义定位器:
agent-browser click "#submit"
agent-browser fill "#email" "test@example.com"
agent-browser find role button click --name "Submit"推荐给 AI 的工作流:
agent-browser open example.com
agent-browser snapshot -i --json # AI 解析树和引用
agent-browser click @e2
agent-browser fill @e3 "input text"
agent-browser snapshot -i --jsonMCP 客户端配置:
{
"mcpServers": {
"agent-browser": {
"command": "agent-browser",
"args": ["mcp"]
}
}
}chat 模式(需配置 AI Gateway):
agent-browser chat "open google.com and search for cats" # 单次执行
agent-browser chat # 交互式 REPL
agent-browser --model openai/gpt-4o chat "take a screenshot" # 覆盖模型域名白名单与输出限制(安全 AI 部署):
agent-browser --allowed-domains "example.com,*.example.com" open example.com
agent-browser --content-boundaries --max-output 50000 snapshot


