Gemini CLI 核心

Gemini CLI 的核心包 (packages/core) 是 Gemini CLI 的后端部分,负责与 Gemini API 通信、管理工具以及处理从 packages/cli 发送的请求。有关 Gemini CLI 的一般概述,请参阅主文档页面

导航本节

  • 核心工具 API 有关工具如何由核心定义、注册和使用的信息。

核心的作用

虽然 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 命令showaddrefresh 已加载 GEMINI.md 文件的内容。

updatedupdated2025-06-272025-06-27