將代理程式聊天室當做結對程式設計師使用

本文說明如何在整合式開發環境 (IDE) 中,設定及使用 Gemini Code Assist 代理程式模式,做為結對程式設計師。

使用代理程式模式,你可以執行下列操作:

  • 詢問程式碼相關問題。
  • 運用背景資訊和內建工具,改善生成的內容。
  • 設定 MCP 伺服器,擴充代理程式的功能。
  • 取得多步驟複雜工作的解決方案。
  • 根據設計文件、問題和TODO註解生成程式碼。
  • 在執行期間,您可以透過註解、編輯及核准計畫和工具使用情形,控制代理程式行為。

限制

標準 Gemini Code Assist 對話的部分功能可能無法在代理程式模式中使用,或運作方式與標準對話不同。

朗讀功能不適用於代理模式。在代理程式模式下,Gemini 不會引用資料來源,且無法停用與引用來源相符的程式碼建議

事前準備

使用代理模式

在代理程式模式下,你可以要求 Gemini 完成高階目標和複雜工作。

如要充分發揮代理程式模式的效用,請遵循提示最佳做法,並盡可能提供詳細資訊。

如要切換至代理程式模式:

VS Code

  1. 如要開啟 Gemini Code Assist 對話,請在 IDE 的活動列中點按「Gemini Code Assist」spark
  2. 按一下「代理程式」切換按鈕,進入代理程式模式。切換至服務專員模式時,切換按鈕會醒目顯示;切換至一般對話時,切換按鈕則會顯示為灰色。
  3. 在 Gemini Code Assist 對話中輸入提示。

Gemini 會回覆提示,或要求使用工具的權限。

如要停止代理程式,請按一下「停止」

如要使用標準的 Gemini Code Assist 對話,請按一下「New chat」建立新的對話。

Gemini Code Assist 代理程式模式採用 Gemini CLI

IntelliJ

  1. 按一下工具視窗列中的「Gemini」sparkGemini。當畫面出現要求登入的訊息時,請依指示操作。
  2. 選取「代理人」分頁標籤。
  3. 說明您希望代理程式執行的工作。
  4. 當專員逐步完成工作時,您可以選擇查看並核准任何變更。

  5. 選用:如要自動核准變更,請選取「設定」「代理商選項」,然後按一下「自動核准變更」旁的核取方塊。

設定代理程式模式的工具

工具是廣泛的服務類別,代理程式可用於回應提示時的背景資訊和動作。例如 grep 和檔案讀取/寫入等內建工具、本機或遠端 Model Context Protocol (MCP) 伺服器及其可執行的函式,或是自訂服務實作。

控管內建工具的使用權

代理程式模式可存取內建工具,例如檔案搜尋、檔案讀取、檔案寫入、終端機指令等。

VS Code

您可以使用 coreToolsexcludeTools 設定,控管 Gemini 在代理程式模式中可存取哪些工具。

coreTools
可讓你指定要提供給模型的工具清單。您也可以為支援這項功能的工具指定指令專屬限制。舉例來說,在 Gemini 設定 JSON 中加入下列內容,只允許執行 ls -l 指令:"coreTools": ["ShellTool(ls -l)"]
excludeTools
可讓你指定不想提供給模型的工具清單。您也可以為支援這項功能的工具指定指令專屬限制。舉例來說,在 Gemini 設定 JSON 中加入下列內容,即可禁止使用 rm -rf 指令: "excludeTools": ["ShellTool(rm -rf)"]

如果工具同時列在 excludeToolscoreTools 中,則會排除該工具。

如要設定代理程式模式提供的內建工具,請按照下列步驟操作:

  1. 開啟位於 ~/.gemini/settings.json 的 Gemini 設定 JSON,其中 ~ 是您的主目錄。
  2. 如要將代理程式工具的使用限制在核准工具清單中,請在 Gemini 設定 JSON 中加入下列程式碼:

    "coreTools": ["TOOL_NAME_1,TOOL_NAME_2"]
    

    TOOL_NAME_1TOOL_NAME_2 替換為您要授予代理程式存取權的內建工具名稱。

    你可以列出任意數量的內建工具。 根據預設,代理程式可以使用所有內建工具。

  3. 如要限制代理程式工具只能使用特定工具指令,請在 Gemini 設定 JSON 中加入下列程式碼:

    "coreTools": ["TOOL_NAME(COMMAND)"]
    

    更改下列內容:

    • TOOL_NAME:內建工具的名稱
    • COMMAND:您希望代理程式能夠使用的內建工具指令名稱。
  4. 如要禁止代理程式使用某項工具,請在 Gemini 設定 JSON 中加入下列程式碼:

    "excludeTools": ["TOOL_NAME_1,TOOL_NAME_2"]
    

    TOOL_NAME_1TOOL_NAME_2 替換為要禁止代理程式使用的內建工具名稱。

  5. 如要禁止代理程式使用工具指令,請在 Gemini 設定 JSON 中加入下列程式碼:

    "excludeTools": ["TOOL_NAME(COMMAND)"]
    

    更改下列內容:

    • TOOL_NAME:內建工具的名稱
    • COMMAND:要從代理程式使用中排除的內建工具指令名稱。

如要進一步瞭解 coreToolsexcludeTools 設定,請參閱 Gemini CLI 設定說明文件

IntelliJ

IntelliJ 或其他 JetBrains IDE 的 Gemini Code Assist 不支援這項功能。

設定 MCP 伺服器

VS Code

如要控管代理程式模式中可用的伺服器,請按照伺服器說明文件,將伺服器新增至 Gemini 設定 JSON。

  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. 開啟指令區塊面板,然後選取「Developer: Reload Window」(開發人員:重新載入視窗)

代理程式可以代理程式模式使用您設定的 MCP 伺服器。

IntelliJ

如要控管代理程式模式中可用的伺服器,請將伺服器新增至 mcp.json 檔案,然後將該檔案放入 IDE 的設定目錄

  1. 安裝 MCP 伺服器所需的任何依附元件。
  2. 在 IDE 的設定目錄中建立 mcp.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"]
            }
        }
    }
    

代理程式可以代理程式模式使用您設定的 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

  1. 在符合您要套用環境範圍的位置,建立名為 GEMINI.md 的檔案。下表詳細列出不同範圍的內容檔案位置:

    範圍 位置
    所有專案 ~/.gemini/GEMINI.md
    特定專案 工作目錄或任何上層目錄,直到專案根目錄 (由 .git 資料夾識別) 或主目錄為止。
    專案的特定元件、模組或子區段 工作目錄的子目錄。

    代理程式的記憶體系統是從多個位置載入內容檔案所建立。來自更具體檔案 (例如特定元件或模組的檔案) 的內容,會覆寫或補充來自更一般內容檔案 (例如 ~/.gemini/GEMINI.md 的全域內容檔案) 的內容。

  2. 以 Markdown 格式撰寫任何規則、風格指南資訊或情境,供代理程式使用,然後儲存檔案。詳情請參閱 GitHub 上的範例內容檔案

代理程式會將背景資訊檔案中的資訊,連同您傳送給代理程式的任何提示一併納入。

IntelliJ

  1. 在專案根目錄中建立名為 GEMINI.mdAGENT.md 的檔案。

  2. 以 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 模式,請按照下列步驟操作:

  1. 開啟 VS Code 使用者設定 JSON 檔案:

    1. 開啟指令區塊面板 (ctrl/command + Shift + P)。
    2. 選取「Preferences: Open User Settings (JSON)」
  2. 將下列內容新增至 VS Code 使用者設定 JSON 檔案:

    //other settings...
    
    "geminicodeassist.agentYoloMode": "true",
    //other settings...
    
  3. 開啟指令區塊面板,然後選取「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]。)

後續步驟