複数ファイル読み取りツール (read_many_files)
このドキュメントでは、Qwen Code 用の read_many_files ツールについて説明します。
説明
read_many_files を使用して、パスまたはグロブパターンで指定された複数のファイルからコンテンツを読み取ります。このツールの動作は、提供されたファイルに依存します:
- テキストファイルの場合、このツールはそのコンテンツを1つの文字列に連結します。
- 画像(例:PNG、JPEG)、PDF、音声(MP3、WAV)、動画(MP4、MOV)ファイルの場合、名前または拡張子で明示的に要求された場合に限り、それらをbase64エンコードされたデータとして読み取り、返却します。
read_many_files は、コードベースの概要を取得したり、特定の機能が実装されている場所を見つけたり、ドキュメントをレビューしたり、複数の設定ファイルからコンテキストを収集したりするなどのタスクを実行するために使用できます。
注意: read_many_files は、提供されたパスまたはグロブパターンに従ってファイルを検索します。"/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。
Qwen Code で read_many_files を使用する方法
read_many_files は、指定された paths および include パターンに一致するファイルを検索し、exclude パターンとデフォルトの除外設定(有効な場合)を考慮します。
- テキストファイルの場合:一致した各ファイルの内容を読み込み(明示的に画像/PDFとして要求されていないバイナリファイルはスキップを試み)、各ファイルの内容の間に区切り文字
--- {filePath} ---を挿入して1つの文字列に連結します。デフォルトではUTF-8エンコーディングを使用します。 - ツールは最後のファイルの後に
--- End of content ---を挿入します。 - 画像および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 の例
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"])すべての JavaScript ファイルを読み込むが、明示的にテストファイルと images フォルダ内のすべての JPEG を含める:
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を使用して上書きできますが、慎重に行ってください。
Last updated on