原生模式(实验性)

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、WebKitChromium、Safari(通过 WebDriver)
稳定性稳定实验性

支持的功能

原生模式中支持所有核心命令:

  • 导航:openbackforwardreload
  • 交互:clickfilltypepresshoverselectcheckuncheckscrollfocusclearuploaddrag
  • 观察:snapshotscreenshotevalget text/html/value/attr/count/box/stylesis visible/enabled/checked
  • 状态:cookies get/set/clearstorage local/sessionstate save/load/list
  • 标签页:tab new/list/close、标签页切换
  • 模拟:set viewportset deviceset geo、用户代理、时区、区域设置
  • 流式传输:WebSocket 屏幕广播和远程输入
  • 差异比对:diff snapshotdiff url
  • 录制:record start/stop
  • 性能分析:profiler start/stoptrace 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