ネイティブモード(実験的)

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、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 エクスポート は利用できません
  • ネットワークルートのインターセプト は、Playwright のルート API ではなく、CDP の Fetch ドメインを使用しています

モード間の切り替え

ネイティブダムと Node.js ダムは同じセッションソケットを共有しています。同じセッションに対して両方を同時に実行することはできません。切り替える前に現在のダムを閉じてください:

agent-browser close
export AGENT_BROWSER_NATIVE=1
agent-browser open example.com