郭立 (leeguoo)

# chrome-useのマルチエージェント隔離

chrome-useが1つの本物のChromeを複数のagentで共有しながら、session、タブグループ、拡張機能によって干渉を防ぐ仕組みを説明します。

2026年7月2日 · 記事 · 公開

このページの目次

chrome-useの売りうりは、agentにあなたのこの1つ本物ほんもののブラウザを使わせるつかわせることです。ただし、この売りうりには厄介やっかい問題もんだいもついてきます。新しいあたらしいブラウザを開くひらくツールなら、タスクごとに独立どくりつしたブラウザがあり、もともと互いたがい干渉かんしょうしません。chrome-useはそのぎゃくで、いくつものagentにあなた本人ほんにんまで加わってくわわって同じChromeの中で同時どうじ操作そうさすることがあります。誰が誰のタブをクリックしたのか、誰が誰のページを別の場所へ移動いどうさせたのか。この問題もんだい解決かいけつしなければ、「あなたのブラウザを使うつかう」は災難さいなんになってしまいます。

1つのChromeウィンドウの中に3つの色付きタブグループがある:agent A、agent Bがそれぞれ1グループ、あなた自身のタブが別グループ;2つの小さな黒いagentがそれぞれ自分のグループだけをクリックし、あなたのタブには触れない

問題もんだい想像そうぞうより具体的ぐたいてき

たとえば、あなたがChromeでドキュメントを読んでよんでいて、うらでは2つのagentが動いてうごいているとします。1つはSlackメッセージを確認かくにんし、もう1つはどこかの管理画面かんりがめんのデータを取ってとっています。三者さんしゃとも、この1つのブラウザの中にいます。

もしそれぞれが区別くべつなく「現在げんざいのタブ」を操作そうさしたら、すぐに混乱こんらんします。agent Aが開いたひらいたログインページを、agent Bが自分の対象たいしょうだと思っておもってクリックしてしまう。あなたが読んでよんでいるタブが、どこかのagentによって別の場所へ移動いどうさせられてしまう。新しいあたらしいブラウザを開くひらく方式ほうしきには、この問題もんだいはありません。それぞれが別々のプロセスを持ってもっているからです。chrome-useが「1つの本物ほんもののブラウザを共有きょうゆうする」という前提ぜんていで同じような非干渉ひかんしょう得るえるには、別の仕組みしくみ必要ひつようです。

解決策かいけつさく:「誰が開いたひらいたか」で隔離かくりする

chrome-useは、agentごとにブラウザを1つ渡すわたすのではありません。同じChromeの中で、所属しょぞくによって切り分けますきりわけます。各--session <名前>には3つのものが与えられますあたえられます色付きタブグループ、つまりChrome上でどのグループがどのagentのものか一目でわかるもの、専用せんようのバックグラウンドdaemon、そして「自分が作成したタブだけを操作する」という鉄則てっそくです。

こうして三者さんしゃは、それぞれ自分の領域りょういき動きますうごきます。agent AのページはAのタブグループに、agent BのページはBのグループに入り、あなた自身のタブには誰も触れませんふれません。agentごとに名前なまえ付けるつける必要ひつようすらありません。指定していしなければ、agentに基づいてもとづいて安定あんていしたsession名が自動的じどうてき派生はせいされます。session内のタブには安定あんていしたid(t1t2…、一度使ったつかったものは再利用さいりようしない)があります。そのため、「さっきのタブに戻ってもどって」のような操作そうさ確定的かくていてきで、番号ばんごう混ざりませんまざりません使い終わったらつかいおわったらchrome-use close(またはclose --all)でそのsessionのタブを片付けられかたづけられ、あなたの他のタブには触れませんふれません

書いておかないとつまずくトレードオフ

ここには重要じゅうよう細部さいぶがあります。公式こうしきドキュメントでは一言触れられてふれられていますが、見落とされみおとされがちです。このsession単位の隔離かくりは、「拡張機能接続」の経路でのみ成立します。生の--cdp <ポート>で直接つなぐ場合は、隔離されません。

理由りゆうは、隔離かくりがブラウザ拡張機能かくちょうきのうによってタブグループと所属しょぞく管理かんりしているからです。生のCDPポート接続にはこの層がなく、複数の接続からは同じタブの集合しゅうごうが見え、誰でも誰のタブでもクリックできます。この点は、以前書いたかいたElectronの記事の裏側うらがわにもつながります。Electronアプリでは--remote-debugging-port使うつかうしかなく(拡張機能を入れられない)、そのためElectron上では、この複数agentの隔離かくり手に入りません。そもそもその経路には、拡張機能による下支えしたざさえがないのです。

これは同時に、chrome-useがブラウザの場面ばめんで、手軽だからとデバッグポートへ直接つなぐのではなく、拡張機能とnative messagingを通すとおすことにこだわる理由りゆう説明せつめいしています。「リモートデバッグを許可きょかしますか」という確認かくにんを出さないことは表面的な利点りてんにすぎません。より実質的じっしつてきなのは、拡張機能という経路だからこそ、「1つの本物ほんもののブラウザ上で複数のagentがそれぞれ独立どくりつして動くうごく」ことを支えられるささえられる、という点です。

ついでにもう一層:ページ内でも隔離かくり

隔離かくりはタブのレベルだけではありません。chrome-useがページに注入ちゅうにゅうする操作そうさは、隔離された世界(isolated world)の中で実行じっこうされます。ページのDOMは読めますよめますが、ページ自身のJSグローバル変数へんすうには触れられませんふれられません利点りてん双方向そうほうこうです。あなたの自動化じどうかロジックがページスクリプトのグローバルを誤ってあやまって踏むふむことがなく、ページスクリプト側も、あなたが何を注入ちゅうにゅうしたのかを検知けんちできません。これは「アンチスクレイピングに識別しきべつされない」ことと同じ線上せんじょうにあります。痕跡こんせきは少ないほどよいのです。

いつ必要ひつようになるのか

agentが1つ、タスクも1つなら、実はこうしたことを考えるかんがえる必要ひつようはありません。デフォルトの自動じどうsession名で十分じゅうぶんです。本当に意識いしきすべきなのは、複数のagentを**並行へいこう**して走らせはしらせ始め、しかもそれらがログイン済みずみのあなたの1つのブラウザを共有きょうゆうするときです。たとえば、常駐アシスタントがメッセージを送受信そうじゅしんしているところへ、あなたが一時的に別のagentへ調査ちょうさ頼むたのむような場合です。このとき、それぞれに--session分けてわけておけば、三者さんしゃ(2つのagentとあなた)が同じChrome内で同時に作業さぎょうしても衝突しょうとつしません。

結局のところ、新しいあたらしいブラウザを開くひらくツールは、「ブラウザをいくつも起動きどうする」ことで隔離かくり得てえています。chrome-useは、「あなたのこの1つの本物ほんもののブラウザを使うつかう」ことを維持いじしながら、所属しょぞくとタブグループによって隔離かくり組み込んでくみこんでいます。前者は手軽です。後者が得るえるものは、あなたのログイン状態じょうたい一式を、複数のagentがそのまま使えるつかえることです。それぞれがログインし直す必要ひつようはありません。

← 前の記事
記事を削除したのに Google にしつこく残る:1つのリダイレクトが死んだリンクを固定していた
次の記事 →
agent にブラウザを選ぶ:Playwright 系と chrome-use は同じものではない

コメント

コメントは即時公開されますが、ポリシー違反時は非表示になる場合があります。

最大 1000 文字。