エージェント モード

このドキュメントでは、Gemini Code Assist のエージェント モードについて説明します。

エージェント モードは、VS Code と IntelliJ の統合開発環境(IDE)で使用できます。エージェント モードの使用を開始するには、エージェント チャットをペア プログラマーとして使用するをご覧ください。

VS Code のエージェント モードは Gemini CLI を利用しています。

IntelliJ のエージェント モードでは Gemini CLI は使用されません。

エージェント モードでは、次のような操作を行うことができます。

  • コードに関する質問をします。
  • コンテキストと組み込みツールを使用して、生成されたコンテンツを改善します。
  • エージェントの機能を拡張するように MCP サーバーを構成します。
  • 複数のステップを含む複雑なタスクのソリューションを入手します。
  • 設計書、問題、TODO コメントからコードを生成します。
  • 実行中にプランとツールの使用にコメントを付けたり、編集や承認を行うことで、エージェントの動作を制御します。

エージェント モードの仕組み

エージェント モードでは、プロンプトは使用可能なツールのリストとともに Gemini API に送信されます。Gemini API がプロンプトを処理し、レスポンスを返します。レスポンスは、直接的な回答の場合もあれば、利用可能なツールを使用するよう求めるリクエストの場合もあります。

ツールがリクエストされると、エージェントはツールを使用する準備を行い、明示的な権限あり、またはなしでツールを使用できるかどうかを確認します。

  • ファイル システムを変更するツール リクエストや、リソースに対して変更オペレーションを実行するツール リクエストの場合、Gemini は、ツールを常に許可するように Gemini を構成していない限り、オペレーションを許可するよう求めます。
  • 読み取り専用のツール リクエストでは、タスクを完了する前に権限を求められない場合があります。

ツールの使用を許可するかどうかを尋ねられたら、オペレーションを許可するか拒否するかを選択できます。エージェントから、ツールやサーバーを常に許可するオプションや、同様のオペレーションを許可するオプションが提示されることもあります。詳細については、エージェント アクションを常に許可するをご覧ください。

ツールの使用権限が付与されると(あるいは自身で取得すると)、エージェントはツールを使用して必要なアクションを完了し、そのアクションの結果が Gemini API に返送されます。Gemini はツール アクションの結果を処理し、別のレスポンスを生成します。このアクションと評価のサイクルは、タスクが完了するまで続きます。

複雑なタスクの場合、Gemini は大まかなプランを提示し、ユーザーに承認を求めることがあります。プロセスを開始する前に、プランの微調整や、チャットでの質問ができます。プランに問題がなければ承認します。プランを承認すると、エージェントは最初のタスクを開始します。プランの実行中は、必要に応じて説明や権限を求めます。

エージェント モードのコンテキスト

コンテキストを使用すると、エージェントは特定のプロンプトに対してより適切な回答を生成できます。コンテキストは、IDE のファイル、ローカル システム フォルダのファイル、ツールのレスポンス、プロンプトの詳細から取得できます。

IDE と設定によっては、エージェントが利用できるコンテキストが異なる場合があります。

次のタブでは、それぞれの IDE でコンテキストが収集される方法について説明します。

VS Code

エージェント モードの Gemini Code Assist は通常、次の方法でコンテキストを取得します。

  • IDE ワークスペース内の情報。
  • grep、ターミナル、ファイル読み取り、ファイル書き込みなどの組み込みツールからのレスポンス。
  • Google 検索のレスポンス。
  • プロンプトまたはツールで指定された URL のコンテンツ。
  • Markdown で作成するコンテキスト ファイル。

エージェントのメモリ

VS Code の Gemini Code Assist エージェント モードは、Gemini CLI メモリ検出サービスを利用して、エージェントのコンテキストを提供する GEMINI.md ファイルを検索して読み込みます。メモリ検出サービスは、現在の作業ディレクトリからプロジェクトのルート、ホーム ディレクトリへと階層的に移動し、ファイルを検索します。サブディレクトリも検索します。

グローバル、プロジェクト レベル、コンポーネント レベルのコンテキスト ファイルを作成できます。これらのファイルはすべて結合され、モデルに最も関連性の高い情報が提供されます。

/memory show コマンドを使用すると、読み込まれたすべての GEMINI.md ファイルのコンテンツを組み合わせて表示できます。また、/memory refresh コマンドを使用すると、それらを再読み込みできます。

IntelliJ

エージェント モードの Gemini Code Assist は通常、次の方法でコンテキストを取得します。

  • ファイル、インデックス付きシンボル、プロジェクトでのシンボルの使用状況など、IDE プロジェクト内の情報。
  • grep、ファイル読み取り、ファイル書き込みなどの組み込みツールからのレスポンス。
  • IntelliJ のバージョン管理
  • 構成済みの MCP サーバーとツール
  • Markdown で作成するコンテキスト ファイル。

エージェントが利用できるコンテキストは、エージェント モードのチャット プロンプト領域のコンテキスト ドロワーで確認できます。

エージェント モードのコンテキスト ドロワー。

ツール

ツールは、エージェントがプロンプトに対するレスポンスのコンテキストとアクションに使用できる幅広いカテゴリのサービスです。ツールを使用すると、エージェントは関数呼び出しによって API エンドポイントまたは他のエージェントにアクセスし、最新の情報を取得できます。ツールは 1 つの関数のみを提供する場合もあれば、複数の関連関数を提供する場合もあります。

ツールの例としては、grep やファイルの読み取り / 書き込みなどの組み込みツール、ローカルまたはリモートの Model Context Protocol(MCP)サーバーとその実行可能関数、RESTful API 呼び出しなどがあります。

組み込みツール

エージェント モードでは、Gemini は組み込みのシステムツールにアクセスできます。IDE を選択すると、エージェント モードの Gemini で使用可能な組み込みツールのリストが表示されます。

VS Code

Gemini CLI の組み込みツールはすべて、Gemini Code Assist のエージェント モードで使用できます。

IntelliJ

read_file
絶対パスを使用してファイルのテキスト コンテンツを取得します。
write_file
指定されたファイルに指定されたテキストを書き込みます。ファイルが存在しない場合は作成します。
analyze_current_file
エディタで開いているファイルのエラーと警告を分析します。
find_files
ファイル名またはパスの一部を指定して、ファイルの絶対パスを取得します。
grep
指定されたテキスト パターンまたは正規表現を含むプロジェクト内のすべてのファイルを検索します。
list_files
指定された絶対パスにあるすべてのファイルとディレクトリを一覧表示します。
resolve_symbol
特定のシンボル参照を元の宣言に解決します。
find_usages
プロジェクト内で、指定されたシンボル宣言のすべての参照を検索します。
git
Git コマンドライン インターフェース(CLI)コマンドを実行し、結果を返します。
list_vcs_roots
現在のプロジェクト内のすべてのバージョン管理システム(VCS)ルート(Git リポジトリなど)を返します。

制限事項

標準の Gemini Code Assist チャットの一部の機能は、エージェント モードでは使用できないか、標準チャットとは異なる動作をする場合があります。

朗読はエージェント モードでは使用できません。エージェント モードでは、Gemini はソースを引用しません。また、引用されたソースと一致するコードの候補を無効にすることもできません。

次のステップ