ネイティブモード(実験的)
agent-browser には、実験的なネイティブな Rust ダイヤンが含まれており、Chrome と直接 Chrome DevTools Protocol (CDP) を介して通信することで、完全に 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 エクスポート は利用できません
- ネットワークルートのインターセプト は、Playwright のルート API ではなく、CDP の Fetch ドメインを使用しています
モード間の切り替え
ネイティブダムと Node.js ダムは同じセッションソケットを共有しています。同じセッションに対して両方を同時に実行することはできません。切り替える前に現在のダムを閉じてください:
agent-browser close
export AGENT_BROWSER_NATIVE=1
agent-browser open example.com