oss-sync b1292e34b2
Some checks failed
CI / build-and-test (push) Has been cancelled
sync: update from private repo (edc775f2)
2026-07-06 01:04:12 +00:00

6.4 KiB
Raw Permalink Blame History

Read

テキストでもドキュメントでも、あらゆるファイルを 1 つの Read で読む。拡張子から フォーマットを自動判定し、Office / PDF / メールは内部の抽出ハンドラへ委譲する。

以前は ReadExcel / ReadDocx / ReadPdf / ReadPPTX / ReadMsg が独立ツールとして 存在したが、「どのリーダーを選ぶか」で誤りが起きやすかったため Read に統合した。 今はどのファイルでも Read({ file_path }) を呼べばよい。

画像ファイル(.png / .jpg / .gif / .webp / .bmp / .tif 等)は Read では開けない。 VLM で内容を見る ReadImage を使う(意味的に別物のため統合していない)。

フォーマット自動判定

拡張子 委譲先の抽出 返るもの
.txt / .md / .csv / コード等のテキスト Read 本体(行 / バイト読み) 生テキスト
.xlsx / .xlsm Excel 抽出 シートのセル値(+任意で装飾)
.docx Word 抽出 本文+表
.pdf PDF 抽出 ページ単位テキスト(+任意で検索)
.pptx PowerPoint 抽出 スライドのテキスト・表・ノート
.msg Outlook メール抽出 件名 / 送受信者 / 本文、添付は input/ に保存

旧バイナリ Office.xls / .doc / .ppt の CFB 形式)は直接抽出できない。 Read すると「.xlsx / .docx / .pptx として保存し直してください」と案内されるので、 変換してから読む(.xlsm / .docm / .pptm のマクロ有効形式は読める)。

不透明なバイナリ(.zip / .exe / .db / 音声 / 動画 等)や、先頭バイトがバイナリと判定 されたファイルは拒否するLLM コンテキスト破壊を防ぐため)。

共通パラメータinline schema

パラメータ 説明
file_path workspace 内の相対 / 絶対パス(必須)
offset 読み始める行番号0-indexedテキスト読みのみ有効PDF/Office では無視される)
limit 読む最大行数。テキスト読みのみ有効PDF/Office では無視される)
byte_offset 読み始めるバイト位置。改行の無い巨大ファイル向け。offset / limit と排他。テキスト読みのみ有効
byte_length 読むバイト数。byte_offset と併用。テキスト読みのみ有効
page_range PDF のページ範囲(例 5-10 / 3。PDF を途中から / 一部だけ読むときは offset ではなくこれを使う

大きすぎる出力は残コンテキスト予算に収まるよう自動で切り詰められ、続きの読み方が 注記される。

PDF/Office をずらして読むとき: offset / limit / byte_*テキスト専用で、 PDF・Excel・Word・PowerPoint では黙って無視される常に先頭から返る。PDF は page_range、Excel は sheet / range を使うこと。これらのフォーマットに offset / limit を渡すと、出力の先頭に正しいパラメータへの誘導注記が付く。

フォーマット固有の詳細オプションinline schema には無いが実行時に受理される)

Read はこれらを raw のまま抽出ハンドラへ素通しする。inline schema を軽く保つため 一覧には出していないので、必要なときはここを見て指定する。

Excel.xlsx / .xlsm

オプション 説明
sheet シート名(省略時は全シート)
range セル範囲(例 A1:D10、省略時はシート全体)
max_cells 最大セル数(デフォルト 1000
include_styles true で背景色 / フォント / 罫線 / 書式 / 結合を ### Styles として追記(デフォルト false
max_style_ranges include_styles 時の style range 上限(デフォルト 250

Word.docx

オプション 説明
mode text / text+tables(デフォルト text+tables
max_paragraphs 最大段落数(デフォルト 200

PDF.pdf

オプション 説明
page_range(別名 pageRange ページ範囲(例 1-5 / 3、省略時は全ページ。inline schema にも公開済み
max_pages 抽出する最大ページ数
max_chars 返却する最大文字数(デフォルト 8000
query 指定するとマッチしたページのみを grep -n 風(周辺行付き)で返す
query_mode substring(既定・大小無視の部分一致)/ regex(大小区別)/ iregex(大小無視の正規表現)
context_lines query マッチ時の前後コンテキスト行数(デフォルト 2、最大 20

スキャン PDFテキスト無しPdfToImages で PNG 化してから ReadImage で読む。

PowerPoint.pptx

オプション 説明
slideRange スライド範囲(例 1-5 / 3、省略時は全スライド)

Outlook メール(.msg

  • 件名・送信者・宛先・本文を抽出する。
  • 添付ファイルは input/ に保存し、保存先パスを出力に列挙する。
  • 読み取り専用フェーズverify 等、edit 不可)では添付を保存せず、その旨を注記する。
  • ファイル名衝突時は name-1.ext のように連番で退避し、既存ファイルは上書きしない。

使用例

Read({ file_path: "input/report.md" })                       // テキスト
Read({ file_path: "input/sales.xlsx", sheet: "Q1", range: "A1:D20" })
Read({ file_path: "input/spec.docx", mode: "text" })
Read({ file_path: "input/manual.pdf", page_range: "5-10" })   // PDF の 5-10 ページ目
Read({ file_path: "input/manual.pdf", query: "認証", context_lines: 3 })
Read({ file_path: "input/deck.pptx", slideRange: "2-4" })
Read({ file_path: "input/mail.msg" })                         // 添付は input/ へ
Read({ file_path: "logs/huge.log", byte_offset: 0, byte_length: 4096 })

関連ツール

  • ReadImage — 画像を VLM で読むRead とは別ツール)
  • PdfToImages — PDF の各ページを PNG 化(スキャン PDF の前処理)
  • SplitExcelSheets / SplitDocxSections — 巨大な表計算 / 文書をシート / 章単位に分割