「このコード、AIに見せて大丈夫?」という不安を解消する
業務コードをAIにレビューしてもらいたい。だが、クラウドAPIにソースコードを送信することに対して、社内のセキュリティポリシーが許可しない——個人開発者でも、クライアントから預かったコードを外部サービスに投げるのは気が引ける。
この問題を根本から解決するのが、GoogleのオープンソースLLM「Gemma 4」をローカルで動かし、Antigravityのエディタ上でコードレビューに使うアプローチです。ネットワーク接続すら不要で、レビュー対象のコードが自分のマシンから一切出ありません。
私自身、受託案件のコードをレビューする際にこの構成を導入してから、「コードを外に出していいか」という確認プロセス自体が不要になりました。セットアップは30分もかからありません。
Gemma 4 をローカルで動かす準備
Gemma 4をローカルで実行するには、Ollamaを使うのが最も手軽です。Ollamaはモデルのダウンロードから推論サーバーの起動までをワンコマンドで完結させてくれます。
# Ollamaのインストール(macOS)
curl -fsSL https://ollama.com/install.sh | sh
# Gemma 4モデルのダウンロードと起動
# 12Bパラメータ版:16GB以上のRAMを推奨
ollama pull gemma4:12b
# モデルが正常に動作するか確認
ollama run gemma4:12b "Hello, respond with OK if you can hear me."
# 期待出力: OK(または類似の短い応答)マシンスペックの目安として、Gemma 4の12Bモデルは約8GBのVRAM(またはシステムRAM 16GB以上)で動作します。M1以降のApple Siliconなら、Metal GPUアクセラレーションが自動的に有効になるため、推論速度は実用的なレベルです。
もしGPUメモリが足りない場合は、量子化版を使う選択肢があります。
# 4bit量子化版(RAM 8GBでも動作可能)
ollama pull gemma4:12b-q4_K_M
# 動作確認:レスポンス速度を計測
time ollama run gemma4:12b-q4_K_M "Explain what a mutex does in one sentence."
# 期待出力: A mutex (mutual exclusion) is a synchronization primitive...
# 所要時間: Apple M2で約2-3秒量子化による精度低下はコードレビュー用途ではほぼ気にならありません。変数名のタイポ検出やロジックの矛盾指摘など、パターンマッチング的な作業では12Bの量子化版でも十分な精度が出る。
Antigravity でローカル LLM を接続する
Ollamaが起動したら、AntigravityからローカルのGemma 4に接続します。Antigravityの設定画面からカスタムモデルプロバイダーを追加します。
// .antigravity/settings.json に追加
{
"ai.providers": {
"ollama-local": {
"type": "openai-compatible",
"baseUrl": "http://localhost:11434/v1",
"models": [
{
"id": "gemma4:12b",
"displayName": "Gemma 4 12B (Local)"
}
]
}
}
}設定後、Antigravityのモデル選択メニューに「Gemma 4 12B (Local)」が表示されます。ここで重要なのは、baseUrlがlocalhostを指している点です。通信は自分のマシン内で完結し、外部には一切出ありません。
接続テストとして、Antigravityのインラインチャット(Cmd+I)を開き、モデルをGemma 4 Localに切り替えて簡単な質問を投げてみよう。レスポンスが返れば接続は成功です。
コードレビュー専用プロンプトを設定する
ローカルLLMの弱点は、クラウドの大規模モデルと比べてコンテキストの理解力が劣る点です。これを補うために、コードレビューに特化したシステムプロンプトを用意します。
<\!-- .antigravity/prompts/code-review.md -->
# Code Review Agent
あなたはシニアソフトウェアエンジニアとして、以下の観点でコードをレビューしてください。
## レビュー観点(優先順位順)
1. **セキュリティ**: SQLインジェクション、XSS、認証バイパスなどの脆弱性
2. **バグの可能性**: null参照、境界値エラー、競合状態
3. **パフォーマンス**: N+1クエリ、不要な再レンダリング、メモリリーク
4. **可読性**: 命名規則の一貫性、複雑すぎる条件分岐
## 出力形式
- 問題の深刻度を [CRITICAL] / [WARNING] / [INFO] で分類
- 問題のある行番号を明示
- 修正案を具体的なコードで提示
- 問題がなければ「LGTM」とだけ回答
## 制約
- 既存のコーディングスタイルを尊重する(スタイルの好みで指摘しない)
- 推測でなく、確実に問題がある箇所のみ指摘するこのプロンプトを保存しておけば、Antigravityのコマンドパレットから@code-reviewで呼び出せる。12Bモデルは指示に忠実に従う傾向が強いので、出力形式を厳密に指定することで、レビュー結果の品質が安定します。
実際のレビューワークフロー:diff ベースのレビュー
最も実用的なのは、gitのdiffに対してレビューを実行するワークフローです。変更箇所だけにフォーカスすることで、ローカルLLMのコンテキストウィンドウを効率的に使える。
# ステージング済みの変更をdiffとして抽出
git diff --staged > /tmp/review-target.diff
# diffの行数を確認(Gemma 4 12Bのコンテキスト上限は8K〜128Kトークン)
wc -l /tmp/review-target.diff
# 期待出力: 150(数百行程度なら問題なし)Antigravityのインラインチャットで、このdiffを貼り付けてレビューを依頼します。あるいは、ターミナルから直接Ollamaに投げることもできます。
# ターミナルから直接レビューを実行
cat /tmp/review-target.diff | ollama run gemma4:12b "
以下のgit diffをレビューしてください。
セキュリティ問題、バグの可能性、パフォーマンス問題を
[CRITICAL]/[WARNING]/[INFO]で分類して指摘してください。
問題がなければLGTMと回答してください。
$(cat /tmp/review-target.diff)
"私の経験では、TypeScriptのコードレビューにおいて、Gemma 4の12Bモデルは以下の検出精度を示しました。
- 型の不整合: 高精度で検出(
string | undefinedをstringとして扱っているケースなど) - 未処理のPromise:
awaitの付け忘れをほぼ確実に検出 - SQL インジェクション: テンプレートリテラルでのSQL組み立てを高確率で検出
- ビジネスロジックの誤り: ドメイン知識が必要な場合は見落とすことがある
クラウドの大規模モデル(Gemini 2.5 Proなど)と比べると、ビジネスロジックの理解は劣る。だが、機械的なパターン検出——型エラー、リソースリーク、セキュリティホール——では、ローカルの12Bモデルでも十分に実用的です。
クラウド API との使い分け:ハイブリッド戦略
「すべてをローカルで完結させる」のが理想だが、現実にはクラウドモデルの方が適切な場面もあります。私が採用しているのは、コードの機密度に応じた使い分けです。
ローカル Gemma 4 を使うケース:
- クライアントの業務コード、API キー周辺のコード
- 社内システムの認証・決済ロジック
- NDA 対象のプロジェクト全般
- オフライン環境(飛行機内、セキュリティルームなど)
クラウド Gemini を使うケース:
- OSSプロジェクト(そもそも公開コード)
- 設計レベルのアーキテクチャレビュー(大きなコンテキストが必要)
- 自分の個人プロジェクト(機密性が低い)
Antigravityでは、モデル切り替えがワンクリックでできるため、この使い分けに摩擦がありません。レビュー対象のファイルを開いた状態で、モデルセレクターからローカルかクラウドかを選ぶだけです。
トラブルシューティング:よくある問題と対処法
Ollamaが応答しない
# Ollamaのプロセスを確認
ps aux | grep ollama
# 期待出力: ollama serve が実行中であること
# ポートが使われているか確認
lsof -i :11434
# 出力がなければOllamaが起動していない
# 再起動
ollama serve &レスポンスが極端に遅い
12Bモデルで1トークンあたり1秒以上かかる場合、GPUが使われていない可能性があります。
# macOS: Metal GPUの利用状況を確認
# Activity Monitorの「GPU」タブでollamaのGPU使用率を確認
# Linux: NVIDIAドライバの確認
nvidia-smi
# CUDA対応GPUが検出されていることを確認
# GPUが使えない場合は軽量モデルに切り替え
ollama pull gemma4:4bAntigravityが接続を拒否する
settings.jsonのbaseUrlにタイポがないか確認します。よくある間違いは、httpをhttpsにしてしまうケースです。ローカルのOllamaはHTTPで動作するため、https://localhost:11434では接続できません。
コミット前の自動レビューを Git フックで実現する
手動でレビューを依頼するのが面倒なら、Gitのpre-commitフックで自動化できます。
#\!/bin/bash
# .git/hooks/pre-commit
# コミット前にGemma 4でローカルレビューを実行
DIFF=$(git diff --cached --diff-filter=ACMR)
if [ -z "$DIFF" ]; then
exit 0
fi
echo "🔍 Gemma 4 ローカルレビューを実行中..."
REVIEW=$(echo "$DIFF" | ollama run gemma4:12b "
以下のdiffにセキュリティ問題またはCRITICALなバグがあれば指摘してください。
問題がなければ LGTM とだけ回答してください。
$DIFF
")
if echo "$REVIEW" | grep -q "CRITICAL"; then
echo "❌ CRITICAL issue detected:"
echo "$REVIEW"
echo ""
echo "コミットを中止しました。問題を修正してから再度コミットしてください。"
exit 1
fi
echo "✅ $REVIEW"
exit 0このフックを有効にすると、git commitのたびにGemma 4がdiffをチェックし、CRITICALレベルの問題があればコミットをブロックします。レビューは数秒で完了するため、開発のリズムを崩さありません。
ただし、pre-commitフックで全レビューを賄おうとするのは現実的ではありません。あくまで「明らかなセキュリティホールやバグを早期に検出するセーフティネット」として位置づけ、詳細なレビューはAntigravityのインラインチャットで行うのがバランスが良い。
次のステップ
ローカルAIコードレビュー環境が動き始めたら、まずは1週間、通常の開発フローに組み込んで使ってみてほしい。クラウドAPIへの依存が減ることで、オフラインでも生産性が落ちないという副次的なメリットにも気づくはずです。レビュー精度をさらに上げたい場合は、Gemma 4 と Antigravity の統合ガイドで、モデルのカスタマイズオプションを確認するとよい。ローカルLLMの基本的なセットアップでつまずいた場合は、Antigravity ローカル LLM 設定ガイドを参照してほしい。