Gemini CLI 使用手冊
首頁
命令列介面
核心概念
工具調用
開源貢獻
首頁
命令列介面
核心概念
工具調用
開源貢獻
  • 歡迎使用 Gemini CLI 文件
  • Gemini CLI 執行與部署
  • 架構概覽
  • 檢查點 (Checkpointing)
  • 擴充功能
  • 可觀測性指南
  • 疑難排解指南
  • 服務條款與隱私權聲明

架構概覽

本文件提供 Gemini CLI 架構的概觀。

核心元件

Gemini CLI 主要由兩個主要套件構成,以及一套可在處理指令列輸入過程中供系統使用的工具:

  1. CLI 套件 (packages/cli):

    • 用途: 此套件包含 Gemini CLI 面向使用者的部分,例如處理初始使用者輸入、呈現最終輸出以及管理整體使用者體驗。
    • 套件中包含的主要函式:
      • 輸入處理
      • 歷史記錄管理
      • 顯示渲染
      • 主題與使用者介面自訂
      • CLI 組態設定
  2. Core 套件 (packages/core):

    • 用途: 此套件作為 Gemini CLI 的後端。它接收來自 packages/cli 的請求,協調與 Gemini API 的互動,並管理可用工具的執行。
    • 套件中包含的主要函式:
      • 用於與 Google Gemini API 通訊的 API 用戶端
      • 提示詞的建構與管理
      • 工具註冊與執行邏輯
      • 對話或工作階段的狀態管理
      • 伺服器端組態
  3. 工具 (packages/core/src/tools/):

    • 用途: 這些是獨立的模組,可擴充 Gemini 模型的功能,使其能與本機環境互動(例如:檔案系統、shell 指令、網路擷取)。
    • 互動: packages/core 根據 Gemini 模型的要求呼叫這些工具。

互動流程

與 Gemini CLI 的典型互動遵循此流程:

  1. 使用者輸入: 使用者在終端機中輸入提示詞或指令,此部分由 packages/cli 管理。
  2. 向 Core 套件發送請求: packages/cli 將使用者輸入傳送至 packages/core。
  3. 請求處理: Core 套件:
    • 為 Gemini API 建構適當的提示詞,可能包含對話歷史記錄和可用工具的定義。
    • 將提示詞傳送至 Gemini API。
  4. Gemini API 回應: Gemini API 處理提示詞並回傳回應。此回應可能是直接的答案,或是使用其中一個可用工具的請求。
  5. 工具執行(如適用):
    • 當 Gemini API 請求使用工具時,Core 套件會準備執行該工具。
    • 如果請求的工具會修改檔案系統或執行 shell 指令,系統會先向使用者提供該工具及其參數的詳細資訊,且使用者必須批准執行。
    • 唯讀操作(例如讀取檔案)可能不需要使用者明確確認即可繼續。
    • 一旦確認,或在不需要確認的情況下,Core 套件會在相關工具中執行相應的操作,並由 Core 套件將結果傳回 Gemini API。
    • Gemini API 處理工具結果並產生最終回應。
  6. 回應至 CLI: Core 套件將最終回應傳回 CLI 套件。
  7. 向使用者顯示: CLI 套件將回應格式化並顯示在終端機中給使用者。

主要設計原則

  • 模組化: 將 CLI(前端)與 Core(後端)分離,允許獨立開發和未來的潛在擴充(例如:為同一個後端提供不同的前端)。
  • 可擴充性: 工具系統被設計為可擴充的,允許新增新功能。
  • 使用者體驗: CLI 專注於提供豐富且互動的終端機體驗。
Last Updated: 6/29/25, 7:03 PM
Contributors: Will
Prev
Gemini CLI 執行與部署
Next
檢查點 (Checkpointing)