Инструмент чтения нескольких файлов (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. - После последнего файла инструмент вставляет
--- End of content ---. - Для изображений и PDF-файлов: если они явно запрошены по имени или расширению (например,
paths: ["logo.png"]илиinclude: ["*.pdf"]), инструмент считывает файл и возвращает его содержимое в виде строки, закодированной в base64. - Инструмент пытается обнаружить и пропустить другие бинарные файлы (не соответствующие распространенным типам изображений/PDF или не запрошенные явно), проверяя наличие нулевых байтов в начале их содержимого.
Использование:
read_many_files(paths=["Your files or paths here."], include=["Additional files to include."], exclude=["Files to 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). - Другие бинарные файлы: Инструмент пытается обнаружить и пропустить другие типы бинарных файлов, проверяя наличие нулевых байтов в начале их содержимого. Эти файлы исключаются из вывода.
- Файлы изображений/PDF/аудио/видео: Инструмент может считывать распространенные типы изображений (PNG, JPEG и т.д.), PDF, аудио (mp3, wav) и видео (mp4, mov) файлы, возвращая их в виде данных, закодированных в base64. Эти файлы должны быть явно указаны в шаблонах
- Производительность: Чтение очень большого количества файлов или файлов большого размера может требовать значительных ресурсов.
- Точность путей: Убедитесь, что пути и glob-шаблоны указаны корректно относительно целевой директории инструмента. Для изображений и PDF-файлов убедитесь, что шаблоны достаточно конкретны для их включения.
- Исключения по умолчанию: Учитывайте шаблоны исключений по умолчанию (например,
node_modules,.git) и используйтеuseDefaultExcludes=False, если необходимо их переопределить, но делайте это с осторожностью.