ANTIGRAVITY LABEN
記事一覧/Agents & Manager
Agents & Manager/2026-08-05上級

同じ履歴を読むのに 38 秒と 0.4 秒 — 読み取り専用になった .git をエージェントへどう渡すか

Antigravity CLI 1.1.10 でサンドボックスから .git を読み取り専用で参照できるようになりました。履歴要約を毎セッション渡すための実装を2通り書いて実測し、約100倍の速度差とその原因、shallow clone で集計が静かに壊れる問題への対処をまとめます。

Antigravity CLI21サンドボックス2Git8エージェント設計18パフォーマンス計測

プレミアム記事

今朝、手元の複製リポジトリで git log --oneline を打ったら、1 件しか返ってきませんでした。

数秒、手が止まりました。履歴が消えたのかと思ったのです。実際には何も壊れていません。自動処理用に --depth 1 でクローンした複製で、履歴がそもそも 1 件しか存在しないだけでした。

この小さなつまずきが、ちょうど考えていた設計とぶつかりました。Antigravity CLI 1.1.10 で、サンドボックスから .git を読み取り専用で参照できるようになっています。書き込み権限を渡さずに、履歴を前提にした作業を成立させられる。この変更を活かして「エージェントに毎セッション履歴の要約を渡す」仕組みを作ろうとしていた矢先でした。

作る前に、コストの当たりを取ることにしました。履歴の要約を組み立てる実装を 2 通り書き、コミット数を変えながら実測した結果をこの記事にまとめます。同じ出力を得るのに 38.4 秒かかる書き方と 0.38 秒で済む書き方があり、差を生んでいたのはデータ量ではありませんでした。

書き込み権限を渡さずに、履歴だけを渡す

1.1.10 の Antigravity changelog に、.git のリードオンリーサンドボックスアクセスという項目があります。一行の変更ですが、権限設計の観点では扱いが変わる話だと受け止めています。

エージェントに履歴を見せたい場面は、以前からありました。レビューを頼むとき、変更対象が「直近でよく壊れている場所」かどうかで読み方は変わります。テストの補強を頼むとき、あるファイルと一緒に変わりがちなファイルを知っていれば、修正の巻き添え漏れを指摘できます。

一方で、そのために .git への書き込みまで開ける理由はありません。refs やオブジェクトを書き換えられる状態は、履歴を読むという目的に対して権限が広すぎます。情報は渡す、権限は渡さない。読み取り専用の .git は、この分離をそのまま実装できる入口です。

私はアクセス制御を考えるとき、まず「渡さないもの」を先に決めるようにしております。今回渡さないと決めたのは、書き込み権限と、生の履歴全体です。生ログをそのまま渡さない理由は次の節で数字と一緒に述べます。

履歴から何を取り出すか — 1.7KB のコンテキストパック

毎セッション渡すものは、小さくなければ続きません。要約に含める情報を 3 つに絞りました。

第一に、変更頻度の高いファイル(ホットスポット)。直近の不具合はたいてい、よく触られている場所で起きます。第二に、同一コミットで一緒に変わるファイルの対(共変更)。「このファイルを直すならあちらも見る」という関係の近似になります。第三に、作者ごとのコミット数。個人開発でも、自動コミットと手動コミットの比率が見えるだけで履歴の読み方が変わります。

この 3 つを JSON にまとめた出力を、ここでは履歴コンテキストパックと呼びます。実測でのサイズは次の通りでした。

コミット数パックサイズ.git のサイズ
5001,679 バイト
2,0001,702 バイト2.0 MB
8,0001,734 バイト7.2 MB

コミット数を 16 倍にしても、パックは 55 バイトしか増えません。上位 N 件に切り詰めた集計だけを持つ設計なので、履歴の長さはサイズにほぼ影響しないためです。7.2 MB の履歴が 1.7 KB に畳まれるなら、毎セッション先頭で渡す運用に無理はありません。

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

この記事の続きを読む

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

この記事で得られること
同一出力の履歴集計が 38.4 秒から 0.38 秒になった2つの実装と、差を生むプロセス起動コストの実測分析
8,000 コミットの要約を約 1.7KB に収める履歴コンテキストパックの設計(ホットスポット・共変更・作者分布)
depth 1 クローンで集計が静かに壊れる挙動の再現と、rev-list --count による起動時ガードの実装
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Agents & Manager2026-07-18
エージェントに任せるコード検索を契約として書く — /codesearch の正規表現既定を実測で読み直す
Antigravity CLI 1.1.3 の /codesearch はクエリを既定で正規表現として解釈します。979本のMDXを抱えるリポジトリで正規表現とリテラルの差を実測し、過剰ヒット・4.5MBの出力・静かなずれを避けるクエリ設計をまとめました。
Agents & Manager2026-07-25
何本作ったかを指標にするのをやめた — 生成エージェントに「棄権」という結果を持たせる設計
バックグラウンドで走る生成エージェントの合否を『作った数』で測ると、品質ゲートは静かに緩んでいきます。ACCEPT / ABSTAIN / REJECT の三値と、棄権を成功として数えるSLO設計を、実運用のコードと実測とともに整理します。
Agents & Manager2026-07-19
作業フォルダの外に書けてしまった朝 — 無人実行の書き込み先を1関数で検札する
Antigravity CLI 1.1.3 で、always-proceed のときワークスペース外への書き込みが誤って自動承認されていた不具合が塞がれました。無人実行の書き込み先を、正規化と包含判定だけで検札する小さなガードを、すり抜け試験つきでまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →