使用 Gemini Code Assist 的 Agent 模式

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

在代理模式下,您可以執行下列操作:

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

限制

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

代理模式不支援背誦功能。在代理模式下,Gemini 不會引用來源,您也無法停用與引用來源相符的程式碼建議。

事前準備

  1. 設定 Gemini Code Assist。

使用 Agent 模式

在 Agent 模式下,您可以問問 Gemini 完成高階目標和複雜工作。

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

如要切換至代理模式,請按照下列步驟操作:

VS Code

  1. 在 IDE 活動列中,點選 spark「Gemini Code Assist」,開啟 Gemini Code Assist 對話。
  2. 點選「代理」切換鈕,進入代理模式。切換至代理模式時,切換鈕會醒目顯示,在一般對話中則會顯示為灰色。
  3. 在 Gemini Code Assist 對話中輸入提示詞。

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

如要停止代理程式,請按一下「 Stop」(停止)。

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

IntelliJ

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

  5. 選用:如要自動核准變更,請依序選取「設定」「代理程式選項」,然後勾選「自動核准變更」旁的核取方塊。

設定 Agent 模式的工具

工具是廣泛的服務類別,代理可使用這些服務,在回覆提示時提供背景資訊和執行動作。例如 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 中,系統會排除該工具。

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

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

    "coreTools": ["TOOL_NAME_1,TOOL_NAME_2"]
    

    將 TOOL_NAME_1 和 TOOL_NAME_2 替換為要讓代理存取的內建工具名稱。

    您可以視需要列出多項內建工具。根據預設,代理可以使用所有內建工具。

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

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

    更改下列內容:

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

    "excludeTools": ["TOOL_NAME_1,TOOL_NAME_2"]
    

    將 TOOL_NAME_1 和 TOOL_NAME_2 替換為要排除的內建工具名稱。

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

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

    更改下列內容:

    • TOOL_NAME:內建工具的名稱
    • COMMAND:要排除在代理使用範圍外的內建工具指令名稱。

如要進一步瞭解 coreTools 和 excludeTools 設定,請參閱 Gemini CLI 設定說明文件。

IntelliJ

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

設定 MCP 伺服器

下列操作說明說明如何在 IDE 的代理模式中,使用 MCP 伺服器。提供 MCP 伺服器後,Gemini Code Assist 會自動決定何時及如何使用該 MCP 伺服器中的伺服器工具。

VS Code

如要在代理模式中使用 MCP 伺服器,請根據各伺服器的說明文件,在 Gemini 設定 JSON 檔案中新增各伺服器的設定。

  1. 安裝要新增的 MCP 伺服器所需的依附元件。
  2. 開啟 Gemini 設定 JSON 檔案,位置在 ~/.gemini/settings.json,其中 ~ 是主目錄。
  3. 請按照各伺服器的操作說明,在 Gemini 設定 JSON 檔案中設定每個本機或遠端 MCP 伺服器。

    下列 Gemini 設定 JSON 檔案範例設定了兩個遠端 Cloudflare MCP 伺服器、一個遠端 GitLab MCP 伺服器,以及一個本機 GitHub MCP 伺服器,用於 VS Code 中的 Gemini Code Assist。

    {
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_example_personal_access_token12345"
          }
        },
        "gitlab": {
          "command": "npx",
          "args": ["mcp-remote", "https://your-gitlab-instance.com/api/v4/mcp"]
        },
        "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 伺服器,請在 mcp.json 檔案中新增各伺服器的設定,並將 mcp.json 檔案放在 IDE 的設定目錄中。

  1. 安裝要新增的 MCP 伺服器所需的依附元件。
  2. 在 IDE 的設定目錄中,建立名為 mcp.json 的檔案。
  3. 請按照各伺服器的操作說明,在 mcp.json 檔案中設定每個本機或遠端 MCP 伺服器。

    下列 mcp.json 檔案範例設定了兩個遠端 Cloudflare MCP 伺服器、一個遠端 GitLab MCP 伺服器,以及一個本機 GitHub MCP 伺服器,用於 IntelliJ 中的 Gemini Code Assist。

    {
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_example_personal_access_token12345"
          }
        },
        "gitlab": {
          "command": "npx",
          "args": ["mcp-remote", "https://your-gitlab-instance.com/api/v4/mcp"]
        },
        "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 伺服器需要驗證。請按照伺服器說明文件建立任何必要的使用者權杖,然後適當指定。一般來說,您可以使用適當的伺服器專屬環境變數,為本機伺服器指定驗證權杖,並使用 HTTP Authorization 標頭為遠端伺服器指定驗證權杖。

VS Code

如果 MCP 伺服器需要驗證,您可以將其新增至 Gemini 設定 JSON。

以下範例說明如何為 GitHub 本機和遠端 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

  1. 在要套用結構定義的範圍內,建立名為 GEMINI.md 的檔案。下表詳細列出不同範圍的背景資訊檔案位置:

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

    代理的記憶體系統是透過載入多個位置的背景資訊檔案建立而成。特定檔案 (例如特定元件或模組的檔案) 的脈絡,會覆寫或補充一般脈絡檔案 (例如 ~/.gemini/GEMINI.md 的全域脈絡檔案) 的內容。

  2. 以 Markdown 格式寫下您希望代理使用的規則、樣式指南資訊或背景資訊,然後儲存檔案。詳情請參閱 GitHub 上的範例內容檔案。

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

IntelliJ

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

  2. 以 Markdown 格式寫下您希望代理使用的規則、樣式指南資訊或背景資訊,然後儲存檔案。

代理會將背景資訊檔案中的資訊,與您傳送給代理的任何提示詞一併納入。您也可以使用 @FILENAME 語法手動加入檔案,提供背景資訊,其中 FILENAME 是要加入的背景資訊檔案名稱。

使用指令

斜線 / 指令可讓您快速執行指令,類似於在終端機視窗中執行指令。

VS Code

在代理模式下,您可以使用下列內建 Gemini CLI 指令:

  • /tools:顯示代理模式工作階段中可用的工具清單。
  • /mcp:列出已設定的 Model Context Protocol (MCP) 伺服器、連線狀態、伺服器詳細資料和可用工具。

  • /deploy:將網頁應用程式部署至 Cloud Run。這項以 Gemini CLI 為基礎的自訂指令會使用 Cloud Run Model Context Protocol (MCP) 伺服器,建構、容器化、推送、設定及傳回應用程式的公開網址。您必須在 Google Cloud專案中啟用 Cloud Run,並安裝 Cloud Run MCP 伺服器做為 Gemini 擴充功能,才能使用這項指令。

如要進一步瞭解 Gemini CLI 指令,請參閱「Gemini CLI 指令」和「Gemini 自訂指令」。請注意,並非所有 Gemini CLI 指令都可在代理模式下使用。

IntelliJ

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

一律允許代理執行動作

您可以自動允許所有代理動作。

如要自動允許所有代理動作,請按照下列步驟操作:

VS Code

使用 yolo 模式,自動允許所有代理動作。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 對話代理分頁中,依序選取「設定」「代理選項」,然後勾選「自動核准變更」旁的核取方塊。

代理模式會自動核准所有要求,並在收到提示後直接採取行動,不會要求權限。

其他提示

請試試下列提示詞,並填入自己的資訊:

  • 「這個存放區有什麼作用?請協助我瞭解架構。」
  • *「這個 [類別/函式] 有什麼作用?」
  • 「為這個程式碼集新增功能 - [link-or-path-to-codebase]。」
  • 「重構函式 [A] 和 [B],改用通用方法 [C]。」
  • 「修正 GitHub 問題 [link-to-github-issue]。」
  • 「建構應用程式來達成 [目標],並提供 UI 讓使用者在 [環境] 中執行 [工作]。」
  • 「將這個存放區中的程式庫版本從 [X] 遷移至 [Y]。」
  • 「最佳化這段 Go 程式碼的效能,加快執行速度。」
  • 「使用 [API 名稱] 建構這項功能。」
  • 「實作演算法來執行 [x]、[Y] 和 [Z]。」

選用:使用 API 金鑰

Gemini Code Assist 的代理功能每日配額因級別而異。

如果 Gemini Code Assist 代理模式的每日配額用盡,只要提供 API 金鑰,即可繼續使用服務。您可以使用 Gemini API 金鑰或 Vertex AI API 金鑰。

如何新增 API 金鑰:

  1. 前往 IDE 的設定。

  2. 開啟 settings.json 檔案。

  3. 新增下列程式碼,並將 YOUR_KEY 換成您的 API 金鑰:

    "geminicodeassist.geminiApiKey": "YOUR_KEY"

後續步驟