Gemini CLI 工具集
Gemini CLI 内置了一系列工具,供 Gemini 模型用来与您的本地环境交互、获取信息并执行操作。这些工具增强了 CLI 的功能,使其不仅能生成文本,还能协助完成各种任务。
Gemini CLI 工具概览
在 Gemini CLI 的上下文中,工具是指 Gemini 模型可以请求执行的特定功能或模块。例如,如果您要求 Gemini "总结 my_document.txt
的内容",模型可能会识别出需要读取该文件,并请求执行 read_file
工具。
核心组件 (packages/core
) 负责管理这些工具,向 Gemini 模型展示它们的定义(schema),在请求时执行它们,并将结果返回给模型以进一步处理成面向用户的响应。
这些工具提供以下能力:
- 访问本地信息:工具允许 Gemini 访问您的本地文件系统、读取文件内容、列出目录等。
- 执行命令:通过
run_shell_command
等工具,Gemini 可以运行 shell 命令(在适当的安全措施和用户确认下)。 - 与网络交互:工具可以从 URL 获取内容。
- 执行操作:工具可以修改文件、写入新文件或在您的系统上执行其他操作(同样通常会有安全保护措施)。
- 确保响应准确性:通过使用工具获取实时或特定的本地数据,Gemini 的响应可以更加准确、相关,并基于您的实际上下文。
如何使用 Gemini CLI 工具
要使用 Gemini CLI 工具,只需向 Gemini CLI 提供提示(prompt)。工作流程如下:
- 您向 Gemini CLI 提供提示
- CLI 将提示发送至核心系统
- 核心系统结合您的提示和对话历史,向 Gemini API 发送可用工具列表及其描述/架构
- Gemini 模型分析您的请求。如果判断需要调用工具,其响应将包含执行特定工具及参数的请求
- 核心系统接收该工具请求,验证后(对于敏感操作通常需要用户确认)执行工具
- 工具的输出结果返回至 Gemini 模型
- Gemini 模型利用工具输出生成最终答案,通过核心系统返回 CLI 并显示给您
您通常会在 CLI 中看到提示消息,显示何时调用工具以及执行是否成功。
安全性与确认机制
许多工具(特别是可能修改文件系统或执行命令的工具如 write_file
、edit
、run_shell_command
)都内置了安全设计。Gemini CLI 通常会:
- 要求确认:在执行潜在敏感操作前提示您,显示即将执行的操作内容
- 使用沙盒机制:所有工具都受到沙盒限制(参见 README)。这意味着在沙盒环境中运行时,您希望使用的任何工具(包括 MCP 服务器)必须能在沙盒环境内部访问。例如要通过
npx
运行 MCP 服务器,则必须在沙盒的 Docker 镜像中安装npx
可执行文件,或确保其在sandbox-exec
环境中可用
请务必在执行前仔细查看确认提示信息。
深入了解 Gemini CLI 工具集
Gemini CLI 的内置工具可大致分为以下几类:
- 文件系统工具:用于与文件和目录交互(读取、写入、列出、搜索等)。
- Shell 工具 (
run_shell_command
):用于执行 shell 命令。 - 网页抓取工具 (
web_fetch
):用于从 URL 获取内容。 - 网页搜索工具 (
web_search
):用于执行网页搜索。 - 多文件读取工具 (
read_many_files
):专用于从多个文件或目录读取内容的工具,常被@
命令调用。 - 记忆工具 (
save_memory
):用于跨会话保存和调取信息。
此外,这些工具还整合了: