Files
maestro/docs/tools/readimage.md
T
oss-sync 57702b4f34
CI / build-and-test (push) Canceled after 0s
sync: update from private repo (2336949a)
2026-09-17 11:29:31 +00:00

4.0 KiB

ReadImage

画像対応ワーカーが画像を直接受け取るか、対応ワーカーに問い合わせて説明文を受け取る。

基本

ReadImage({ file_path: "input/screenshot.png" })
// → 画像内の文字・図表・物体について自然言語の説明が返る

BrowseWeb で開いたページに載っていた画像は source/images/ に自動で溜まる。そのまま渡せば読める。ページを開き直してスクリーンショットを撮る必要はない。索引 source/index.jsonl の kind: "image" の行に、どのページに載っていた画像かが入っている(詳細は ReadToolDoc({ name: "BrowseWeb" }))。

ReadImage({ file_path: "source/images/example.com-figure.png" })

動作要件

このツールが使える条件は 2 通りある。

条件 何が返るか
実行中の worker が capabilities.image: true 画像そのものが会話に注入される。以後の発言で画像を見ながら考えられる
実行中の worker は非対応だが llm.offload.image: true かつ capabilities.image: true の worker が居る 対応 worker が書いた説明文だけが返る。画像は会話に載らない

どちらにも当てはまらないとき、このツールはワークスペースで許可されていても function definition から自動除外される。

回した実行(委譲モード)の性質

  • 1 回きりの問い合わせ。画像はエージェントのコンテキストに載らない
  • 「さっきの画像の右下は何色だった?」のような追い質問はできない。知りたいことは prompt に全部書く。prompt を省くと汎用の説明が返るだけで、価値が大きく落ちる
  • 観点を変えて聞きたくなったら、prompt を変えてもう一度呼ぶ
  • 呼び出し先は capabilities.image: true の worker から空きのある台が自動で選ばれる。全台が埋まって いれば空くまで待つ(タスクを中断すれば待ちからも抜ける)
  • ブラウザ操作の分割スクリーンショット(既定で最大 10 枚)をこのモードで読むと、 1 枚ずつ独立した説明が 10 個返る。「この表の続きは次の画像」といった横断した 判断はできない。必要なら 1 枚ずつ観点を指定して呼ぶ

prompt の書き方

// 悪い例(委譲モードでは特に価値が低い)
ReadImage({ file_path: "input/chart.png" })

// 良い例
ReadImage({
  file_path: "input/chart.png",
  prompt: "縦軸の単位と、2024 年のバーの値を読み取って。凡例の項目名も全部挙げて。",
})

用途

  • スクリーンショットの内容説明
  • 図・グラフ・チャートの読み取り
  • ページレイアウトの確認
  • 写真の被写体・状況把握

文字読み取りについて

  • ある程度の OCR は可能だが、精度が要求される文字情報には別途 OCR ツールの使用を検討
  • 数字・記号・固有名詞を厳密に扱う場合は VLM のハルシネーションに注意
  • パラメータシート、表、コード等は誤読リスクが高い

入力ファイル

  • input/ / output/ / source/images/ 配下のローカル画像ファイル
  • URL 指定は不可(DownloadFile で先にローカル保存する)

対応形式は 2 通りある。

形式 渡し方
そのまま渡す png, jpg, jpeg, gif, webp, bmp ファイルの中身をそのままモデルへ
PNG に起こして渡す svg, avif, tiff, tif, ico こちら側で PNG に変換してからモデルへ。ファイル自体は元の形式のまま残る

後者はページの魚拓が溜める形式(source/images/)に合わせたもの。BMP を格納した古い形式の .ico だけは読めず、理由付きのエラーが返る(いまの web のアイコンはほぼ PNG を格納しているので通常は当たらない)。