このドキュメントでは、統合開発環境(IDE)で Gemini Code Assist エージェント モードをペア プログラマーとして構成して使用する方法について説明します。
エージェント モードでは、次のような操作を行うことができます。
- コードに関する質問をします。
- コンテキストと組み込みツールを使用して、生成されたコンテンツを改善します。
- エージェントの機能を拡張するように MCP サーバーを構成します。
- 複数のステップを含む複雑なタスクのソリューションを入手します。
- 設計書、問題、
TODO
コメントからコードを生成します。 - 実行中にプランとツールの使用にコメントを付けたり、編集や承認を行うことで、エージェントの動作を制御します。
制限事項
標準の Gemini Code Assist チャットの一部の機能は、エージェント モードでは使用できないか、標準チャットとは異なる動作をする場合があります。
朗読はエージェント モードでは使用できません。エージェント モードでは、Gemini はソースを引用しません。また、引用されたソースと一致するコードの候補を無効にすることもできません。
始める前に
VS Code
- IDE で使用する Gemini Code Assist のエディションを設定します。
IntelliJ
IDE で使用する Gemini Code Assist のエディションを設定します。
エージェント モードを使用する
エージェント モードでは、Gemini に上位の目標や複雑なタスクの完了を依頼できます。
エージェント モードを最大限に活用するには、プロンプトのベスト プラクティスに沿って、できるだけ詳細な情報を入力してください。
エージェント モードに切り替えるには:
VS Code
- Gemini Code Assist チャットを開くには、IDE のアクティビティ バーで spark [Gemini Code Assist] をクリックします。
- [エージェント] 切り替えをクリックして、エージェント モードに切り替えます。エージェント モードに切り替えると切り替えボタンがハイライト表示され、通常のチャットではグレー表示になります。
- Gemini Code Assist チャットにプロンプトを入力します。
Gemini がプロンプトにレスポンスするか、ツールの使用許可をリクエストします。
エージェントを停止するには、[
停止] をクリックします。標準の Gemini Code Assist チャットを使用するには、[
新しいチャット] をクリックして新しいチャットを作成します。Gemini Code Assist エージェント モードは、Gemini CLI によって動作します。
IntelliJ
- ツール ウィンドウ バーの spark [Gemini] をクリックします。ログインを促すメッセージが表示された場合はログインします。
- [エージェント] タブを選択します。
- エージェントに実行させたいタスクを記述します。
エージェントがタスクを完了する手順を進めるにつれて、変更を確認して承認するオプションが表示されます。
省略可: 変更を自動的に承認するには、[設定] [エージェント オプション] を選択し、[変更を自動的に承認] の横にあるチェックボックスをオンにします。
エージェント モードのツールを構成する
ツールは、エージェントがプロンプトに対するレスポンスのコンテキストとアクションに使用できる幅広いカテゴリのサービスです。ツールの例としては、grep やファイルの読み取り / 書き込みなどの組み込みツール、ローカルまたはリモートの Model Context Protocol(MCP)サーバーとその実行可能関数、カスタム サービス実装などがあります。
組み込みツールの使用を制御する
エージェント モードでは、ファイル検索、ファイル読み取り、ファイル書き込み、ターミナル コマンドなどの組み込みツールにアクセスできます。
VS Code
coreTools
と excludeTools
の設定を使用すると、エージェント モードで Gemini がアクセスできるツールを制御できます。
coreTools
- : モデルで使用可能にするツールのリストを指定できます。また、対応するツールでは、コマンド固有の制限を指定することもできます。たとえば、Gemini 設定の JSON に次の行を追加すると、シェル
ls -l
コマンドのみが実行可能になります。"coreTools": ["ShellTool(ls -l)"]
。 excludeTools
- モデルで使用できないようにするツールのリストを指定できます。また、対応するツールでは、コマンド固有の制限を指定することもできます。たとえば、Gemini 設定の JSON に
"excludeTools": ["ShellTool(rm -rf)"]
を追加すると、rm -rf
コマンドの使用がブロックされます。
excludeTools
と coreTools
の両方に記載されているツールは除外されます。
エージェント モードで使用できる組み込みツールを構成する手順は次のとおりです。
~/.gemini/settings.json
にある Gemini 設定 JSON を開きます。ここで、~
はホーム ディレクトリです。エージェント ツールの使用を承認済みツールのリストに制限するには、Gemini 設定の JSON に次の行を追加します。
"coreTools": ["TOOL_NAME_1,TOOL_NAME_2"]
TOOL_NAME_1
とTOOL_NAME_2
は、エージェントにアクセス権を付与する組み込みツールの名前に置き換えます。組み込みツールはいくつでもリストに含めることができます。デフォルトでは、すべての組み込みツールがエージェントで使用できます。
エージェント ツールの使用を特定のツールコマンドに制限するには、Gemini 設定の JSON に次の行を追加します。
"coreTools": ["TOOL_NAME(COMMAND)"]
次のように置き換えます。
TOOL_NAME
: 組み込みツールの名前COMMAND
: エージェントが使用できるようにする組み込みツール コマンドの名前。
エージェントでの使用からツールを除外するには、Gemini 設定の JSON に次の行を追加します。
"excludeTools": ["TOOL_NAME_1,TOOL_NAME_2"]
TOOL_NAME_1
とTOOL_NAME_2
は、エージェントの使用から除外する組み込みツールの名前に置き換えます。エージェントによる使用からツールコマンドを除外するには、Gemini 設定の JSON に次の行を追加します。
"excludeTools": ["TOOL_NAME(COMMAND)"]
次のように置き換えます。
TOOL_NAME
: 組み込みツールの名前COMMAND
: エージェントの使用から除外する組み込みツール コマンドの名前。
coreTools
と excludeTools
の構成設定の詳細については、Gemini CLI 構成のドキュメントをご覧ください。
IntelliJ
この機能は、IntelliJ やそのほかの JetBrains IDE の Gemini Code Assist ではサポートされていません。
MCP サーバーを構成する
VS Code
エージェント モードで使用できるサーバーを制御するには、サーバーのドキュメントに従って、Gemini 設定の JSON にサーバーを追加します。
- MCP サーバーに必要な依存関係をインストールします。
~/.gemini/settings.json
にある Gemini 設定 JSON を開きます。ここで、~
はホーム ディレクトリです。サーバーの手順に沿って、ローカルまたはリモートの MCP サーバーを Gemini 設定の JSON に追加します。
次の例では、リモート Cloudflare MCP サーバーを 2 つ追加し、ローカルマシンに 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"] } } }
コマンド パレットを開き、[デベロッパー: ウィンドウの再読み込み] を選択します。
構成した MCP サーバーは、エージェント モードでエージェントが使用できます。
IntelliJ
エージェント モードで使用できるサーバーを制御するには、mcp.json
ファイルにサーバーを追加して、IDE の構成ディレクトリに配置します。
- MCP サーバーに必要な依存関係をインストールします。
- IDE の構成ディレクトリに
mcp.json
ファイルを作成します。 サーバーの手順に沿って、ローカルまたはリモートの 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"] } } }
構成した MCP サーバーは、エージェント モードでエージェントが使用できます。
MCP サーバー認証
一部の MCP サーバーでは認証が必要です。サーバーのドキュメントに沿って必要なユーザー トークンを作成し、適切に指定します。ローカル サーバーは環境変数を受け入れることがあり、リモート サーバーはヘッダーで認証情報を受け入れることがあります。
VS Code
認証が必要な MCP サーバーは、Gemini 設定の JSON に追加できます。
次の例は、GitHub のローカル MCP サーバーとリモート MCP サーバーの個人アクセス トークンを指定する方法を示しています。
{
"mcpServers": {
"github-remote": {
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ACCESS_TOKEN"
}
},
"github-local": {
"command": "/Users/username/code/github-mcp-server/cmd/github-mcp-server/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ACCESS_TOKEN"
}
}
}
}
ここで、ACCESS_TOKEN
はユーザーのアクセス トークンです。
IntelliJ
認証が必要な MCP サーバーは、mcp.json
ファイルに追加できます。
次の例では、GitHub ローカル サーバーの個人アクセス トークンを追加します。
{
"mcpServers": {
"github-local": {
"command": "/Users/username/code/github-mcp-server/cmd/github-mcp-server/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ACCESS_TOKEN"
}
}
}
}
ここで、ACCESS_TOKEN
はユーザーのアクセス トークンです。
コンテキスト ファイルを作成する
コンテキストを使用すると、エージェントは特定のプロンプトに対してより適切な回答を生成できます。コンテキストは、IDE のファイル、ローカル システム フォルダのファイル、ツールのレスポンス、プロンプトの詳細から取得できます。詳細については、エージェント モードのコンテキストをご覧ください。
VS Code
コンテキストを適用するスコープと一致するロケーションに、
GEMINI.md
という名前のファイルを作成します。次のテーブルに、さまざまなスコープのコンテキスト ファイルのロケーションの詳細を示します。範囲 場所 すべてのプロジェクト ~/.gemini/GEMINI.md
特定のプロジェクト 作業ディレクトリ、またはプロジェクト ルート( .git
フォルダで識別)またはホーム ディレクトリまでの親ディレクトリ。プロジェクトの特定のコンポーネント、モジュール、サブセクション 作業ディレクトリのサブディレクトリ。 エージェントのメモリシステムは、複数のロケーションからコンテキスト ファイルを読み込むことで作成されます。特定のコンポーネントやモジュール用のファイルなど、より具体的なファイルからのコンテキストは、
~/.gemini/GEMINI.md
のグローバル コンテキスト ファイルなど、より一般的なコンテキスト ファイルのコンテンツをオーバーライドまたは補完します。エージェントに使用させたいルール、スタイルガイド情報、コンテキストを Markdown で記述し、ファイルを保存します。詳細については、GitHub のコンテキスト ファイルの例をご覧ください。
エージェントは、コンテキスト ファイル内の情報と、送信されたプロンプトを組み合わせて使用します。
IntelliJ
プロジェクトのルートに、
GEMINI.md
またはAGENT.md
という名前のファイルを作成します。エージェントに使用させたいルール、スタイルガイド情報、コンテキストを Markdown で記述し、ファイルを保存します。
エージェントは、コンテキスト ファイル内の情報と、送信されたプロンプトを組み合わせて使用します。@
FILENAME
構文を使用してファイルを手動で含めることで、コンテキストを追加することもできます。ここで、FILENAME
は、含めるコンテキスト情報を含むファイルの名前です。
コマンドを使用する
スラッシュ /
コマンドを使用すると、ターミナル ウィンドウのコマンドと同様のコマンドをすばやく実行できます。
VS Code
エージェント モードでは、次の Gemini CLI コマンドを使用できます。
/tools
: エージェント モード セッションで使用可能なツールのリストを表示します。/mcp
: 構成済みの Model Context Protocol(MCP)サーバー、接続ステータス、サーバーの詳細、使用可能なツールを一覧表示します。
Gemini CLI コマンドの詳細については、Gemini CLI コマンドをご覧ください。Gemini CLI コマンドの一部はエージェント モードでは使用できません。
IntelliJ
この機能は、IntelliJ やそのほかの JetBrains IDE の Gemini Code Assist ではサポートされていません。
エージェントのアクションを常に許可する
すべてのエージェント アクションを自動的に許可できます。
すべてのエージェント アクションを自動的に許可するには:
VS Code
yolo モードを使用すると、すべてのエージェント アクションを自動的に許可できます。Yolo モードは、信頼できるワークスペースでのみ使用できます。
yolo モードを構成するには:
VS Code のユーザー設定の JSON ファイルを開きます。
- コマンド パレット(
ctrl
/command
+Shift
+P
)を開きます。 - [設定: ユーザー設定を開く(JSON)] を選択します。
- コマンド パレット(
VS Code のユーザー設定の JSON ファイルに以下を追加します。
//other settings... "geminicodeassist.agentYoloMode": true, //other settings...
コマンド パレットを開き、[デベロッパー: ウィンドウの再読み込み] を選択します。
エージェント モードは yolo モードを使用します。プロンプトを送信すると、アクションを実行する前に権限を求めることはありません。制限付きワークスペースを使用している場合、この設定に関係なく、エージェントはアクションを実行する前にプロンプトを表示します。
IntelliJ
変更を自動的に承認するには、Gemini Chat エージェントのタブで、[設定] [エージェント オプション] を選択し、[変更を自動的に承認] の横にあるチェックボックスをオンにします。
エージェント モードでは、すべてのリクエストが自動的に承認されます。プロンプトを送信すると、アクションを実行する前に権限を求めることはありません。
その他のプロンプト
以下のプロンプトをご自身の情報で試してみてください。
- 「このリポジトリの機能は何ですか?アーキテクチャについて教えてください。」
- 「この [クラス/関数] は何をするものですか?」
- 「このコードベースに機能を追加します -「[link-or-path-to-codebase]」。」
- 「共通メソッド [C] を使用するように関数 [A] と [B] をリファクタリングします。」
- 「GitHub の問題 [link-to-github-issue] を修正します。」
- 「ユーザーが [環境] で [タスク] を実行できる UI を備えた [目標] を達成するアプリケーションを構築してください。」
- 「このリポジトリのライブラリ バージョンを [X] から [Y] に移行します。」
- 「この Go コードのパフォーマンスを最適化して、より高速に実行できるようにしてください。」
- 「[name-of-API] を使用してこの機能を構築します。」
- 「[x]、[Y]、[Z] を行うアルゴリズムを実装します。」