Google Search Grounding:Gemini でリアルタイムのウェブ情報を検索
このチュートリアルで学べること
- Gemini モデルで Google Search を有効化し、AI がリアルタイムのウェブ情報を検索できるようにする
- 検索閾値を調整して、モデルの検索頻度を制御する
- Google Search Grounding の仕組みと適用シーンを理解する
- タスクの要件に応じて適切な設定を選択する
現状の課題
Google Search Grounding とは?
Google Search Grounding は Gemini の機能で、必要に応じてモデルが自動的に Google 検索を行い、リアルタイム情報(ニュース、統計データ、製品価格など)を取得できます。トレーニングデータだけに頼る必要がなくなります。
Gemini に「今日の天気は?」や「VS Code の最新バージョンは?」と聞いても、トレーニングデータが古いため回答できないことがあります。Google Search Grounding を有効にすると、モデルが自分でウェブ検索して回答を見つけられます。ブラウザで検索するのと同じです。
この機能を使うべきシーン
| シーン | 有効化の必要性 | 理由 |
|---|---|---|
| コード生成、プログラミングの質問 | ❌ 不要 | プログラミング知識は比較的安定しており、トレーニングデータで十分 |
| 最新情報の取得(ニュース、価格、バージョン) | ✅ 強く推奨 | リアルタイムデータが必要 |
| ファクトチェック(具体的な日付、統計) | ✅ 推奨 | モデルの情報捏造を防止 |
| クリエイティブライティング、ブレインストーミング | ❌ 不要 | 事実の正確性は不要 |
| 技術ドキュメントの検索 | ✅ 推奨 | 最新の API ドキュメントを検索 |
基本的な考え方
Google Search Grounding の核心は、モデルが必要なときだけ自動的に検索することです。毎回検索するわけではありません。プラグインは googleSearchRetrieval ツールを注入し、Gemini が Google 検索 API を呼び出せるようにします。
重要な概念
- Auto モード:モデルが検索するかどうかを自分で判断(閾値に基づく)
- 閾値(grounding_threshold):モデルの検索「ハードル」を制御。値が小さいほど、検索頻度が高くなる
🎒 始める前の準備
前提条件の確認
始める前に、以下を確認してください:
- [ ] クイックインストールを完了している
- [ ] 少なくとも 1 つの Google アカウントを追加している
- [ ] 最初のリクエストに成功している(最初のリクエストを参照)
手順
ステップ 1:設定ファイルの場所を確認
プラグインの設定ファイルは以下の場所にあります:
- macOS/Linux:
~/.config/opencode/antigravity.json - Windows:
%APPDATA%\opencode\antigravity.json
ファイルが存在しない場合は、まず作成します:
# macOS/Linux
cat > ~/.config/opencode/antigravity.json << 'EOF'
{
"$schema": "https://raw.githubusercontent.com/NoeFabris/opencode-antigravity-auth/main/assets/antigravity.schema.json"
}
EOF# Windows
@"
{
"$schema": "https://raw.githubusercontent.com/NoeFabris/opencode-antigravity-auth/main/assets/antigravity.schema.json"
}
"@ | Out-File -FilePath "$env:APPDATA\opencode\antigravity.json" -Encoding utf8確認ポイント:設定ファイルが作成され、$schema フィールドが含まれている
ステップ 2:Google Search を有効化
設定ファイルに web_search 設定を追加します:
{
"$schema": "https://raw.githubusercontent.com/NoeFabris/opencode-antigravity-auth/main/assets/antigravity.schema.json",
"web_search": {
"default_mode": "auto",
"grounding_threshold": 0.3
}
}設定の説明:
| フィールド | 値 | 説明 |
|---|---|---|
web_search.default_mode | "auto" または "off" | Google Search の有効/無効、デフォルトは "off" |
web_search.grounding_threshold | 0.0 - 1.0 | 検索閾値、デフォルトは 0.3、auto モードでのみ有効 |
確認ポイント:設定ファイルが更新され、web_search 設定が含まれている
ステップ 3:検索閾値を調整(オプション)
grounding_threshold はモデルの検索頻度を制御します:
| 閾値 | 動作 | 適用シーン |
|---|---|---|
0.0 - 0.2 | 頻繁に検索、不確かなときはほぼ毎回検索 | 高精度のリアルタイムデータが必要 |
0.3(デフォルト) | 適度、モデルがある程度確信を持ったときに検索 | 日常使用、精度と速度のバランス |
0.7 - 1.0 | 検索頻度が低い、高い確信度のときのみ検索 | 検索回数を減らし、速度を向上 |
実践的なアドバイス
デフォルト値 0.3 から始めて、以下の場合に調整してください:
- モデルが検索しない → 閾値を下げる(例:
0.2) - 検索が頻繁すぎて応答が遅い → 閾値を上げる(例:
0.5)
確認ポイント:閾値が調整され、実際の使用体験に基づいて最適化できる
ステップ 4:設定を検証
OpenCode を再起動するか、設定をリロード(サポートされている場合)してから、リアルタイム情報が必要なリクエストを送信します:
ユーザー入力:
VS Code の最新バージョンは何ですか?
システム応答(Google Search 有効時):
VS Code の最新安定版は 1.96.4 です(2026 年 1 月時点)...
[citation:1] ← 引用元マーク確認ポイント:
- モデルの回答に引用元(
[citation:1]など)が含まれている - 回答内容が最新で、トレーニングデータの古いバージョンではない
ステップ 5:異なる閾値をテスト
grounding_threshold を調整して、モデルの動作変化を観察します:
// 低閾値(頻繁に検索)
"grounding_threshold": 0.1
// 高閾値(検索頻度が低い)
"grounding_threshold": 0.7調整するたびに、同じ質問でテストして以下を観察します:
- 検索したかどうか(応答に引用があるか確認)
- 検索回数(複数の
citation) - 応答速度
確認ポイント:
- 低閾値:検索頻度が高いが、応答がやや遅い
- 高閾値:検索頻度が低いが、回答が不正確な可能性がある
チェックポイント ✅
クリックして検証チェックリストを展開
以下のチェックを完了して、設定が正しいことを確認してください:
- [ ] 設定ファイルに
web_search設定が含まれている - [ ]
default_modeが"auto"に設定されている - [ ]
grounding_thresholdが0.0から1.0の間にある - [ ] リアルタイム情報が必要なリクエストを送信し、モデルが引用付きで応答する
- [ ] 閾値を調整後、モデルの検索動作が変化する
すべて通過すれば、Google Search Grounding が正しく有効化されています!
よくある問題と解決策
問題 1:モデルが検索しない
症状:auto モードを有効にしても、モデルが検索せず、引用元もない。
原因:
- 閾値が高すぎる(例:
0.9)、モデルが極めて高い確信度でないと検索しない - 質問自体が検索を必要としない(例:プログラミングの質問)
解決方法:
grounding_thresholdを0.2以下に下げる- 明らかにリアルタイム情報が必要な質問でテストする(例:「今日の天気は?」「最新ニュース」)
問題 2:検索が頻繁すぎて応答が遅い
症状:すべての質問で検索が行われ、応答時間が明らかに増加。
原因:
- 閾値が低すぎる(例:
0.1)、モデルが過度に頻繁に検索をトリガー - 質問のタイプ自体がリアルタイム情報を必要とする(例:株価、ニュース)
解決方法:
grounding_thresholdを0.5以上に上げる- タスクがリアルタイム情報を必要としない場合、
default_modeを"off"に変更
問題 3:設定ファイルのフォーマットエラー
症状:プラグインがエラーを報告し、設定を読み込めない。
原因:JSON フォーマットエラー(余分なカンマ、引用符の不一致など)。
解決方法:JSON 検証ツールを使用して設定ファイルをチェックし、フォーマットが正しいことを確認。
# JSON フォーマットを検証
cat ~/.config/opencode/antigravity.json | python3 -m json.toolこのレッスンのまとめ
- Google Search Grounding により、Gemini モデルがリアルタイムのウェブ情報を検索できる
web_search.default_mode: "auto"で有効化、"off"で無効化grounding_thresholdで検索頻度を制御:値が小さいほど検索頻度が高い- デフォルト閾値
0.3はほとんどのシーンに適しており、実際の体験に基づいて調整可能 - モデルは回答に引用元を含め、
[citation:1]などでマークする
次のレッスンの予告
次のレッスンでは デュアルクォータシステム を学びます。
学べること:
- Antigravity と Gemini CLI の 2 つの独立したクォータプールの仕組み
- クォータプール間の切り替え方法と利用率の最大化
- クォータプーリングのベストプラクティス
付録:ソースコード参照
クリックしてソースコードの場所を表示
更新日:2026-01-23
| 機能 | ファイルパス | 行番号 |
|---|---|---|
| Google Search 設定スキーマ | src/plugin/config/schema.ts | 303-319 |
| Google Search 型定義 | src/plugin/transform/types.ts | 85-88 |
| Google Search 注入ロジック | src/plugin/transform/gemini.ts | 402-419 |
| Google Search 設定読み込み | src/plugin/config/loader.ts | 173-184 |
| Google Search 設定適用 | src/plugin.ts | 1194-1196 |
主要な設定項目:
web_search.default_mode:"auto"または"off"、デフォルトは"off"web_search.grounding_threshold:0.0-1.0、デフォルトは0.3
主要な関数:
applyGeminiTransforms():Google Search 注入を含むすべての Gemini 変換を適用normalizeGeminiTools():ツールフォーマットを正規化し、googleSearchRetrievalツールを保持wrapToolsAsFunctionDeclarations():ツールをfunctionDeclarationsフォーマットにラップ
動作原理:
- プラグインが設定ファイルから
web_search.default_modeとweb_search.grounding_thresholdを読み込む mode === "auto"の場合、リクエストのtools配列にgoogleSearchRetrievalツールを注入:json{ "googleSearchRetrieval": { "dynamicRetrievalConfig": { "mode": "MODE_DYNAMIC", "dynamicThreshold": 0.3 // grounding_threshold } } }- Gemini モデルが閾値に基づいて検索ツールを呼び出すかどうかを判断
- 検索結果は応答に含まれ、引用元(
[citation:1]など)でマークされる