Инструмент для чтения нескольких файлов (read_many_files
)
Этот документ описывает инструмент read_many_files
для Qwen Code.
Описание
Используйте read_many_files
для чтения содержимого из нескольких файлов, указанных по путям или по glob-паттернам. Поведение этого инструмента зависит от переданных файлов:
- Для текстовых файлов инструмент объединяет их содержимое в одну строку.
- Для изображений (например, PNG, JPEG), PDF, аудио (MP3, WAV) и видео (MP4, MOV) файлов он читает и возвращает данные в формате base64, при условии, что они явно запрошены по имени или расширению.
read_many_files
может использоваться для выполнения таких задач, как получение общего представления о кодовой базе, поиск мест реализации определённой функциональности, просмотр документации или сбор контекста из нескольких конфигурационных файлов.
Примечание: read_many_files
ищет файлы по указанным путям или glob-паттернам. Путь к директории, например "/docs"
, вернёт пустой результат; инструменту требуется паттерн, такой как "/docs/*"
или "/docs/*.md"
, чтобы определить нужные файлы.
Аргументы
read_many_files
принимает следующие аргументы:
paths
(list[string], обязательный): Массив glob-паттернов или путей относительно целевой директории инструмента (например,["src/**/*.ts"]
,["README.md", "docs/*", "assets/logo.png"]
).exclude
(list[string], опциональный): Glob-паттерны для файлов/директорий, которые нужно исключить (например,["**/*.log", "temp/"]
). Эти паттерны добавляются к стандартным исключениям, еслиuseDefaultExcludes
равенtrue
.include
(list[string], опциональный): Дополнительные glob-паттерны для включения. Они объединяются сpaths
(например,["*.test.ts"]
, чтобы специально добавить тестовые файлы, если они были исключены в более общем виде, или["images/*.jpg"]
, чтобы включить определенные типы изображений).recursive
(boolean, опциональный): Искать ли файлы рекурсивно. В основном управляется символами**
в glob-паттернах. По умолчаниюtrue
.useDefaultExcludes
(boolean, опциональный): Применять ли список стандартных паттернов исключения (например,node_modules
,.git
, бинарные файлы, не являющиеся изображениями или PDF). По умолчаниюtrue
.respect_git_ignore
(boolean, опциональный): Учитывать ли паттерны из .gitignore при поиске файлов. По умолчаниюtrue
.
Как использовать read_many_files
с Qwen Code
read_many_files
ищет файлы, соответствующие указанным шаблонам paths
и include
, при этом учитывая шаблоны exclude
и стандартные исключения (если включены).
- Для текстовых файлов: инструмент читает содержимое каждого найденного файла (пытаясь пропустить бинарные файлы, если они не запрошены явно как изображения/PDF) и объединяет их в одну строку, разделяя содержимое каждого файла сепаратором
--- {filePath} ---
. По умолчанию используется кодировка UTF-8. - Для изображений и PDF-файлов: если файлы запрошены явно по имени или расширению (например,
paths: ["logo.png"]
илиinclude: ["*.pdf"]
), инструмент читает файл и возвращает его содержимое в виде строки в кодировке base64. - Инструмент пытается определить и пропустить другие бинарные файлы (которые не относятся к изображениям/PDF или не запрошены явно), проверяя наличие null-байтов в начале содержимого файла.
Использование:
read_many_files(paths=["Ваши файлы или пути здесь."], include=["Дополнительные файлы для включения."], exclude=["Файлы для исключения."], recursive=False, useDefaultExcludes=false, respect_git_ignore=true)
Примеры использования read_many_files
Чтение всех TypeScript файлов в директории src
:
read_many_files(paths=["src/**/*.ts"])
Чтение основного README, всех Markdown файлов в директории docs
и конкретного файла логотипа, исключая определенный файл:
read_many_files(paths=["README.md", "docs/**/*.md", "assets/logo.png"], exclude=["docs/OLD_README.md"])
Чтение всех JavaScript файлов, но с явным включением тестовых файлов и всех JPEG из папки images
:
read_many_files(paths=["**/*.js"], include=["**/*.test.js", "images/**/*.jpg"], useDefaultExcludes=False)
Важные замечания
- Работа с бинарными файлами:
- Файлы изображений/PDF/аудио/видео: Инструмент может читать распространенные типы изображений (PNG, JPEG и т.д.), PDF, аудио (mp3, wav) и видео (mp4, mov) файлы, возвращая их как данные в кодировке base64. Эти файлы должны быть явно указаны в паттернах
paths
илиinclude
(например, путем указания точного имени файла, какvideo.mp4
, или паттерна вроде*.mov
). - Другие бинарные файлы: Инструмент пытается обнаружить и пропустить другие типы бинарных файлов, проверяя наличие null-байтов в начале содержимого файла. Такие файлы исключаются из вывода инструмента.
- Файлы изображений/PDF/аудио/видео: Инструмент может читать распространенные типы изображений (PNG, JPEG и т.д.), PDF, аудио (mp3, wav) и видео (mp4, mov) файлы, возвращая их как данные в кодировке base64. Эти файлы должны быть явно указаны в паттернах
- Производительность: Чтение очень большого количества файлов или очень больших отдельных файлов может быть ресурсоемким.
- Точность путей: Убедитесь, что пути и glob-паттерны указаны корректно относительно целевой директории инструмента. Для файлов изображений/PDF убедитесь, что паттерны достаточно точные, чтобы включить нужные файлы.
- Исключения по умолчанию: Имейте в виду стандартные паттерны исключения (такие как
node_modules
,.git
) и используйтеuseDefaultExcludes=False
, если вам нужно их переопределить, но делайте это осмотрительно.