ドキュメント

セキュリティとデータ

ローカル実行、外部サービスとAsk転送への送信、承認、Cockpit Hooks、認証情報、添付、Browser Identity、Remote Accessの保存境界を説明します。

対象
DesktopPWACLI
WindowsmacOSLinux
ゲストAGIラボ会員

最終検証 2026-09-04 · v4.69.0

Markdown

AGI Cockpitは、タスクとエージェントプロセスを利用者のコンピューターで実行します。ただし、選択したAIプロバイダー、Webサイト、AGIラボの認証・会員確認、匿名利用状況など、機能に必要な通信は外部サービスへ送られます。

ローカルに残るもの

タスク状態、会話履歴、Autorun、Fleet、Cockpit Hooksの定義と実行履歴、テンプレート、CLIランタイム情報、ログなどCockpitの主要データは~/.agi-tools/data/cockpit配下に保存されます。添付やElectronのブラウザープロファイルなど一部データはOSのアプリデータ領域に保存されます。作業ファイルは選択したプロジェクト、一時フォルダ、Git Worktreeにあります。AntigravityのネイティブUIへ送る作業場所外の画像だけは、読み取り用の一時コピーも作業場所内へ置かれます。

エージェントプロセスはその作業場所を読み書きします。Cockpit内に表示されていないファイルでも、選択した承認モードとエージェントの権限でアクセスできる場合があります。タスクへ必要なディレクトリだけを指定してください。

外部へ送られるもの

指示、会話、添付、ファイル内容、ツール結果がAIプロバイダーへ送られる範囲は、選択したエージェント、UIモード、モデル、ツールに従います。Cockpit Agentでは選択したOpenRouter、OpenCode Go、OpenCode Zen、LM Studioなどの接続先が処理します。OpenCode GoとOpenCode Zenは別のAPI keyを使います。LM Studioをローカルで動かすか別ホストで動かすかは設定したURLで決まります。

アプリ内ブラウザーで開いたサイトには、入力、アップロード、Cookie、WebAuthnなど通常のブラウザー通信が発生します。Remote Accessでは接続した端末とCockpitの間でタスク、Ask、Autorunの情報が転送されます。

「設定」→「Ask通知」でDiscordまたはSlackへの転送を有効にすると、Askの概要、質問、選択肢、タスク名、Cockpitへのlinkと、許可した場合はAskの画像・動画を、選択したチャンネルへ送ります。チャンネルを閲覧できるメンバーは投稿内容を読めますが、Cockpitが回答を受け付けるのは設定した一人のallowedUserIdだけです。転送は既定で無効で、CockpitからDiscord GatewayまたはSlack Socket Modeへ外向きに接続します。

ゲスト利用時の匿名データ

パッケージ版のゲスト利用では、ランダムなinstallation ID、アプリバージョン、1日単位のセッション確認、オンボーディングの到達・離脱・ゲスト選択・サインインのイベントと対象ステップをAGI Backendへ送ります。タスクの指示、会話、ファイル内容、プロジェクト名はこの匿名イベントに含めません。

送信に失敗したオンボーディング離脱イベントは、再送のためOSのアプリデータ領域へ一時保存されます。匿名イベントはパッケージ版のゲスト利用だけで送られます。サインイン済み利用では、認証セッション確認時にアプリバージョンを送ります。

承認とAskを区別する

supervisedaccept-editsfull-accessは、エージェントが利用できるツール操作の境界です。一回許可、常に許可、拒否が表示される場合は、操作内容、対象パス、コマンド、外部送信先を確認します。「常に許可」は同種操作へ継続して影響するため、範囲を理解できない場合は一回許可を選びます。

Askは人の方針判断を返す仕組みであり、ツール承認ではありません。Askで「公開する」を選んでも、OS、外部サービス、別のツールが要求する権限を自動的に付与しません。

Cockpit Hooksを安全に実行する

Cockpit Hooksは、登録したシェルアクションを利用者のローカル権限で自動実行します。エージェントの承認モードとは別の仕組みであり、Hookのアクションをsandboxへ制限しません。内容を理解し管理しているスクリプトだけを登録し、cockpit hooks testで明示的に試してから有効にしてください。任意コードをリモートへ登録できないよう、cockpit hooks--hostを受け付けません。

イベントの完全なJSONは標準入力へ渡されます。タスク名、作業場所、Askの概要、選択テキストなど一部の値は環境変数にも入ります。Hookが外部コマンドやネットワークサービスを呼ぶ場合、それらの値を外部へ送信できます。必要なイベントとフィルターだけに絞り、token、個人情報、ローカルパスを標準出力と標準エラーへ書かないでください。末尾4 KBは実行履歴へ保存され、設定画面とCLIから確認できます。

設定画面ではHookを無効化または削除できますが、削除しても既存の実行履歴は残ります。履歴は最大2,000行または2 MBでローテーションし、直近1,000行を保持します。macOSでグローバルホットキーから選択テキストを取得する場合はアクセシビリティ権限が必要です。権限がなくてもHookは実行されますが、選択値は空になります。実行数制限、タイムアウト、depth制限、circuit breakerは暴走を抑えるための保護であり、登録したコマンドの安全性を保証するものではありません。

認証情報を保存する

AGI Cockpit自身のtokenとAPIキーは、OSのKeychainまたはkeyringなど暗号化ストレージへ保存します。DiscordのBot tokenとSlackのBot token・App-level tokenもこの境界に含まれ、通常の設定値やstatus出力へ値を返しません。安全なストレージを利用できない場合、平文へ切り替えず保存を拒否します。削除に失敗した認証情報は利用を停止し、次回起動時に削除を再試行します。

名前付きエージェントプロファイルは認証を分離します。Antigravityは会話、ログ、キャッシュ、利用履歴をプロファイル専用homeへ保存します。macOSでは各プロファイルのOAuth tokenを専用Keychainへ保存し、そのKeychainが検索順の先頭であることをタスク開始前に確認します。ホストのlogin KeychainはGitHub CLIなどのため後段に残りますが、Antigravityの項目はprofile Keychainのplaceholderまたはtokenが先に解決します。WindowsとLinuxではOS keyring自体が共有されるため、host loginが全profileで使われます。profileごとのtoken fileへ分離したい場合は、先にdefaultアカウントから共有loginをlogoutします。

Antigravityのaccounts logoutは、--confirmなしで消去対象と共有範囲をpreviewします。名前付きprofileから実行してもhost loginは消さず、共有認証を使っている場合はdefaultアカウント側のlogoutを案内します。defaultのlogoutは、そのhost認証に依存するほかのprofile、通常のterminalで起動したAgy、同じhomeのGemini CLI認証にも影響し得ます。Cockpitが自動でlogoutすることはありません。Browser Identityはエージェントのアカウントプロファイルとは別です。

Browser Identityを分離する

Browser IdentityごとにCookie、キャッシュ、localStorage、権限、プロキシ認証、ブラウザーセッションが永続領域へ保存されます。タスクとAutorunは一つのIdentityを割り当てられ、指定しない場合はDefault Identityを使います。

Chromeからのimport-sessionは、表示中サイトのregistrable domainに属するCookieと、正確なoriginのlocalStorageを選択したIdentityへ取り込みます。sessionStorage、IndexedDB、拡張機能状態、device-bound認証、パスキー自体は取り込みません。

Identityのデータ消去はそのIdentityのセッションを閉じます。削除は永続データも削除します。実行中タスクやAutorunから参照されるIdentityは、置換先を指定しない限り削除できません。Default Identityは削除できません。

割り当てと削除の手順はBrowser Identityを参照してください。

添付とAskメディアを扱う

添付はCockpit管理領域へランダムな保存名で置かれ、拡張子、MIME、実サイズ、内容を検証します。1メッセージは最大8ファイル、1ファイル512MB、合計1GBで、JSONは25MBまでです。アーカイブと実行形式は受け付けません。

AntigravityのネイティブUIはDesktopとPWAの画像添付を直接扱います。画像が作業場所外にある場合、Cockpitは正規化した作業場所の.agi-cockpit-attachments配下へ、セッションごとのランダム名で一時コピーし、その中を.gitignoreで除外します。作業場所内にすでにある画像はコピーしません。シンボリックリンクなど実ディレクトリでないstaging rootをたどらず、セッション停止、CLI終了、アプリ終了時に対象セッションのコピーを削除します。次のセッション開始時には、実行中セッションが所有せず24時間以上経過したディレクトリも削除します。

この一時配置はAntigravityのsupervisedで作業場所外のファイル読み取りが拒否される境界を広げるものではありません。画像を作業場所内へ明示的に準備してから読み取らせる処理です。したがって、機密画像を添付すると作業プロジェクト内へ一時的に存在し、作業場所へ書き込めなければターンは失敗します。

Ask転送で、DiscordまたはSlackへ投稿したファイルを回答に添付する設定を有効にすると、許可した回答者が設定済みチャンネルへ投稿したファイルをCockpitの管理領域へdownloadし、該当Askの次の回答へ添付します。reply先がある場合はそのAskへ、ない場合は同じチャンネルの最新の未回答Askへ割り当てます。不要な場合はこの設定を無効にし、機密ファイルを共有チャンネルへ投稿しないでください。

ファイル名と内容は信頼済みの指示ではありません。チャットから開けるのは管理領域内の安全な形式だけで、実行形式、管理外パス、リモートfile URL、実行可能な内容を含み得るdata URLは直接起動しません。外部共有前に個人情報、ローカルパス、token、セッション情報を確認してください。

Fleetのcommand gateはstdout / stderr全量をRunのfleet-runs/<runId>/gates/へ試行ごとに保存し、20 MBを超える場合は先頭と末尾だけを残します。出力にはtoken、local path、テストfixture、個人情報が含まれ得ます。Fleetパネルまたはcockpit fleet outputで外部共有する前に確認し、不要な終端Runを削除する前には必要な診断証拠だけを安全な場所へ保存してください。

Remote Accessを保護する

推奨構成はTailscale限定とHTTPSです。Tailscale端末情報と6桁ペアリングコードで端末を認証し、失敗回数と有効期限を制限します。HTTPS証明書を取得できない場合にHTTPへ自動降格しません。

ローカルWi-Fiモードは通信が暗号化されず、明示確認後にだけ有効になります。公共または信頼できないネットワークでは使わないでください。Remote Accessを停止すると接続中セッションは終了し、standalone状態が保存されます。

詳細はリモートアクセスを参照してください。

App Surfaceを保護する

App Surfaceは一つの対象を一つのタスクへ排他的に接続します。Android実機への初回接続はAsk承認を要求し、secure fieldへのfillは拒否します。切断後も最後の画面が表示される場合がありますが、古い状態として操作を無効にします。

Cockpitは対象のアプリを起動、終了、インストールしません。タスクを完了または削除すると接続だけを解除し、対象アプリは終了しません。

接続と操作の手順はApp Surfaceを参照してください。

完了と削除を確認する

一時フォルダのタスクは完了時に作業場所が削除されます。DesktopでGit Worktreeのタスクを完了するとWorktreeを維持しますが、CLIのtask completeは既定で削除します。タスク削除、Fleet Runと関連タスクの一括削除、Identity削除は、履歴とローカルデータを失う可能性があります。

削除前に、対象ID、パス、Git状態、必要な成果、復旧方法を確認します。公開、外部送信、購入、権限変更などは、実行直前に利用者の承認を得てください。