本文說明如何在整合式開發環境 (IDE) 中,設定及使用 Gemini Code Assist 代理程式模式,做為結對程式設計師。
使用代理程式模式,你可以執行下列操作:
- 詢問程式碼相關問題。
- 運用背景資訊和內建工具,改善生成的內容。
- 設定 MCP 伺服器,擴充代理程式的功能。
- 取得多步驟複雜工作的解決方案。
- 根據設計文件、問題和
TODO
註解生成程式碼。 - 在執行期間,您可以透過註解、編輯及核准計畫和工具使用情形,控制代理程式行為。
限制
標準 Gemini Code Assist 對話的部分功能可能無法在代理程式模式中使用,或運作方式與標準對話不同。
朗讀功能不適用於代理模式。在代理程式模式下,Gemini 不會引用資料來源,且無法停用與引用來源相符的程式碼建議。
事前準備
VS Code
IntelliJ
使用代理模式
在代理程式模式下,你可以要求 Gemini 完成高階目標和複雜工作。
如要充分發揮代理程式模式的效用,請遵循提示最佳做法,並盡可能提供詳細資訊。
如要切換至代理程式模式:
VS Code
- 如要開啟 Gemini Code Assist 對話,請在 IDE 的活動列中點按「Gemini Code Assist」spark。
- 按一下「代理程式」切換按鈕,進入代理程式模式。切換至服務專員模式時,切換按鈕會醒目顯示;切換至一般對話時,切換按鈕則會顯示為灰色。
- 在 Gemini Code Assist 對話中輸入提示。
Gemini 會回覆提示,或要求使用工具的權限。
如要停止代理程式,請按一下「停止」
。如要使用標準的 Gemini Code Assist 對話,請按一下「New chat」
建立新的對話。Gemini Code Assist 代理程式模式採用 Gemini CLI。
IntelliJ
- 按一下工具視窗列中的「Gemini」sparkGemini。當畫面出現要求登入的訊息時,請依指示操作。
- 選取「代理人」分頁標籤。
- 說明您希望代理程式執行的工作。
當專員逐步完成工作時,您可以選擇查看並核准任何變更。
選用:如要自動核准變更,請選取「設定」「代理商選項」,然後按一下「自動核准變更」旁的核取方塊。
設定代理程式模式的工具
工具是廣泛的服務類別,代理程式可用於回應提示時的背景資訊和動作。例如 grep 和檔案讀取/寫入等內建工具、本機或遠端 Model Context Protocol (MCP) 伺服器及其可執行的函式,或是自訂服務實作。
控管內建工具的使用權
代理程式模式可存取內建工具,例如檔案搜尋、檔案讀取、檔案寫入、終端機指令等。
VS Code
您可以使用 coreTools
和 excludeTools
設定,控管 Gemini 在代理程式模式中可存取哪些工具。
coreTools
- 可讓你指定要提供給模型的工具清單。您也可以為支援這項功能的工具指定指令專屬限制。舉例來說,在 Gemini 設定 JSON 中加入下列內容,只允許執行
ls -l
指令:"coreTools": ["ShellTool(ls -l)"]
。 excludeTools
- 可讓你指定不想提供給模型的工具清單。您也可以為支援這項功能的工具指定指令專屬限制。舉例來說,在 Gemini 設定 JSON 中加入下列內容,即可禁止使用
rm -rf
指令:"excludeTools": ["ShellTool(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 伺服器,並在本機安裝 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"] } } }
開啟指令區塊面板,然後選取「Developer: Reload Window」(開發人員:重新載入視窗)。
代理程式可以代理程式模式使用您設定的 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 的個人存取權杖:
{ //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
是使用者的存取權杖。
IntelliJ
如要新增需要驗證的 MCP 伺服器,請將其加入 mcp.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
是使用者的存取權杖。
建立內容檔案
背景資訊可讓代理程式根據特定提示生成更優質的回覆。你可以從 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 模式,請按照下列步驟操作:
開啟 VS Code 使用者設定 JSON 檔案:
- 開啟指令區塊面板 (
ctrl
/command
+Shift
+P
)。 - 選取「Preferences: Open User Settings (JSON)」。
- 開啟指令區塊面板 (
將下列內容新增至 VS Code 使用者設定 JSON 檔案:
//other settings... "geminicodeassist.agentYoloMode": "true", //other settings...
開啟指令區塊面板,然後選取「Developer: Reload Window」(開發人員:重新載入視窗)。
代理人模式會使用 yolo 模式,且在您傳送提示時,不會先要求權限再採取行動。
IntelliJ
如要自動核准變更,請在 Gemini Chat 代理程式分頁中,選取「設定」代理程式選項,然後按一下「自動核准變更」旁的核取方塊。
代理人模式會自動核准所有要求,且在您傳送提示後,不會要求權限才採取行動。
其他提示
請嘗試使用自己的資訊,輸入下列提示:
- 「這個存放區有什麼作用?幫我瞭解架構。」
- 「這個 [類別/函式] 的用途是什麼?」
- 「Add a feature to this codebase - "[link-or-path-to-codebase]".」
- 「請重構函式 [A] 和 [B],使用通用方法 [C]。」
- 「修正 GitHub 問題 [link-to-github-issue]。」
- 「Build an application to do [goal] with a UI that lets the user do [task] in the [environment]」(建構應用程式,在 [環境] 中透過 UI 讓使用者執行 [工作],以達成 [目標])。
- 「Migrate library versions in this repository from [X] to [Y]」(將這個存放區中的程式庫版本從 [X] 遷移至 [Y])。
- 「Optimize performance of this Go code so that it runs faster.」(最佳化這段 Go 程式碼的效能,讓程式執行速度更快)。
- 「使用 [API 名稱] 建構這項功能。」
- 「Implement an algorithm to do [x], [Y], and [Z].」(實作演算法來執行 [x]、[Y] 和 [Z]。)
後續步驟
- 閱讀 Gemini Code Assist 總覽。
- 探索一些 MCP 伺服器範例。
- 如要查看更多 MCP 伺服器,請前往 GitHub。
- 透過 IDE 提供意見。