代理模式

本文說明 Gemini Code Assist 的代理程式模式。

代理程式模式適用於 VS Code 和 IntelliJ 整合式開發環境 (IDE)。如要開始使用代理程式模式,請參閱將代理程式即時通訊當成結對程式設計師

VS Code 中的代理程式模式是由 Gemini CLI 支援。

IntelliJ 中的代理程式模式不會使用 Gemini CLI。

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

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

代理程式模式的運作方式

在代理程式模式中,系統會將提示連同可用工具清單傳送至 Gemini API。Gemini API 會處理提示並傳回回覆。回覆內容可能是直接答案,也可能是要求使用可用工具。

當代理程式要求使用工具時,會準備使用工具,並檢查是否允許在有或沒有明確權限的情況下使用工具:

  • 如果工具要求會修改檔案系統,或對任何資源執行變動作業,Gemini 會要求你允許該作業,除非你已將 Gemini 設定為一律允許該工具或工具。
  • 唯讀工具要求可能不會在完成工作前要求權限。

系統要求允許使用工具時,您可以選擇允許或拒絕這項操作。服務專員也可能會提供選項,讓您一律允許工具或伺服器,或允許類似作業。詳情請參閱「一律允許代理程式動作」。

獲得或自行授予工具使用權後,代理程式會使用工具完成必要動作,並將動作結果傳回 Gemini API。Gemini 會處理工具動作的結果,並生成其他回覆。這類行動和評估的循環會持續進行,直到工作完成為止。

如果是複雜工作,Gemini 可能會顯示高階計畫,請先核准。開始流程前,你可以在對話中微調計畫並提出問題。如果對企劃書感到滿意,可以核准。核准計畫後,代理程式就會開始處理第一項工作,並在執行計畫時視需要要求您提供說明或權限。

代理模式脈絡

背景資訊可讓代理程式根據特定提示生成更優質的回覆。你可以從 IDE 中的檔案、本機系統資料夾中的檔案、工具回應和提示詳細資料取得情境資訊。

視 IDE 和設定而定,代理程式可用的情境可能有所不同。

以下分頁說明如何為不同 IDE 收集內容。

VS Code

在代理程式模式下,Gemini Code Assist 通常可透過下列方式取得內容:

  • IDE 工作區中的資訊。
  • 來自 grep、終端機、檔案讀取或檔案寫入等內建工具的工具回應。
  • Google 搜尋回覆。
  • 提示或工具中提供的特定網址內容。
  • 以 Markdown 建立的脈絡檔案。

服務專員記憶體

VS Code 中的 Gemini Code Assist 代理程式模式會運用 Gemini CLI 記憶體探索服務,尋找並載入可為代理程式提供情境資訊的GEMINI.md檔案。記憶體探索服務會從目前的工作目錄開始,依階層搜尋這些檔案,然後向上移動至專案根目錄和主目錄。也會搜尋子目錄。

您可以建立全域、專案層級和元件層級的情境檔案,這些檔案會合併,為模型提供最相關的資訊。

您可以使用 /memory show 指令查看所有已載入 GEMINI.md 檔案的合併內容,並使用 /memory refresh 指令重新載入這些檔案。

IntelliJ

在代理程式模式下,Gemini Code Assist 通常可透過下列方式取得內容:

  • IDE 專案中的資訊,包括檔案、索引符號,以及專案中符號的使用情形。
  • 來自 grep、檔案讀取或檔案寫入等內建工具的工具回應。
  • IntelliJ 版本管控
  • 已設定的 MCP 伺服器和工具
  • 以 Markdown 建立的脈絡檔案。

您可以在代理程式模式的聊天提示區域,透過內容抽屜查看代理程式可用的內容。

代理模式內容抽屜。

工具

工具是廣泛的服務類別,代理程式可用於回應提示時的背景資訊和動作。代理程式可透過工具呼叫 API 端點或其他代理程式,存取最新資訊。工具可能只提供一項功能,也可能提供多項相關功能。

例如 grep 和檔案讀取/寫入等內建工具、本機或遠端模型內容通訊協定 (MCP) 伺服器及其可執行函式,以及 RESTful API 呼叫。

內建工具

在代理程式模式下,Gemini 可以存取內建的系統工具。選取 IDE,即可查看 Gemini 在代理程式模式中可用的內建工具清單。

VS Code

Gemini Code Assist 的代理模式可使用所有 Gemini CLI 內建工具

IntelliJ

read_file
使用檔案的絕對路徑擷取文字內容。
write_file
將指定文字寫入指定檔案,如果檔案不存在,則會建立檔案。
analyze_current_file
分析編輯器中開啟的檔案,找出錯誤和警告。
find_files
根據檔案名稱或部分路徑尋找檔案的絕對路徑
grep
找出專案中含有特定文字模式或規則運算式的所有檔案。
list_files
列出指定絕對路徑中的所有檔案和目錄。
resolve_symbol
將特定符號參照項目解析為原始宣告。
find_usages
在專案中搜尋指定符號宣告的所有參照。
git
執行 Git 指令列介面 (CLI) 指令,並傳回結果。
list_vcs_roots
傳回目前專案中的所有版本管控系統 (VCS) 根目錄,例如 Git 存放區。

限制

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

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

後續步驟