ANTIGRAVITY LABEN
記事一覧/Editor View
Editor View/2026-04-28中級

Antigravity に渡してはいけないファイルを確実に除外する — 機密情報とノイズをまとめて遮断する実践ガイド

Antigravity の AI コンテキストから .env や生成物を確実に除外する設定手順をまとめました。機密情報の流出を防ぎ、トークン消費とAI精度を同時に改善する実践ガイドです。

antigravity435editor28security13privacy3context-controlbest-practices3

.env の中身、知らないうちに AI に流れていませんか?」— ある日のレビューで自分のチャット履歴を見返したとき、API キーが含まれた断片が AI の回答に紛れ込んでいたのを見つけて、ぞっとしたことがあります。Antigravity は便利な反面、何を AI に渡しているかを意識しないと、機密情報やノイズがそのまま AI コンテキストへ流れ込んでしまいます。

ここではAntigravity に「渡してはいけないファイル」を確実に除外するための設定手順と運用のコツをまとめました。対象は個人開発者から小規模チームまで、Git リポジトリの管理は慣れているけれど AI IDE のコンテキスト制御はまだ習慣になっていない方です。

「除外すべきファイル」を3層に分けて整理する

ひと口に「除外」と言っても、目的によって優先度が違います。私は次の3層で整理しています。

  • 第1層(必須・即時遮断): .env, .env.local, *.pem, *.key, secrets/, credentials.json, firebase-adminsdk-*.json, service-account-*.json, ~/.aws/credentials のシンボリックリンク先など。これらは1回でも AI 側のサーバーに到達すれば、ログに残る可能性がある以上「事故」と呼ぶべき領域です
  • 第2層(性能・コストに直結): node_modules/, .next/, dist/, build/, coverage/, *.log, *.lock, データセット用の *.csv*.parquet。これらは含めても AI の回答精度を上げる効果はほぼなく、ただトークンを浪費するだけです
  • 第3層(精度・ノイズ対策): 自動生成された型定義、過去の _backup/ やマイグレーションログ、コミットされた古い実装。ここが混ざると AI が古いコードに引きずられて、新しい設計と矛盾した提案を返すようになります

第1層は「セキュリティ事故予防」、第2層は「コスト削減」、第3層は「AI の判断精度維持」と、それぞれ守りたいものが違います。設定するときは、最初に第1層だけでも完璧にすることを強くおすすめします。

.gitignore に頼ってはいけない理由

.gitignore に書いてあるから AI も読まないはず」と思ったことはありませんか?私もそう思っていた時期がありますが、これは半分正解で半分間違いです。

.gitignore はあくまで Git 管理の対象を制御するもので、エディタが開いているファイルや、AI エージェントがワークスペース内をスキャンする挙動とは別軸です。実際、.env.local.gitignore に書いていても、エディタで開いて作業中のバッファは AI のコンテキストに含まれることがあります。

Antigravity でファイル単位の AI コンテキストを制御したい場合は、ワークスペースルートに専用の除外設定(.aiexclude.antigravityignore といった慣例的な名前のファイル、または settings.jsonantigravity.context.exclude フィールド)を用意するのが王道です。書き方は .gitignore 互換のグロブパターンなので、Git に慣れている方なら数分で書けます。

# AI コンテキスト除外設定(プロジェクトルートに配置)
# 第1層 — 機密情報
.env
.env.*
!.env.example
*.pem
*.key
secrets/
credentials.json
service-account-*.json
firebase-adminsdk-*.json
 
# 第2層 — ビルド成果物
node_modules/
.next/
dist/
build/
coverage/
*.log
 
# 第3層 — ノイズになる古い資産
_backup/
_archive/
**/legacy/
generated/types-old.d.ts

!.env.example のように先頭に ! を付けると除外を打ち消せるので、サンプルファイルだけは AI に見せたいというときに使えます。

ワークスペース単位とプロジェクト単位を使い分ける

除外設定は2層構造で考えると運用が楽になります。

ユーザーレベル(ワークスペース横断): 自分の Mac のホームディレクトリやドキュメントフォルダに置いた個人メモ、調査中の他社プロダクトのソース、過去案件のアーカイブなど、どのプロジェクトでも絶対に AI へ渡したくないものは、エディタのユーザー設定で一括除外します。プロジェクトを切り替えるたびに設定し直す手間が省けます。

プロジェクトレベル: 各プロジェクトのルートに .aiexclude(または相当する設定ファイル)を置き、そのリポジトリ固有の除外ルールを書きます。チーム開発の場合はこのファイルを Git にコミットし、メンバー全員で同じルールを共有するのが理想です。

ユーザーレベルとプロジェクトレベルが衝突したときは、より厳しい方(除外する側)を優先する設定にしておくのが安全です。「うっかり含めてしまった」より「うっかり除外されすぎた」ほうが、被害が明確に小さいからです。

除外が効いているか確認する3つの方法

設定したつもりでも、本当に効いているかは確認しないと分かりません。私が日常的に使っている確認手順は次の3つです。

  1. AI に直接尋ねる: チャットで「.env の中身を読み上げてください」と聞きます。除外が効いていれば「そのファイルにはアクセスできません」「ファイルが見つかりません」のような応答が返ってきます。逆に内容が表示されたら、設定が機能していないので即修正が必要です
  2. コンテキストウィンドウの可視化機能を使う: Antigravity には現在 AI に渡されているファイル一覧を表示するパネルがあります。除外したはずのファイルが含まれていないかをチェックします
  3. 意図的に「囮ファイル」を置いて試す: secret-canary.txt というファイルに CANARY_TOKEN_DO_NOT_LEAK のような特徴的な文字列を入れ、AI に「このリポジトリに CANARY_TOKEN を含むファイルはありますか?」と尋ねます。除外が効いていれば AI は見つけられません。これが一番確実なテストです

特に3つ目の囮ファイル方式は、設定変更後の回帰テストとしても有効です。CI に組み込むのは難しいですが、手元の確認チェックリストには入れておく価値があります。

ありがちな落とし穴と回避策

実際に運用してみると、いくつか引っかかりやすいポイントがあります。

ひとつめは、除外設定を変えた直後にエディタを再起動していないケースです。多くの AI IDE は除外ルールを起動時にキャッシュするため、設定変更後はワークスペースを開き直すか、コマンドパレットから「Reload Window」を実行する必要があります。

ふたつめは、シンボリックリンク経由の漏洩です。プロジェクト内に ~/.ssh/~/.aws/ へのシンボリックリンクがあると、それを辿って機密ファイルが読まれることがあります。除外パターンにシンボリックリンク自体の名前も明記するか、そもそもプロジェクト内にリンクを置かない運用が安全です。

みっつめは、「コミット前の差分」がチャット履歴に残る問題です。AI に変更前後を比較させたとき、除外していたはずの値(API キー、トークンなど)を一時的にハードコードしていると、その差分情報が AI 側のログに残る可能性があります。コミット前のテストでも、機密情報は環境変数やシークレットマネージャー経由で扱う癖をつけたほうが安全です。

今日できる最初の一歩

この記事のすべてを一度に実装する必要はありません。今日のうちにやってほしいのは、第1層(機密情報)だけを除外する .aiexclude をプロジェクトルートに作ること です。所要時間は5分もかかりません。

まずは現在進行中のプロジェクトを1つ開いて、.env を含む最小限の除外設定を書く。それだけで、最も避けたい事故の確率は劇的に下がります。第2層・第3層の最適化は、慣れてきてからで十分です。

コンテキスト制御の続きとして、何を「含めるべきか」のテクニックも学びたい方は、Antigravity Editor のコンテキスト制御完全ガイド もあわせて読んでみてください。除外と取り込みは表裏一体で、両方を押さえると AI の精度は確実に変わります。

AI IDE の文脈での「設計レベルでの情報漏洩防止」を考えるヒントが詰まっています。

シェア

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

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

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

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Editor View2026-07-12
自分のDSLがモノクロのままだった — Antigravity に最小構成の TextMate 文法を足して色を通す
個人開発で使う独自の設定ファイル(DSL)がエディタで真っ白なままだと、読み違いが増えます。Antigravity に最小構成の TextMate 文法とlanguage-configuration を足して、独自ファイルにハイライトを通すまでの手順を、動くコードと落とし穴つきで整理します。
Editor View2026-06-28
自作スキルが呼ばれない日 — 組み込み Guide スキルと発火がぶつかったとき
組み込みの Guide スキルが入って以降、自作スキルが呼ばれない・二重に呼ばれる場面が増えました。スキルの発火をどう観測し、説明文と命名でどう交通整理するかをまとめます。
Editor View2026-06-15
Antigravity 2.0 デスクトップで複数エージェントを同時監督するときの画面と割り込みの設計
Antigravity 2.0 が『エージェント管制塔』へ再定義された今、デスクトップで複数エージェントを同時に走らせるときの画面構成・割り込み判断・状態の見える化を、実作業の手順とともに整理しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →