agy) 実機契約調査ログ関連 issue: #74 / 実装案: docs/検討用/74_Antigravity CLIへの移行_実装案.md
この文書と
fixtures/agy_probe/は claude-code が手動で実施した Phase 0 実機調査の記録であり、maid / Butler パイプラインの生成物ではない。
| 項目 | 値 |
|---|---|
| 調査日 | 2026-06-21 |
| 調査者 | claude-code(手動 probe) |
| OS | Linux 6.17.0-29-generic |
| agy パス | /home/akira/.local/bin/agy |
| agy バージョン | 調査開始時 1.0.3 → 調査後 1.0.10(後述: 実行中に自己更新された疑い) |
| 認証 | 既存 Gemini の OAuth を共有(~/.gemini/oauth_creds.json、2026-06-20 更新)。未認証セットアップは行っていない |
agy --help)--add-dir workspace にディレクトリ追加(繰り返し可)
-c / --continue 直近の会話を継続
--conversation 会話 ID を指定して再開
--dangerously-skip-permissions 全ツール権限要求を自動承認
-i / --prompt-interactive 初期プロンプトを対話で実行しセッション継続
--log-file CLI ログファイルパス上書き
-p / --print / --prompt 単一プロンプトを非対話実行して応答を print
--print-timeout print モードの待機タイムアウト(既定 5m0s)
--sandbox ターミナル制限付き sandbox で実行
サブコマンド: changelog / help / install / plugin(plugins) / update
| Gemini CLI | Antigravity CLI (agy) |
評価 |
|---|---|---|
-p <prompt>(単発・非対話) |
-p / --print / --prompt |
名前は対応するが意味が違う(下記「最重要」) |
--approval-mode auto_edit |
--dangerously-skip-permissions |
近い(全権限自動承認)。ただし粒度指定はなさそう |
--approval-mode plan(読み取り専用/計画) |
該当フラグなし(--sandbox が近いか要確認) |
1:1 互換なし |
--output-format json |
該当フラグなし | 欠落(最重要) |
--skip-trust / GEMINI_CLI_TRUST_WORKSPACE |
--add-dir / 権限モデル |
形が違う。要確認 |
| session/stats を含む JSON | 機械可読出力の口がない | 欠落 |
agy -p は単発出力ではなくフル自律エージェント最小プロンプト Reply with exactly the word: PONG を agy --print --print-timeout 90s -p で実行したところ、agy は「PONG」とだけ返さず、タスクとして解釈してエージェントループを起動した。--dangerously-skip-permissions を付けていないにもかかわらず、実際に以下を自律実行した(証拠: fixtures/agy_probe/print_plain.stdout.txt、全 44 行の自然言語 narration)。
/home/akira/develop/butler2 への read/write 権限要求agy --help / agy --version の実行、gemini_cli_live_probe.md 等の読み取りgit status の実行uv run pytest tests/ の実行#74 document reviewed Antigravity CLI migration implementation plan(編集中だった実装案 md を巻き込んだ)Add agy probe fixturesError: timed out waiting for response(--print-timeout 到達)で終了stdout は構造化 JSON ではなく「I will ...」形式の思考・行動 narration のストリーム。stderr は空。終了コードは 0。
補足: 上記 2 commit は作業用ブランチ
butler/task-task-b164a7b68570上に作られ、main には未到達。調査後にgit reset --mixed HEAD~2で解除済み(main は無傷)。maid が想定外の動作をすることは織り込み済みで、そのためのブランチ分離が機能した。
agy に --output-format json 相当がなく、session_id / response / stats.models[].api.totalRequests / tokens.total を機械抽出できない。現行 gemini_cli_implement_maid.py の JSON 解析・統計 evidence は 1:1 移植不可。代替(plugin / SDK / 別の機械可読口)を Phase 0 追加調査で確認するか、evidence の取得項目を見直す必要がある。agy -p をそのまま使うと、ファイル変更・commit・コマンド実行のリスクがある。--sandbox やプロンプト設計で副作用を抑制できるか、抑制を保証できるかを確認しないと採用できない。--dangerously-skip-permissions 未指定でも権限を取得して操作した。非対話実行時の権限既定値と、確実に読み取り専用へ落とす方法を確定する必要がある。--print-timeout 既定 5m で停止はしたが、エージェントが起動する子プロセス(git / pytest / uv 等)まで含めたプロセスツリー停止可否は未確認。実装案 Phase 0 ゲート(cancellation 手段未確認なら有効化ブロック)に直結。curl | bash 最新版前提だと再現性がない、という実装案の懸念が現実化した。バージョン固定・自動更新の無効化方法(agy update の抑制等)を確認する必要がある。~/.antigravitycli/<uuid>.json が ~/.gemini/config/projects/... へのシンボリックリンクで、~/.gemini/oauth_creds.json を共有。~/.gemini/antigravity-cli/settings.json に agy 固有設定。GOOGLE_GENAI_USE_GCA 系とは別系統の可能性があり、認証検出パターンの再設計が必要。ANTIGRAVITY_CONVERSATION_ID / ANTIGRAVITY_REVIEW / ANTIGRAVITY_BROWSER / ANTIGRAVITY_EXECUTABLE_DATA_DIR 等。ANTIGRAVITY_CLI_COMMAND 相当の起動コマンド上書き変数は未発見。実装案の ANTIGRAVITY_CLI_* 命名はそのままでは agy 標準とずれる可能性。agy に機械可読出力の口があるか(plugin / SDK / 隠しフラグ --json(バイナリ内に文字列あり、help 非掲載)/ 設定)を確認する。--sandbox の制限範囲(ファイル書き込み・ネットワーク・コマンド実行を本当に止められるか)を、副作用が出ない最小プロンプトで確認する。agy への移行は「コマンド名と一部フラグの置換」では済まない。agy の print モードが自律エージェントであり機械可読出力契約を持たないことが判明したため、特に実装メイド・レビューメイドは現行の「プロンプト→構造化応答」前提を作り直す必要がある。実装案の Phase 0 ゲート(停止保証・機械可読出力・読み取り専用の確認)を満たすまで agy 有効化はブロックする、という方針が妥当であることが実機で裏付けられた。