跳转到内容

Gemini CLI 工具

Gemini CLI 包含内置工具,Gemini 模型使用这些工具与本地环境交互,获取信息并执行操作。这些工具增强了 CLI 的功能,使其不仅能进行文本生成,还能协助处理各种任务。

在 Gemini CLI 的上下文中,工具是 Gemini 模型可以请求执行的具体功能或模块。例如,如果你让 Gemini “总结 my_document.txt 的内容”,模型很可能会识别出需要读取该文件,并请求执行 read_file 工具。

核心组件 (packages/core) 管理这些工具,向 Gemini 模型展示它们的定义(架构),在请求时执行它们,并将结果返回给模型以进一步处理成面向用户的响应。

这些工具提供以下功能:

  • 访问本地信息: 工具允许 Gemini 访问你的本地文件系统,读取文件内容,列出目录等。
  • 执行命令: 通过 run_shell_command 等工具,Gemini 可以运行 shell 命令(具备适当的安全措施和用户确认)。
  • 与网络互动: 工具可以从 URL 获取内容。
  • 采取行动: 工具可以修改文件,写入新文件,或在你的系统上执行其他操作(通常也会采取保护措施)。
  • 使响应更具体: 通过使用工具获取实时或特定的本地数据,Gemini 的响应可以更准确、更相关,并且基于你的实际情境。

要使用 Gemini CLI 工具,请向 Gemini CLI 提供提示。这个过程如下进行:

  1. 你向 Gemini CLI 提供提示词。
  2. CLI 将提示词发送到核心程序。
  3. 核心程序会连同你的提示词和对话历史,将可用的工具及其描述/架构发送到 Gemini API。
  4. Gemini 模型分析你的请求。如果它确定需要某个工具,其响应将包括执行特定工具并带有某些参数的请求。
  5. 核心程序接收到这个工具请求,验证它,并在用户确认(对于敏感操作通常是必需的)后执行该工具。
  6. 工具的输出将被发送回 Gemini 模型。
  7. Gemini 模型使用工具的输出来制定最终答案,然后通过核心程序发送回 CLI 并展示给你。

你通常会在 CLI 中看到工具调用以及它成功或失败的消息。

许多工具,尤其是那些可以修改你的文件系统或执行命令的工具,在设计时都考虑到了安全性。Gemini CLI 通常会:

  • 需要确认: 在执行潜在的敏感操作之前提示你,向你展示即将执行的操作。
  • 利用沙盒机制: 所有工具都受到沙盒机制的限制(请参阅 Gemini CLI 中的沙盒机制)。这意味着在沙盒环境中操作时,你希望使用的任何工具(包括 MCP 服务器)必须在沙盒环境内部可用。例如,要通过 npx 运行 MCP 服务器,必须在沙盒的 Docker 镜像中安装 npx 可执行文件,或者在 sandbox-exec 环境中可用。

在允许工具继续之前,仔细审查确认提示非常重要。

Gemini CLI 的内置工具可以大致分类如下:

文件系统工具 用于与文件和目录交互(读取、写入、列出、搜索等)。 Shell 工具 (run_shell_command): 用于执行 Shell 命令。 网络获取工具 (web_fetch): 用于从 URL 获取内容。 网络搜索工具 (google_web_search): 用于网络搜索。 内存工具 (save_memory): 用于跨会话保存和回忆信息。 待办工具 (write_todos): 用于管理复杂请求的子任务。

此外,这些工具还包括:

MCP 服务器:MCP 服务器作为 Gemini 模型与您的本地环境或其他服务(如 API)之间的桥梁。 沙盒:沙盒将模型及其更改与您的环境隔离,以降低潜在风险。