エージェント チャットをペア プログラマーとして使用する

このドキュメントでは、統合開発環境(IDE)で Gemini Code Assist エージェント モードをペア プログラマーとして構成して使用する方法について説明します。

エージェント モードは VS Code で使用できます。

エージェント モードで Gemini Code Assist を使用する方法は次のとおりです。

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

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

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

ツールがリクエストされると、エージェントはツールを使用する準備を行い、明示的な権限なしでツールを使用できるかどうかを確認します。ファイル システムを変更するツール リクエストや、リソースに対して変更オペレーションを実行するツール リクエストの場合、Gemini は、ツールを常に許可するように Gemini を構成していない限り、オペレーションを許可するよう求めます。読み取り専用のツール リクエストでは、タスクを完了する前に権限を求められない場合があります。ツールの使用を許可するかどうかを尋ねられたら、オペレーションを許可するか拒否するかを選択できます。エージェントから、ツールやサーバーを常に許可するオプションや、同様のオペレーションを許可するオプションが提示されることもあります。

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

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

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

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

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

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

  • IDE ワークスペース内の情報。
  • grep、ターミナル、ファイル読み取り、ファイル書き込みなどの組み込みツールからのツール レスポンス。
  • Google 検索のレスポンス。
  • プロンプトまたはツールで指定された URL のコンテンツ。
  • Markdown で作成するコンテキスト ファイル。すべてのプロジェクト、特定のプロジェクト、またはプロジェクトの特定のコンポーネント、モジュール、サブセクションの特定の指示にスコープ設定されます。コンテキスト ファイルには、エージェント モードでのやり取りで Gemini に認識させたい指示、ガイドライン、コンテキストを含めることができます。

エージェント モードのメモリ

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

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

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

Gemini CLI 拡張機能

VS Code では、Gemini CLI 拡張機能を使用して、Gemini Code Assist エージェント モードの機能を構成および拡張できます。

エージェントは、次の 2 つのロケーションで拡張機能を検索します。

  • WORKSPACE/.gemini/extensionsWORKSPACE は現在のワークスペース)。
  • ~/.gemini/extensions~ はホーム ディレクトリ)。

エージェントは両方のロケーションからすべての拡張機能を読み込みますが、同じ名前の拡張機能が両方に存在する場合は、ワークスペース ディレクトリにあるものが優先されます。各拡張機能は、gemini-extension.json ファイルを含むディレクトリです。このファイルには、拡張機能の構成が含まれています。

詳細については、Gemini CLI 拡張機能をご覧ください。

制限事項

エージェント モードを使用する場合は、次の制限事項が適用されます。

  • エージェントは Gemini Code Assist ツールを呼び出すことができません。これらのツールを使用するには、エージェント モードを終了する必要があります。
  • エージェントはコードのカスタマイズを使用できません。コード カスタマイズを使用するには、エージェント モードを終了する必要があります。
  • エージェント モードでは、複数のルートを持つプロジェクトはサポートされていません。複数のルート ディレクトリがあるプロジェクトでエージェント モードを使用すると、エージェントは最初に見つかったルート ディレクトリにのみアクセスできます。
  • エージェント モードでは、Gemini for Google Cloud ログはサポートされていません。

始める前に

  1. Gemini Code Assist を設定します
  2. Gemini Code Assist のリリース チャンネルを Insiders ビルドに設定します。
    1. コマンド パレットCmd + Shift + P)を開き、[ユーザー設定の JSON を開く] を選択します。
    2. ユーザー設定の JSON に次の行を追加します。
      "geminicodeassist.updateChannel": "Insiders",

エージェント モードを使用する

エージェント モードでは、Gemini に上位の目標や複雑なタスクの完了を依頼できます。

エージェント モードを最大限に活用するには、プロンプトのベスト プラクティスに沿って、できるだけ詳細な情報を入力してください。

エージェント モードに切り替えるには:

VS Code

  1. Gemini Code Assist チャットを開くには、IDE のアクティビティ バーで spark [Gemini Code Assist] をクリックします。
  2. [エージェント] 切り替えをクリックして、エージェント モードに切り替えます。エージェント モードに切り替えると切り替えボタンがハイライト表示され、通常のチャットではグレー表示になります。
  3. Gemini Code Assist チャットにプロンプトを入力します。

Gemini がプロンプトにレスポンスするか、ツールの使用許可をリクエストします。

エージェントを停止するには、[停止] をクリックします。

標準の Gemini Code Assist チャットを使用するには、[新しいチャット] をクリックして新しいチャットを作成します。

Gemini Code Assist エージェント モードは、Gemini CLI によって動作します。

IntelliJ

この機能は、IntelliJ やそのほかの JetBrains IDE の Gemini Code Assist ではサポートされていません。

エージェント モードのツールを構成する

ツールは、エージェントがプロンプトに対するレスポンスのコンテキストとアクションに使用できる幅広いカテゴリのサービスです。たとえば、grep やファイルの読み取り / 書き込みなどの組み込みツール、ローカルまたはリモートの Model Context Protocol(MCP)サーバー、カスタム サービス実装などがあります。

MCP サーバーを構成する

エージェント モードで使用できるサーバーを制御するには、サーバーのドキュメントに従って、Gemini 設定の JSON にサーバーを追加します。

VS Code

  1. MCP サーバーに必要な依存関係をインストールします。
  2. ~/.gemini/settings.json にある Gemini 設定 JSON を開きます。ここで、~ はホーム ディレクトリです。
  3. サーバーの手順に沿って、ローカルまたはリモートの MCP サーバーを Gemini 設定の JSON に追加します。

    次の例では、リモート Cloudflare MCP サーバーを追加し、ローカルマシンに GitHub サーバーと GitLab サーバーをインストールします。

    {
        "mcpServers": {
        "github": {
          "command": "npx",
          "args": [
            "-y",
            "@modelcontextprotocol/server-github"
          ],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_example_personal_access_token12345"
          }
        },
        "gitlab": {
          "command": "npx",
          "args": [
              "-y",
              "@modelcontextprotocol/server-gitlab"
          ]
        },
            "cloudflare-observability": {
                "command": "npx",
                "args": ["mcp-remote", "https://observability.mcp.cloudflare.com/sse"]
            },
            "cloudflare-bindings": {
                "command": "npx",
                "args": ["mcp-remote", "https://bindings.mcp.cloudflare.com/sse"]
            }
        }
    }
    

  4. コマンド パレットを開き、[デベロッパー: ウィンドウの再読み込み] を選択します。

構成した MCP サーバーは、エージェント モードでエージェントが使用できます。

IntelliJ

この機能は、IntelliJ やそのほかの JetBrains IDE の Gemini Code Assist ではサポートされていません。

MCP サーバー認証

認証が必要な MCP サーバーは、Gemini 設定の JSON に追加できます。

次の例では、GitHub の個人アクセス トークンを追加します。

{
//other settings...

"github": {
  "command": "/Users/username/code/github-mcp-server/cmd/github-mcp-server/github-mcp-server",
  "args": ["stdio"],
  "env": {
    "GITHUB_PERSONAL_ACCESS_TOKEN": "ACCESS_TOKEN"
  }
},

// other settings...
}

ここで、ACCESS_TOKEN はユーザーのアクセス トークンです。

コンテキスト ファイルを作成する

VS Code

  1. コンテキストを適用するスコープと一致するロケーションに、GEMINI.md という名前のファイルを作成します。次のテーブルに、さまざまなスコープのコンテキスト ファイルのロケーションの詳細を示します。

    範囲 場所
    すべてのプロジェクト ~/.gemini/GEMINI.md
    特定のプロジェクト 作業ディレクトリ、またはプロジェクト ルート(.git フォルダで識別)またはホーム ディレクトリまでの親ディレクトリ。
    プロジェクトの特定のコンポーネント、モジュール、サブセクション 作業ディレクトリのサブディレクトリ。

    エージェントのメモリシステムは、複数のロケーションからコンテキスト ファイルを読み込むことで作成されます。特定のコンポーネントやモジュール用のファイルなど、より具体的なファイルからのコンテキストは、~/.gemini/GEMINI.md のグローバル コンテキスト ファイルなど、より一般的なコンテキスト ファイルのコンテンツをオーバーライドまたは補完します。

  2. エージェントに使用させたいルール、スタイルガイド情報、コンテキストを Markdown で記述し、ファイルを保存します。詳細については、GitHub のコンテキスト ファイルの例をご覧ください。

IntelliJ

この機能は、IntelliJ やそのほかの JetBrains IDE の Gemini Code Assist ではサポートされていません。

コマンドを使用する

Gemini Code Assist エージェント モードで使用可能な Gemini CLI コマンドを表示するには、Gemini チャットで / を入力します。

エージェント モードでは、次の Gemini CLI コマンドを使用できます。

  • /tools: エージェント モード セッションで使用可能なツールのリストを表示します。サブコマンドには次のものがあります。
    • desc または descriptions: 各ツールの詳細な説明が表示されます。
    • nodesc または nodescriptions: ツールの説明を非表示にして、ツール名のみを表示します。
  • /memory: GEMINI.md ファイルから読み込まれたエージェントの指示コンテキストを管理します。サブコマンドには次のものがあります。
    • show: 使用可能なすべての GEMINI.md ファイルから読み込まれた現在のメモリの完全な連結されたコンテンツを表示します。
    • refresh: 使用可能なロケーションにあるすべての GEMINI.md ファイルからメモリを再読み込みします。GEMINI.md ファイルがエージェントの階層型メモリにどのように貢献するかについては、Gemini CLI 構成のドキュメントをご覧ください。
  • /mcp: 構成済みの Model Context Protocol(MCP)サーバー、接続ステータス、サーバーの詳細、使用可能なツールを一覧表示します。サブコマンドには次のものがあります。
    • desc または descriptions: MCP サーバーとツールの詳細な説明を表示します。
    • nodesc または nodescriptions: MCP サーバーの説明を非表示にして、MCP サーバー名のみを表示します。
    • schema: MCP サーバーの構成済みパラメータの完全な JSON スキーマを表示します。
  • /stats: エージェント モードのセッションの統計情報と期間の詳細が表示されます。

Gemini CLI コマンドの詳細については、Gemini CLI コマンドをご覧ください。Gemini CLI コマンドの一部はエージェント モードでは使用できません。

Yolo モード

yolo モードを使用すると、すべてのエージェント アクションを自動的に許可できます。

yolo モードを構成するには:

  1. VS Code のユーザー設定の JSON ファイルを開きます。

    1. コマンド パレットctrl/command + Shift + P)を開きます。
    2. [設定: ユーザー設定を開く(JSON)] を選択します。
  2. VS Code のユーザー設定の JSON ファイルに以下を追加します。

    //other settings...
    
    "geminicodeassist.agentYoloMode": "true",
    //other settings...
    
  3. コマンド パレットを開き、[デベロッパー: ウィンドウの再読み込み] を選択します。

エージェント モードは yolo モードを使用します。プロンプトを送信すると、アクションを実行する前に権限を求めることはありません。

その他のプロンプト

以下のプロンプトをご自身の情報で試してみてください。

  • 「このリポジトリの機能は何ですか?アーキテクチャについて教えてください。」
  • 「この [クラス/関数] は何をするものですか?」
  • 「このコードベースに機能を追加します -「[link-or-path-to-codebase]」。」
  • 「共通メソッド [C] を使用するように関数 [A] と [B] をリファクタリングします。」
  • 「GitHub の問題 [link-to-github-issue] を修正します。」
  • 「ユーザーが [環境] で [タスク] を実行できる UI を備えた [目標] を達成するアプリケーションを構築してください。」
  • 「このリポジトリのライブラリ バージョンを [X] から [Y] に移行します。」
  • 「この Go コードのパフォーマンスを最適化して、より高速に実行できるようにしてください。」
  • 「[name-of-API] を使用してこの機能を構築します。」
  • 「[x]、[Y]、[Z] を行うアルゴリズムを実装します。」

次のステップ