多文件读取工具 (read_many_files)

使用 read_many_files 从由路径或 glob 模式指定的多个文件中读取内容。

描述

此工具的行为取决于提供的文件:

  • 对于文本文件,此工具将其内容连接成单个字符串。
  • 对于图像和 PDF 文件,它会将它们读取并返回为 base64 编码的数据,前提是它们是通过名称或扩展名明确请求的。

可用于获取代码库的概览、查找特定功能的实现位置、审阅文档或从多个配置文件中收集上下文。

参数

  • paths (list[string], 必需): glob 模式或路径的数组。
  • exclude (list[string], 可选): 用于排除文件/目录的 glob 模式。
  • include (list[string], 可选): 要包含的其他 glob 模式。
  • recursive (boolean, 可选): 是否递归搜索。默认为 true
  • useDefaultExcludes (boolean, 可选): 是否应用默认排除模式列表。默认为 true
  • respect_git_ignore (boolean, 可选): 是否在查找文件时遵循 .gitignore 模式。默认为 true。

如何使用

该工具搜索与提供的 pathsinclude 模式匹配的文件,同时遵守 exclude 模式和默认排除项。文本文件内容会用分隔符 --- {filePath} --- 连接起来。

示例

读取 src 目录中的所有 TypeScript 文件:

read_many_files(paths=["src/**/*.ts"])

读取主 README、docs 目录中的所有 Markdown 文件以及一个特定的徽标图像,同时排除一个特定文件:

read_many_files(paths=["README.md", "docs/**/*.md", "assets/logo.png"], exclude=["docs/OLD_README.md"])

重要说明

二进制文件处理:

  • 图像/PDF 文件: 必须通过 pathsinclude 模式明确指定(例如,文件名 image.png 或模式 *.jpeg)才能被读取。
  • 其他二进制文件: 工具会尝试检测并跳过其他类型的二进制文件。

注意默认的排除模式(如 node_modules, .git),如果需要覆盖它们,请谨慎使用 useDefaultExcludes=False