Gemini CLI 文件系统工具

Gemini CLI 提供了一套全面的工具,用于与本地文件系统进行交互。这些工具允许 Gemini 模型在您的控制下读取、写入、列出、搜索和修改文件和目录,并且通常会对敏感操作进行确认。

注意: 所有文件系统工具都在一个 rootDirectory(通常是您启动 CLI 的当前工作目录)内操作,以确保安全。提供给这些工具的路径通常应为绝对路径或相对于此根目录的路径。

1. list_directory (ReadFolder)

list_directory 列出指定目录路径下文件和子目录的名称。它可以选择性地忽略与提供的 glob 模式匹配的条目。

  • 参数: path (必需), ignore (可选), respect_git_ignore (可选)
  • 行为: 返回文件和目录名称列表,目录在前,然后按字母顺序排序。
  • 确认:

2. read_file (ReadFile)

read_file 读取并返回指定文件的内容。此工具处理文本、图像(PNG、JPG 等)和 PDF 文件。

  • 参数: path (必需), offset (可选), limit (可选)
  • 行为: 返回文件内容。对于图像和 PDF,返回 base64 编码的数据。
  • 确认:

3. write_file (WriteFile)

write_file 将内容写入指定文件。如果文件存在,它将被覆盖。如果文件不存在,它(以及任何必要的父目录)将被创建。

  • 参数: file_path (必需), content (必需)
  • 行为: 将提供的内容写入文件路径。
  • 确认: 是。在写入之前显示更改的差异并请求用户批准。

4. glob (FindFiles)

glob 查找与特定 glob 模式匹配的文件,返回按修改时间(最新优先)排序的绝对路径。

  • 参数: pattern (必需), path (可选), case_sensitive (可选), respect_git_ignore (可选)
  • 行为: 搜索与 glob 模式匹配的文件。
  • 确认:

5. search_file_content (SearchText)

search_file_content 在指定目录的文件内容中搜索正则表达式模式。返回包含匹配项的行及其文件路径和行号。

  • 参数: pattern (必需), path (可选), include (可选)
  • 行为: 使用 git grep 或类似工具进行快速搜索。
  • 确认:

6. replace (Edit)

replace 替换文件中的文本。此工具设计用于精确、有针对性的更改,并需要围绕 old_string 提供大量上下文以确保修改正确的位置。

  • 参数: file_path (必需), old_string (必需), new_string (必需), expected_replacements (可选)
  • 行为: 具有多阶段编辑校正机制以提高可靠性。
  • 确认: 是。显示建议更改的差异并请求用户批准。

关键: old_string 必须唯一标识要更改的单个实例。它应至少包含目标文本之前和之后的 3 行上下文,并精确匹配空白和缩进。