ANTIGRAVITY LABEN
記事一覧/連携・プラグイン
連携・プラグイン/2026-07-11上級

許可を尋ねられても、答える人がいない — 統一パーミッションを無人実行の契約として書く

v2.2.1 の統一パーミッションは対話を前提にしています。深夜に走るスケジュール実行では、その前提が崩れます。allow / deny / queue の三分法でポリシーを事前宣言し、無人でも止まらない契約として書き下す設計をまとめました。

Antigravity355統一パーミッションスケジュール実行10無人運用7権限設計9

プレミアム記事

深夜3時に走らせていたスケジュール実行が、朝になっても終わっていませんでした。ログを開くと、最後の1行で止まっています。「このファイルへの書き込みを許可しますか?」。答える人は、そこにいませんでした。

v2.2.1 で入った統一パーミッション体系は、エージェントの操作を一元的に制御できる、とても素直な仕組みです。ただしその素直さは「誰かが画面の前にいて、許可か拒否を押せる」という前提の上に立っています。個人開発で夜間や早朝にエージェントを回す場面が増えるほど、この前提はそっと外れます。今日はその外れ目を埋める設計を、私が実際に組んだ形でお話しします。

対話を前提にした仕組みを、無人の時間に持ち込むと何が起きるか

統一パーミッションの既定挙動は、未知の操作に出会ったときに「尋ねる」ことです。対話セッションなら、これは正しい。判断を人に返すのは安全設計の基本です。

問題は、尋ねる相手がいない時間帯にこの挙動がそのまま動くことにあります。非対話(headless / スケジュール)で走るエージェントがプロンプトを出すと、応答が返らず、タイムアウトするか、最悪は無応答のまま滞留します。私の環境では、滞留したプロセスがロックを握ったまま次回起動を巻き込み、二晩分のジョブが連鎖して詰まりました。手が止まったのは一箇所なのに、被害は横に広がります。無人運用でいちばん見落としやすい落とし穴が、この連鎖でした。対処は、監視を足すことではなく、実行時に尋ねる設計そのものを見直すことにあります。

ここで「全部許可」に倒すのは簡単ですが、それは統一パーミッションを入れた意味を捨てる判断です。無人だからこそ、許す範囲は狭く、しかし止まらないように書きたい。両立させるには、実行時に尋ねる代わりに、実行前に答えを決めておく必要があります。

無人実行の契約 — allow / deny / queue の三分法

鍵になったのは、判断を二択にしないことでした。対話では allow か deny の二択で足ります。人がその場で考えられるからです。無人では、この二択がどちらも痛い。allow に倒せば危険な操作まで素通りし、deny に倒せば正当な作業まで落ちます。

そこで三つ目の出口を用意します。queue(保留)です。

判定実行時の挙動意味
allowそのまま実行可逆で影響範囲が閉じた操作。事前に安全だと言い切れるもの
deny実行せず中止し記録無人で決して踏ませたくない操作。本番運用への破壊的変更・資格情報の読み出しなど
queue実行を保留し、翌朝の判断へ回す安全とも危険とも言い切れない操作。人の目を一度だけ通したいもの

無人実行の契約とは、起こりうる操作を、この三つのいずれかへ事前に写像しておく約束のことです。エージェントは実行時に「尋ねる」代わりに、契約を引いて「調べる」。プロンプトは出ません。だから止まりません。

判断の軸は権限の名前ではなく、可逆性と影響範囲に置きました。読み取りやワークツリー内の変更は allow、ネットワーク越しの副作用や共有資源への書き込みは queue、破壊的操作と秘密情報は deny。この線引きは、統一パーミッションが列挙する操作カテゴリと素直に対応します。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
統一パーミッションを allow / deny / queue の三分法で事前宣言するマニフェスト設計
「尋ねられたはずの操作」を残す監査ログと、翌朝の再入場ダイジェスト
30夜のスケジュール実行で計測した、デッドロック件数と queue の内訳
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

連携・プラグイン2026-07-19
起動を止める一つのファイル — config.json の破損に備える設定健全性ガード
Antigravity 2.3.1 は config.json が空または壊れていると起動できない不具合を修正しました。修正されたのは症状で、壊れる原因は残ります。スケジュール実行の直前に設定を検証し、良い状態を控え、壊れていれば戻す3層のガードを、動くコードと個人運用の実測でまとめます。
連携・プラグイン2026-08-03
サーバーごとに秒数を書く前に測ったこと — MCP の接続と呼び出しは 486 倍違っていました
2.4.3 で MCP サーバーごとにタイムアウトの秒数を指定できるようになりました。何秒が妥当かを決めるために stdio サーバーを自作して境界別に実測し、単一の値では覆えない理由と、いま設定に書いている値の決め方をまとめます。
連携・プラグイン2026-07-28
MCP を束ねると read_file が 3 つになる — ツール名の衝突を起動前に落とす
複数の MCP サーバーを束ねるとツール名は静かに衝突します。5 サーバー 21 ツールの構成で 43% が衝突していた実測と、起動前に検出して決定的な別名を割り当てる Python プリフライトの設計をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →