Gemini CLI 使用手冊
首頁
命令列介面
核心概念
工具執行
開源貢獻
報名課程
首頁
命令列介面
核心概念
工具執行
開源貢獻
報名課程
  • 歡迎使用 Gemini CLI 文件
  • Gemini CLI 執行與部署
  • Gemini CLI 架構總覽
  • 檢查點(Checkpointing)
  • Gemini CLI 擴充套件
  • 使用 OpenTelemetry 進行可觀測性
  • 疑難排解指南
  • 服務條款與隱私權公告
  • 套件總覽
  • 整合測試
  • Gemini CLI:配額與定價
  • Gemini CLI 的沙箱機制
  • 卸載命令列介面 (CLI)

Gemini CLI 架構總覽

本文件提供 Gemini CLI 架構的高階概覽。

核心元件

Gemini CLI 主要由兩個主要套件組成,並搭配一組可由系統在處理命令列輸入過程中使用的工具:

  1. CLI 套件 (packages/cli):

    • 目的: 包含 Gemini CLI 的使用者介面部分,例如處理初始使用者輸入、呈現最終輸出,以及管理整體使用者體驗。
    • 套件內含的主要功能:
      • 輸入處理
      • 歷史紀錄管理
      • 顯示渲染
      • 佈景主題與 UI 客製化
      • CLI 設定管理
  2. Core 套件 (packages/core):

    • 目的: 作為 Gemini CLI 的後端。負責接收從 packages/cli 發送的請求,協調與 Gemini API 的互動,並管理可用工具的執行。
    • 套件內含的主要功能:
      • 與 Google Gemini API 通訊的 API client
      • 提示詞(prompt)建構與管理
      • 工具註冊與執行邏輯
      • 對話或工作階段的狀態管理
      • 伺服器端設定
  3. 工具 (packages/core/src/tools/):

    • 目的: 這些是擴充 Gemini 模型能力的獨立模組,使其能與本地環境互動(例如:檔案系統、shell 指令、網頁擷取)。
    • 互動方式: packages/core 會根據 Gemini 模型的請求呼叫這些工具。

互動流程

與 Gemini CLI 的典型互動流程如下:

  1. 使用者輸入: 使用者在終端機輸入提示詞或指令,這由 packages/cli 管理。
  2. 發送請求至核心: packages/cli 將使用者輸入傳送給 packages/core。
  3. 請求處理: Core 套件會:
    • 為 Gemini API 建構合適的提示詞,可能包含對話歷史與可用工具定義。
    • 將提示詞發送給 Gemini API。
  4. Gemini API 回應: Gemini API 處理提示詞並回傳回應。此回應可能是直接答案,也可能是要求使用某個可用工具。
  5. 工具執行(如適用):
    • 當 Gemini API 請求工具時,Core 套件會準備執行該工具。
    • 若請求的工具會修改檔案系統或執行 shell 指令,系統會先向使用者說明該工具及其參數,並要求使用者批准執行。
    • 僅讀取操作(如讀取檔案)則可能不需要使用者明確確認即可執行。
    • 一旦獲得確認,或如無需確認,Core 套件會在相關工具中執行對應動作,並將結果回傳給 Gemini API。
    • Gemini API 處理工具結果並產生最終回應。
  6. 回應傳送至 CLI: Core 套件將最終回應傳送回 CLI 套件。
  7. 顯示給使用者: CLI 套件在終端機格式化並顯示回應給使用者。

主要設計原則

  • 模組化: 將 CLI(前端)與 Core(後端)分離,便於獨立開發與未來擴充(例如:為同一後端開發不同前端)。
  • 可擴充性: 工具系統設計為可擴充,方便新增新功能。
  • 使用者體驗: CLI 著重於提供豐富且互動式的終端機體驗。
Last Updated: 10/1/25, 8:28 PM
Contributors: Will
Prev
Gemini CLI 執行與部署
Next
檢查點(Checkpointing)
本網站由 Will 保哥 翻譯、建置與維護,歡迎追蹤我的
歡迎追蹤我的 Will 保哥的技術交流中心 粉絲團