メディア理解 - 受信時 (2026-01-17)
OpenClawは、応答パイプラインが動く前に受信メディア(画像/音声/動画)を要約できます。ローカルツールまたはプロバイダーキーが利用可能なときに自動検出し、無効化やカスタマイズも可能です。理解処理がオフでも、モデルには通常どおり元のファイル/URLが渡されます。 ベンダー固有のメディア動作はベンダープラグインによって登録され、OpenClaw coreは共有のtools.media設定、フォールバック順序、応答パイプライン統合を担当します。
目的
- 任意: より速いルーティングとより良いコマンド解析のために、受信メディアを事前に短いテキストへ要約する。
- 元のメディアを常にモデルへ渡すことを維持する。
- プロバイダーAPIとCLIフォールバックをサポートする。
- 順序付きフォールバック(エラー/サイズ/タイムアウト)を伴う複数モデルを許可する。
高レベルの動作
- 受信添付ファイルを収集する(
MediaPaths、MediaUrls、MediaTypes)。 - 有効な各機能(画像/音声/動画)について、ポリシーに従って添付ファイルを選択する(デフォルト: 最初)。
- 最初に適格なモデルエントリを選ぶ(サイズ + 機能 + 認証)。
- モデルが失敗するかメディアが大きすぎる場合、次のエントリへフォールバックする。
- 成功時:
Bodyは[Image]、[Audio]、または[Video]ブロックになる。- 音声は
{{Transcript}}を設定する。コマンド解析では、キャプションがあればそれを使い、なければ文字起こしを使う。 - キャプションはブロック内で
User text:として保持される。
設定概要
tools.mediaは、共有モデルと機能ごとの上書きをサポートします:
tools.media.models: 共有モデルリスト(capabilitiesで制御)。tools.media.image/tools.media.audio/tools.media.video:- デフォルト(
prompt、maxChars、maxBytes、timeoutSeconds、language) - プロバイダー上書き(
baseUrl、headers、providerOptions) tools.media.audio.providerOptions.deepgramによるDeepgram音声オプション- 音声文字起こしのecho制御(
echoTranscript、デフォルトfalse、echoFormat) - 任意の機能ごとの
modelsリスト(共有モデルより優先) attachmentsポリシー(mode、maxAttachments、prefer)scope(channel/chatType/session keyによる任意の制御)
- デフォルト(
tools.media.concurrency: 同時実行する機能処理数の上限(デフォルト2)。
モデルエントリ
各models[]エントリはproviderまたはCLIにできます:
{{MediaDir}}(メディアファイルを含むディレクトリ){{OutputDir}}(この実行のために作成されるスクラッチディレクトリ){{OutputBase}}(拡張子なしのスクラッチファイルベースパス)
デフォルトと上限
推奨デフォルト:maxChars: 画像/動画では500(短く、コマンド向き)maxChars: 音声では未設定(制限を設定しない限り全文文字起こし)maxBytes:- 画像: 10MB
- 音声: 20MB
- 動画: 50MB
- メディアが
maxBytesを超える場合、そのモデルはスキップされ、次のモデルが試されます。 - 1024 bytes未満の音声ファイルは空/破損と見なされ、プロバイダー/CLI文字起こしの前にスキップされます。
- モデルが
maxCharsを超える出力を返した場合、出力は切り詰められます。 promptのデフォルトは単純な「Describe the .」にmaxCharsの案内を加えたものです(画像/動画のみ)。- アクティブなPrimary画像モデルがすでにネイティブにvisionをサポートしている場合、OpenClawは
[Image]要約ブロックを省略し、代わりに元の画像をモデルへ渡します。 <capability>.enabled: trueでもモデルが設定されていない場合、OpenClawはそのプロバイダーが機能をサポートしていればアクティブな応答モデルを試します。
メディア理解の自動検出(デフォルト)
tools.media.<capability>.enabledがfalseに設定されておらず、かつ
モデルが設定されていない場合、OpenClawは次の順序で自動検出し、最初に動作した選択肢で停止します:
- そのプロバイダーが機能をサポートしている場合のアクティブな応答モデル。
- **
agents.defaults.imageModel**のprimary/fallback参照(画像のみ)。 - ローカルCLI(音声のみ。インストール済みの場合)
sherpa-onnx-offline(SHERPA_ONNX_MODEL_DIRにencoder/decoder/joiner/tokensが必要)whisper-cli(whisper-cpp。WHISPER_CPP_MODELまたは同梱tinyモデルを使用)whisper(Python CLI。モデルを自動ダウンロード)
- Gemini CLI(
gemini)をread_many_files付きで使用 - プロバイダー認証
- 機能をサポートする設定済みの
models.providers.*エントリは、 バンドル済みフォールバック順より先に試されます。 - 画像対応モデルを持つ画像専用config providerは、バンドル済みベンダープラグインでなくても、自動的にメディア理解向けに登録されます。
- バンドル済みフォールバック順:
- 音声: OpenAI → Groq → Deepgram → Google → Mistral
- 画像: OpenAI → Anthropic → Google → MiniMax → MiniMax Portal → Z.AI
- 動画: Google → Qwen → Moonshot
- 機能をサポートする設定済みの
PATH上にあることを確認するか(~は展開されます)、完全なコマンドパス付きで明示的なCLIモデルを設定してください。
プロキシ環境のサポート(providerモデル)
プロバイダーベースの音声および動画メディア理解が有効な場合、OpenClawは プロバイダーHTTP呼び出しに対して標準的なアウトバウンドプロキシ環境変数を使用します:HTTPS_PROXYHTTP_PROXYhttps_proxyhttp_proxy
機能(任意)
capabilitiesを設定すると、そのエントリはそのメディア種別でのみ実行されます。共有
リストでは、OpenClawがデフォルトを推論できます:
openai、anthropic、minimax: imageminimax-portal: imagemoonshot: image + videoopenrouter: imagegoogle(Gemini API): image + audio + videoqwen: image + videomistral: audiozai: imagegroq: audiodeepgram: audio- 画像対応モデルを持つ任意の
models.providers.<id>.models[]カタログ: image
capabilitiesを明示的に設定してください。
capabilitiesを省略した場合、そのエントリは置かれているリストに対して有効になります。
プロバイダー対応表(OpenClaw統合)
| Capability | Provider integration | Notes |
|---|---|---|
| Image | OpenAI, OpenRouter, Anthropic, Google, MiniMax, Moonshot, Qwen, Z.AI, config providers | ベンダープラグインが画像サポートを登録します。MiniMaxとMiniMax OAuthはどちらもMiniMax-VL-01を使い、画像対応config providerは自動登録されます。 |
| Audio | OpenAI, Groq, Deepgram, Google, Mistral | プロバイダー文字起こし(Whisper/Deepgram/Gemini/Voxtral)。 |
| Video | Google, Qwen, Moonshot | ベンダープラグインによるプロバイダー動画理解。Qwen動画理解はStandard DashScopeエンドポイントを使用します。 |
minimaxおよびminimax-portalの画像理解は、プラグイン所有のMiniMax-VL-01メディアプロバイダーから提供されます。- バンドル済みMiniMaxテキストカタログは引き続きテキスト専用で始まります。明示的な
models.providers.minimaxエントリにより、画像対応のM2.7チャット参照が具体化されます。
モデル選択ガイダンス
- 品質と安全性が重要な場合は、各メディア機能について利用可能な中で最も強力な最新世代モデルを優先してください。
- 信頼できない入力を扱うtool対応エージェントでは、古い/弱いメディアモデルは避けてください。
- 可用性のために、各機能ごとに少なくとも1つのフォールバックを維持してください(高品質モデル + より高速/低コストモデル)。
- CLIフォールバック(
whisper-cli、whisper、gemini)は、プロバイダーAPIが利用できない場合に便利です。 parakeet-mlxに関する注記:--output-dir付きでは、出力形式がtxt(または未指定)の場合、OpenClawは<output-dir>/<media-basename>.txtを読み取ります。txt以外の形式ではstdoutにフォールバックします。
添付ファイルポリシー
機能ごとのattachmentsは、どの添付ファイルを処理するかを制御します:
mode:first(デフォルト)またはallmaxAttachments: 処理数の上限(デフォルト1)prefer:first、last、path、url
mode: "all"の場合、出力には[Image 1/2]、[Audio 2/2]のようなラベルが付きます。
ファイル添付ファイル抽出の動作:
- 抽出されたファイルテキストは、メディアプロンプトへ追加される前に 信頼できない外部コンテンツとしてラップされます。
- 注入されるブロックでは、次のような明示的な境界マーカーが使われます:
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>。さらにSource: Externalメタデータ行も含まれます。 - この添付ファイル抽出パスでは、メディアプロンプトが膨らみすぎないよう、
長い
SECURITY NOTICE:バナーを意図的に省略します。それでも境界マーカーとメタデータは残ります。 - ファイルから抽出可能なテキストがない場合、OpenClawは
[No extractable text]を注入します。 - このパスでPDFがレンダリング済みページ画像へフォールバックした場合、メディアプロンプトには
[PDF content rendered to images; images not forwarded to model]というプレースホルダーが保持されます。これは、この添付ファイル抽出ステップが転送するのはテキストブロックであり、レンダリング済みPDF画像ではないためです。
設定例
1) 共有モデルリスト + 上書き
2) 音声 + 動画のみ(画像オフ)
3) 任意の画像理解
4) 単一エントリのマルチモーダル(明示的capabilities)
ステータス出力
メディア理解が実行されると、/statusには短いサマリー行が含まれます:
注記
- 理解処理はベストエフォートです。エラーが発生しても応答はブロックされません。
- 理解処理が無効でも、添付ファイルは引き続きモデルへ渡されます。
scopeを使うと、理解処理を実行する場所を制限できます(例: DMのみ)。