核心
Gemini CLI 的核心套件 (packages/core
) 是 Gemini CLI 的後端部分,負責處理與 Gemini API 的通訊、管理工具,以及處理從 packages/cli
傳送過來的請求。有關 Gemini CLI 的一般性概述,請參閱主要文件頁面。
導覽本節
核心的角色
雖然 Gemini CLI 的 packages/cli
部分提供使用者介面,但 packages/core
負責:
- Gemini API 互動: 安全地與 Google Gemini API 通訊,傳送使用者提示,並接收模型回應。
- 提示工程: 為 Gemini 模型建構有效的提示,可能結合對話歷史、工具定義,以及來自
GEMINI.md
檔案的指示性內容。 - 工具管理與協調:
- 註冊可用的工具 (例如,檔案系統工具、shell 指令執行)。
- 解譯來自 Gemini 模型的工具使用請求。
- 使用提供的參數執行請求的工具。
- 將工具執行結果傳回給 Gemini 模型以進行進一步處理。
- 會話和狀態管理: 追蹤對話狀態,包括歷史記錄和連貫互動所需的任何相關內容。
- 設定: 管理核心特定的設定,例如 API 金鑰存取、模型選擇和工具設定。
安全考量
核心在安全性方面扮演著至關重要的角色:
- API 金鑰管理: 它處理
GEMINI_API_KEY
並確保在與 Gemini API 通訊時安全地使用它。 - 工具執行: 當工具與本機系統互動時 (例如,
run_shell_command
),核心 (及其底層工具實作) 必須以適當的謹慎態度執行,通常會涉及沙盒機制以防止意外修改。
聊天記錄壓縮
為確保長對話不會超過 Gemini 模型的權杖限制,核心包含聊天記錄壓縮功能。
當對話接近設定模型的權杖限制時,核心會在將對話記錄傳送至模型之前自動壓縮它。這種壓縮旨在資訊傳達方面無損,但會減少使用的權杖總數。
您可以在 Google AI 文件中找到每個模型的權杖限制。
模型備援
Gemini CLI 包含一個模型備援機制,以確保即使預設的 "pro" 模型受到速率限制,您仍然可以繼續使用 CLI。
如果您正在使用預設的 "pro" 模型,且 CLI 偵測到您受到速率限制,它會自動為目前會話切換到 "flash" 模型。這讓您可以不間斷地繼續工作。
檔案探索服務
檔案探索服務負責在專案中尋找與目前內容相關的檔案。@
指令和其他需要存取檔案的工具會使用它。
記憶探索服務
記憶探索服務負責尋找並載入為模型提供內容的 GEMINI.md
檔案。它會以階層式方式搜尋這些檔案,從目前工作目錄開始,向上移動到專案根目錄和使用者的家目錄。它也會在子目錄中搜尋。
這讓您可以擁有全域、專案層級和元件層級的內容檔案,這些檔案會被結合起來,為模型提供最相關的資訊。
您可以使用 /memory
指令 來 show
、add
和 refresh
已載入的 GEMINI.md
檔案的內容。