agent-browser 是一个用于浏览器自动化的命令行工具,主要面向 AI 智能体,让智能体能够与网站进行交互。它通过 CDP 直接使用 Chrome/Chromium。安装方式有三种:npm i -g agent-browser、brew install agent-browser 或 cargo install agent-browser,随后运行 agent-browser install 下载 Chrome。
用途
该工具适用于需要与网站交互的场景,例如导航页面、填写表单、点击按钮、截图、提取数据、验证页面变化等。它既可以作为 AI 智能体的操作入口,也可以用于常规的浏览器自动化任务。
核心工作流
每次浏览器自动化遵循同一模式:第一步导航,使用 agent-browser open <url>;第二步快照,使用 agent-browser snapshot -i 获取元素引用(如 @e1、@e2);第三步交互,使用这些引用执行 click、fill、select 等操作;第四步重新快照,在导航或 DOM 变化后获取新的引用。
命令可以用 && 在单个 shell 调用中链式执行。由于浏览器通过后台守护进程在命令之间保持状态,链式调用是安全的,且比分开调用更高效。当不需要先读取中间命令输出时适合链式调用,例如 open + wait + screenshot;需要先解析输出时,例如先 snapshot 发现引用再交互,则应分开执行。
主要能力
导航方面提供 open(别名 goto、navigate)和 close。快照方面提供 snapshot -i 获取带引用的可交互元素,snapshot -i -C 包含 cursor-interactive 元素,snapshot -s "#selector" 限定 CSS 选择器范围。交互方面支持 click(含 --new-tab)、fill、type、select、check、press、keyboard type、keyboard inserttext、scroll 等。信息获取方面支持 get text、get url、get title、get cdp-url。等待方面支持等待元素、网络空闲(--load networkidle)、URL 模式、固定毫秒数、文本出现或消失、元素隐藏等。下载方面支持 download、wait --download 以及设置默认下载目录。视口与设备模拟方面支持 set viewport(可带 scale 参数)、set device。捕获方面支持 screenshot(含 --full、--annotate、自定义目录与格式质量)和 pdf。剪贴板方面支持 read、write、copy、paste。对比方面支持 diff snapshot、diff screenshot、diff url。
身份验证
工具提供多种登录自动化方案:从用户正在运行的 Chrome 导入认证状态(--auto-connect 配合 state save);使用持久化 profile(--profile);使用会话名自动保存和恢复 cookies 与 localStorage(--session-name);使用认证保险库(auth save、auth login,凭据加密存储);以及手动保存和加载状态文件(state save、state load)。状态文件以明文包含会话令牌,应加入 .gitignore 并在不再需要时删除,可设置 AGENT_BROWSER_ENCRYPTION_KEY 进行静态加密。
常用模式
文档给出了表单提交、认证保险库、状态持久化认证、会话持久化、数据提取(含 --json 输出)、并行会话(--session 与 session list)、连接已有 Chrome(--auto-connect 或 --cdp 端口)、深色模式(--color-scheme dark、环境变量或 set media)、视口与响应式测试、视觉浏览器调试(--headed、highlight、inspect、record、profiler)、本地文件(file:// URL 配合 --allow-file-access)、iOS 模拟器(-p ios,含 device list、tap、swipe,需要 macOS、Xcode、Appium)等。
安全
所有安全特性均为可选开启。默认情况下,agent-browser 不对导航、操作或输出施加任何限制。可选能力包括:内容边界(--content-boundaries,用于帮助 LLM 区分工具输出与不可信页面内容)、域名允许列表(AGENT_BROWSER_ALLOWED_DOMAINS,支持通配符,同时阻止子资源、WebSocket 与 EventSource 连接)、操作策略(AGENT_BROWSER_ACTION_POLICY 策略文件,可默认拒绝并允许特定动作;认证保险库操作会绕过操作策略但域名允许列表仍然适用)、输出限制(AGENT_BROWSER_MAX_OUTPUT 防止大页面导致上下文过载)。
超时与慢页面
默认超时为 25 秒,可通过 AGENT_BROWSER_DEFAULT_TIMEOUT 环境变量(毫秒)覆盖。对于慢网站或大页面,建议使用显式等待而非依赖默认超时,例如等待网络空闲、等待特定元素、等待 URL 模式、等待 JavaScript 条件或固定时长。
适用场景与限制
该工具适合需要浏览器交互的 AI 智能体任务,以及表单填写、数据提取、视觉回归测试、staging 与生产对比、移动端布局测试、iOS 模拟器测试等场景。使用其高级能力需要满足相应环境要求:iOS 模拟器需要 macOS 与 Xcode、Appium;连接已有 Chrome 需要启用远程调试;本地文件访问需要 --allow-file-access。状态文件如未加密则以明文保存令牌,需要注意保管。其余关于价格、收费、平台支持范围与效果的信息,资料中暂未提供。