X(Twitter) Zenn GitHub RSS 共有

Gemini Code Assist

作成日時:2025-07-15
更新日時:2025-07-18

概要

Gemini Code Assist | AI coding assistant

コンテキストウィンドウ

AIが対話の文脈を記憶しておくための領域。
チャットが長くなってコンテキストウィンドウがいっぱいになると、古い情報を消す(忘れる)。

この問題への対応は下記。

Agentモード

Gemini Code Assistの設定で、Agentic Codingも可能。
詳細は公式ドキュメントを参照すること。

Use agentic chat as a pair programmer  |  Gemini Code Assist

ルール

回答精度を上げるために、ルール(または文脈、コンテキスト)を読み込ませる。
事前にコンテキストやルールを記載した文書を準備しておく。

拡張機能の設定にも「Rules」という入力項目があるので、そこに入力してもよい。

ルールの自動読み込み

現状、チャット開始時に特定のコンテキストファイルを自動で読み込む公式機能はない。
(上記の拡張機能のRulesはある意味、自動で読み込む機能だとは思うが)
Geminiが「関連性が高い」と判断したファイルは自動で読み込むことはある。
明示的にルールを適用させたければ、チャット開始時にその文書を読むように依頼する。

ただし、Agentモードの場合、ワークスペースルートや各ディレクトリにあるGEMINI.mdファイルを自動的に探して読み込む。
.htaccessのように、階層的にルールを適用させることができる。

例えば、プロジェクトのルートに全体的なルールを記載したGEMINI.mdを配置し、
各サブディレクトリに固有のルールを記載したGEMINI.mdを置く、といった運用が可能。

個人的な運用例

この機能を模倣し、プロジェクトルートの直下にGEMINI_ROOT.mdを作成した。
全体的なペルソナやルール、そして「各ディレクトリにGEMINI.mdが存在すれば、それを参照する」という指示を記述。

ルールの効果を高める

下記のように記載する。

Geminiに参照してほしくないファイルを指定

デフォルトでは、.aiexcludeファイルか.gitignoreファイルに記載されているパターンにマッチするファイルは参照されない。

VS Codeの設定(Ctrl + ,)からContext Exclusionで検索すると、関連設定が表示される。

.aiexclude.gitignoreの両方に設定がある場合、.aiexcludeが優先される。

これらに加えて、コンテキストファイルに「XXXは参照しないでください」と明示的に記載することも有効。

稀にCPU使用率が跳ね上がる

主な原因

Gemini Code Assistは、回答の精度を高めるために、バックグラウンドでプロジェクト内のファイルのインデックスを作成する。
このインデックス作成処理は、特に初回実行時やファイル構成が大きく変更された際に、CPUリソースを大きく消費する。
Microsoft Defenderなどのウイルス対策ソフトがこのファイルアクセスを監視し、さらにCPU使用率を押し上げることがある。

インデックス作成が完了すれば、CPU負荷は安定する。

対応

  1. インデックス作成が完了するまで待つ
  2. 対象フォルダーやプロセスを、Microsoft Defenderの監視対象外にする
    • 改善されるだろうが、セキュリティリスクを伴う
  3. Local codebase awarenessを無効化する
    • Gemini Code Assistの設定でこの項目をOFFにすると、ローカルファイルのインデックス作成自体が行われなくなる
    • ただしGemini Code Assistの回答の精度は低くなる。
  4. Docker + VS Codeで開発環境を構築する
    • コンテナー上ならDefenderの影響を受けない?わからん。

settings.jsonで下記のようにVS Codeの監視対象から不要なディレクトリを除外することで、改善する場合がある。
対象フォルダーは適宜設定されたし。

"files.watcherExclude": {
  "**/.git/objects/**": true,
  "**/.git/subtree-cache/**": true,
  "**/node_modules/*/**": true,
  "**/.hg/store/**": true
},
"search.exclude": {
  "**/node_modules": true,
  "**/bower_components": true,
  "**/*.code-search": true
}

メモ

AIに読み込ませるソースのGit管理は絶対に行う。

リンク