原生模式(实验性)
agent-browser 包含一个实验性的原生 Rust 守护进程,通过 Chrome DevTools 协议(CDP)直接与 Chrome 通信,完全消除了对 Node.js 和 Playwright 的依赖。
启用原生模式
原生模式为可选功能。可通过 --native 标志或 AGENT_BROWSER_NATIVE 环境变量启用。
CLI 标志
agent-browser --native open example.com
agent-browser --native snapshot
agent-browser --native close环境变量
设置 AGENT_BROWSER_NATIVE=1 可避免每次命令都传递标志:
export AGENT_BROWSER_NATIVE=1
agent-browser open example.com
agent-browser snapshot
agent-browser close配置文件
在 agent-browser.json 中添加 "native": true:
{"native": true}架构对比
| 默认(Node.js) | 原生(--native) | |
|---|---|---|
| 运行时 | Node.js + Playwright | 纯 Rust 可执行文件 |
| 协议 | Playwright 协议 | 直接 CDP / WebDriver |
| 安装大小 | 较大(Node.js + npm 依赖) | 较小(单个二进制文件) |
| 浏览器支持 | Chromium、Firefox、WebKit | Chromium、Safari(通过 WebDriver) |
| 稳定性 | 稳定 | 实验性 |
支持的功能
原生模式中支持所有核心命令:
- 导航:
open、back、forward、reload - 交互:
click、fill、type、press、hover、select、check、uncheck、scroll、focus、clear、upload、drag - 观察:
snapshot、screenshot、eval、get text/html/value/attr/count/box/styles、is visible/enabled/checked - 状态:
cookies get/set/clear、storage local/session、state save/load/list - 标签页:
tab new/list/close、标签页切换 - 模拟:
set viewport、set device、set geo、用户代理、时区、区域设置 - 流式传输:WebSocket 屏幕广播和远程输入
- 差异比对:
diff snapshot、diff url - 录制:
record start/stop - 性能分析:
profiler start/stop、trace start/stop
已知限制
- Firefox 与 WebKit 尚未支持(仅支持 Chromium 与 Safari)
- Playwright 跟踪格式 不可用(原生跟踪使用 Chrome 内置的跟踪功能)
- HAR 导出 不可用
- 网络路由拦截 使用 CDP Fetch 服务端口,而非 Playwright 的路由 API
在模式间切换
原生守护进程与 Node.js 守护进程共享相同的会话套接字。无法同时运行同一会话的两个守护进程。切换前请先关闭当前守护进程:
agent-browser close
export AGENT_BROWSER_NATIVE=1
agent-browser open example.com