ANTIGRAVITY LABEN
記事一覧/Antigravity 基本
Antigravity 基本/2026-05-22中級

Antigravity の Workspace Indexing が大規模リポジトリで完了しないときの原因と対処

Antigravity でモノレポを開くとサイドバーの Indexing がいつまでも回り続けてエージェントが返答してくれない、というケースの原因と段階的な対処法をまとめます。

antigravity435indexing2monorepo6performance8troubleshooting88

個人開発で 2014年から積み上げてきた iOS / Android のアプリ事業は累計5,000万ダウンロードに達しましたが、そのぶんリポジトリも年々重くなりました。コードと素材を合わせると 12 GB を超え、node_modules を抜いても 380 万ファイル弱あります。このモノレポを Antigravity で開いた瞬間に、画面右下の Indexing のスピナーが 40 分回り続けたまま終わらず、エージェントに ./apps/wallpapers/src/store/category.ts を読ませようとしても「still indexing workspace」としか返ってこない、という状況に何度かぶつかりました。

廣川という同じ立場の個人開発者として、Antigravity の Workspace Indexing が大規模リポジトリで詰まる理由と、私自身が実務で落ち着いて使えるまでに辿り着いた対処の手順をまとめます。手元の環境は執筆時点で macOS 15.4 / Antigravity v0.34 / M2 Pro 32GB です。

症状の見分け方

Indexing が「重い」のか「壊れている」のかを切り分けることが最初のポイントです。次の三つはまったく違う問題なので、対処も別になります。

第一に、Indexing は走っているが時間がかかっているだけの状態。CPU の利用率が継続的に 200〜400% 程度、メモリは右肩上がりではなく一定、ディスク IO はずっと走っている、という挙動です。これは待てば終わります。

第二に、Indexing が CPU を食わずに止まっている状態。Activity Monitor で antigravity-helper (Renderer) のスレッドが Idle/Wait、Console.app に EAGAINEMFILE が並んでいるなら、これは外部要因で詰まっています。

第三に、Indexing が無限ループしている状態。CPU は高い、しかしファイル数がいつまで経っても進まありません。出力ログに同じパスが何度も書き出されている場合は、シンボリックリンクの循環や、書き込みファイルウォッチャと再インデックスが噛み合っていない可能性が高いです。

サイドバーのスピナーだけを見て判断するのは難しいので、Antigravity → View → Output → Antigravity Indexer を開き、最後の数十行が何を語っているかを必ず確認します。

原因 1: 自動除外の対象に入っていないキャッシュ群

Antigravity は .antigravityignore.gitignore を参照しますが、リポジトリ直下に置かれていない場合は反映されません。私のモノレポでは Xcode の DerivedData~/Library/Developer/Xcode/DerivedData から ./build/DerivedData にシンボリックリンクしており、ここに 4.2 GB / 90 万ファイルが積み上がっていました。これが除外対象に入っておらず、Indexer がそれを 1 ファイルずつ読み込もうとしていたため詰まっていたわけです。

対処は単純で、ワークスペース直下に .antigravityignore を一つ置き、よくある重い対象を一気に外します。

cat << 'IGNORE' > .antigravityignore
# Build artifacts
build/
dist/
out/
.next/
.turbo/
.cache/
 
# Native build outputs
DerivedData/
.gradle/
.cxx/
Pods/
android/.cxx/
android/app/build/
ios/build/
ios/Pods/
 
# Dependency caches
node_modules/
.pnpm-store/
.yarn/cache/
.yarn/install-state.gz
vendor/
.bundle/
 
# Media that won't help the agent
assets/raw/
assets/originals/
*.psd
*.sketch
*.fig
*.mp4
*.mov
 
# Database & coverage
*.sqlite
*.duckdb
coverage/
playwright-report/
test-results/
IGNORE

書き換えた後は Antigravity を再起動するか、コマンドパレット (⌘⇧P) から Antigravity: Reindex Workspace を実行します。再起動を挟まないと、古いインデックスがメモリに残ったまま走り続けて改善が見えないことがあります。

原因 2: シンボリックリンクの循環

node_modules をプロジェクト間で共有するために手動でシンボリックリンクを張っていたり、pnpm の workspace 設定が想定外のパスを指していたりすると、Indexer が同じディレクトリを延々と辿り直す状態になります。

確認は、ワークスペースのルートで find を打つのが速いです。

# Symlinkを全列挙
find . -type l -not -path "./node_modules/*" -not -path "./.git/*" \
  -exec ls -la {} \; 2>/dev/null
 
# 循環していそうなものだけ
find . -type l -not -path "./node_modules/*" \
  -exec sh -c 'realpath "$1" 2>/dev/null | head -c 200; echo " <- $1"' _ {} \;

不要なシンボリックリンクは削除するか、.antigravityignore で明示的に弾きます。私の場合は ./shared -> ../shared-lib の構造を pnpmworkspaceRoot に変更し、シンボリックリンクは置かない構成に直しました。Indexer の進行が安定しただけでなく、エージェントが import 文を読むときの推論精度も上がりました。

原因 3: ファイルディスクリプタ上限

macOS の EMFILE: too many open files は、Antigravity の Indexer ではかなりよく出るエラーです。デフォルトの ulimit -n は 256 で、これはモノレポに対しては足りません。

ulimit -n
# → 256 が返ってきたら確実に足りない

恒久的に上げるには ~/Library/LaunchAgents/limit.maxfiles.plist を作成して再起動するのが王道ですが、まず動かして検証したい場面が多いので、Antigravity を起動するシェルで都度設定する方法から試します。

# 一時的に引き上げ
ulimit -n 65536
 
# このシェルから Antigravity を起動
open -a "Antigravity" .

私の環境ではこれだけで Indexer が 24 分から 3 分に短縮されました。EMFILE を出さなくなったので、副次的にエージェントの read_file ツールがハングする現象も同時に消えました。

原因 4: アンチウイルス・バックアップソフトとの競合

Time Machine、Backblaze、企業配布の EDR が同じディレクトリを舐めていると、Indexer が読み込んだ直後にファイルロックを取られて読み込み直しが発生し、結果として CPU だけが食われて進まないことがあります。

対処はシンプルで、Antigravity が開いているリポジトリのルートを、これらのソフトウェアの除外対象に入れます。Time Machine の場合は System Settings → General → Time Machine → Options → Exclude these locations から追加できます。プロジェクトルート全体を除外して問題がないかは事業ポリシーによりますが、開発中に頻繁に書き換わる場所はバックアップ対象から外しても痛みは少ないことが多いです。

原因 5: GPU エンベディングの初期化に失敗している

Antigravity v0.32 以降はワークスペース全体の意味検索のためにローカルでエンベディングを生成しますが、Metal の初期化に失敗すると CPU フォールバックが走り、これが恐ろしく遅くなります。Output → Antigravity IndexerFailed to acquire Metal device, falling back to CPU のような行が出ていたら、これに該当します。

回避策は Settings → Antigravity → Indexer: Embedding ProviderLocal (Metal) から Remote (Google) に切り替えるか、もしくは検索を諦めて Disabled にする方法です。私はノマド作業中の通信品質を考えて Remote ではなく Disabled で運用しており、その場合はエージェントに対して read this file: <path> のように明示的にパス指定するスタイルになりました。検索精度は落ちますが、待ち時間が読めるので結果として作業時間は短くなりました。

段階的な復旧手順

ここまでの原因切り分けをチェックリストにすると、私はおおむね以下の順で消化しています。

  1. Antigravity: Reindex Workspace を一度実行する(一過性の不整合ならこれで解消する)
  2. Output → Antigravity Indexer を開き、最後の 50 行を読む
  3. .antigravityignore がリポジトリ直下にあるか確認し、ない場合は上の雛形を置く
  4. シンボリックリンクを find -type l で列挙し、循環していそうなものを除外する
  5. ulimit -n を確認し、256 のままなら 65536 まで引き上げて Antigravity を再起動する
  6. Time Machine / バックアップソフトの除外設定にリポジトリを追加する
  7. Embedding Provider を RemoteDisabled に切り替える
  8. それでも改善しなければ ~/Library/Application Support/Antigravity/Indexes/<workspace-hash> を削除して、まっさらな状態から作り直す

最後のインデックスキャッシュ削除は、上から順に試して最後の手段として使います。削除した後は数十分の再構築時間がかかるので、寝る前か離席前のタイミングを選ぶのが現実的でした。

予防策

私が普段気をつけているのは、新しいプロジェクトを Antigravity で開く前に .antigravityignore の雛形を必ず置く、という一点に尽きます。ビルド成果物は人間の目で見ないので、Indexer に読み込ませる意味はほぼありません。これだけで Indexing にかかる時間が一桁短くなる場合もあります。

もう一つは、エンタープライズ向けに配布された EDR が動いている会社の Mac で作業するときは、最初から Embedding Provider を Remote に倒しておくことです。Metal アクセスが許可されていない端末で延々と CPU フォールバックを引いて時間を溶かす、というのは何度かやってしまいました。

参考リンク

似た構造の問題に出くわすたびに、私自身もこの手順に立ち戻って一つずつ潰しています。同じ症状で困っている方の手間が、ほんの少しでも減りましたら幸いです。

シェア

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

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

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

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

関連記事

Antigravity 基本2026-05-31
Antigravity のエージェントが途中で 429 RESOURCE_EXHAUSTED と出して止まるときの原因と対処
Antigravity でエージェントに長いタスクを任せていると、途中で「429 RESOURCE_EXHAUSTED」と出して手が止まることがあります。これは API のレート制限・クォータ超過のサインです。私が自動運用の現場で踏んだ原因の切り分けと、再発させないための具体的な対処をまとめました。
Antigravity 基本2026-05-28
Antigravity の Google サインインが認証画面から戻らないときの原因と対処
Antigravity 起動直後に Google サインインを押したあとブラウザが回り続けてエディタ側に戻ってこない、という症状に何度も振り回されてきました。コールバックポート・サードパーティ Cookie・古いセッションファイル・プロキシの4観点で切り分け、確実に復帰させる手順をご紹介します。
Antigravity 基本2026-05-25
Antigravity の Agent が ssh / sudo / git rebase -i で固まる:TTY 不在問題の診断と恒久対策
Antigravity の Agent に作業を任せていると ssh・sudo・git rebase -i のようなインタラクティブコマンドで突然画面が止まる。原因は Agent のターミナルが PTY を割り当てない点にあります。診断手順と私が現場で使っている恒久対策をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →