Инструмент для чтения нескольких файлов (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=["Ваши файлы или пути здесь."], 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). - Другие бинарные файлы: Инструмент пытается обнаружить и пропустить другие типы бинарных файлов, проверяя наличие нулевых байтов в начале содержимого файла. Такие файлы исключаются из вывода инструмента.
- Файлы изображений/PDF/аудио/видео: Инструмент может читать распространенные типы изображений (PNG, JPEG и т.д.), PDF, аудио (mp3, wav) и видео (mp4, mov) файлы, возвращая их как данные в кодировке base64. Эти файлы обязательно должны быть явно указаны в паттернах
- Производительность: Чтение очень большого количества файлов или очень больших отдельных файлов может потреблять много ресурсов.
- Точность путей: Убедитесь, что пути и glob-паттерны правильно заданы относительно целевой директории инструмента. Для файлов изображений/PDF убедитесь, что паттерны достаточно точные, чтобы включить эти файлы.
- Исключения по умолчанию: Имейте в виду стандартные паттерны исключения (такие как
node_modules,.git) и используйтеuseDefaultExcludes=False, если вам нужно их переопределить, но делайте это осторожно.