Skip to main content

媒體理解(收到的)— 2026-01-17

OpenClaw 可以在回覆流程執行前摘要收到的媒體(影像/音訊/影片)。它會自動偵測本地工具或提供商金鑰何時可用,並可停用或自訂。若理解關閉,模型仍會照常接收原始檔案/URL。

目標

  • 選用:將收到的媒體預先摘要為簡短文字,以加快路由並改善指令解析。
  • 始終保留對模型的原始媒體傳遞。
  • 支援提供商 APICLI 退備
  • 允許多個模型搭配有序退備(錯誤/大小/逾時)。

高階行為

  1. 收集收到的附件(MediaPathsMediaUrlsMediaTypes)。
  2. 對每個已啟用的功能(影像/音訊/影片),根據策略選擇附件(預設:第一個)。
  3. 選擇第一個符合資格的模型條目(大小 + 功能 + 驗證)。
  4. 若模型失敗或媒體過大,退備至下一個條目
  5. 成功時:
    • Body 變成 [Image][Audio][Video] 區塊。
    • 音訊設定 {{Transcript}};指令解析在字幕存在時使用字幕文字,否則使用轉錄文字。
    • 字幕保留為區塊內的 User text:
若理解失敗或停用,回覆流程繼續使用原始本文 + 附件。

設定概述

tools.media 支援共享模型加上每個功能的覆蓋:
  • tools.media.models:共享模型清單(使用 capabilities 進行限制)。
  • tools.media.image / tools.media.audio / tools.media.video
    • 預設值(promptmaxCharsmaxBytestimeoutSecondslanguage
    • 提供商覆蓋(baseUrlheadersproviderOptions
    • 透過 tools.media.audio.providerOptions.deepgram 設定 Deepgram 音訊選項
    • 音訊轉錄回顯控制(echoTranscript,預設 falseechoFormat
    • 可選的每個功能 models 清單(優先於共享模型)
    • attachments 策略(modemaxAttachmentsprefer
    • scope(可選,依頻道/chatType/session 鍵限制)
  • tools.media.concurrency:最大並行功能執行數(預設 2)。

模型條目

每個 models[] 條目可以是提供商CLI
CLI 範本也可以使用:
  • {{MediaDir}}(包含媒體檔案的目錄)
  • {{OutputDir}}(為此次執行建立的暫存目錄)
  • {{OutputBase}}(暫存檔案基礎路徑,無副檔名)

預設值與限制

建議的預設值:
  • maxChars:影像/影片為 500(簡短、指令友善)
  • maxChars:音訊不設定(完整轉錄,除非你設定限制)
  • maxBytes
    • 影像:10MB
    • 音訊:20MB
    • 影片:50MB
規則:
  • 若媒體超過 maxBytes,該模型會被跳過並嘗試下一個模型
  • 小於 1024 bytes 的音訊檔案被視為空白/損毀,在提供商/CLI 轉錄前跳過。
  • 若模型返回超過 maxChars,輸出會被截斷。
  • prompt 預設為簡單的「Describe the .」加上 maxChars 指引(僅限影像/影片)。
  • <capability>.enabled: true 但未設定模型,OpenClaw 在其提供商支援該功能時嘗試目前的回覆模型

自動偵測媒體理解(預設)

tools.media.<capability>.enabled 設定為 false 且你未設定模型,OpenClaw 按此順序自動偵測並在第一個有效選項時停止
  1. 本地 CLI(僅音訊;若已安裝)
    • sherpa-onnx-offline(需要含 encoder/decoder/joiner/tokens 的 SHERPA_ONNX_MODEL_DIR
    • whisper-cliwhisper-cpp;使用 WHISPER_CPP_MODEL 或捆綁的 tiny 模型)
    • whisper(Python CLI;自動下載模型)
  2. Gemini CLIgemini)使用 read_many_files
  3. 提供商金鑰
    • 音訊:OpenAI → Groq → Deepgram → Google
    • 影像:OpenAI → Anthropic → Google → MiniMax
    • 影片:Google
若要停用自動偵測,設定:
注意:二進位偵測在 macOS/Linux/Windows 上是盡力而為;確保 CLI 在 PATH 上(我們會展開 ~),或設定含完整指令路徑的明確 CLI 模型。

代理環境支援(提供商模型)

啟用基於提供商的音訊影片媒體理解時,OpenClaw 會為提供商 HTTP 呼叫遵守標準的出站代理環境變數:
  • HTTPS_PROXY
  • HTTP_PROXY
  • https_proxy
  • http_proxy
若未設定代理環境變數,媒體理解使用直接出站。 若代理值格式錯誤,OpenClaw 記錄警告並退備至直接擷取。

功能(選用)

若你設定 capabilities,條目僅針對那些媒體類型執行。對於共享清單,OpenClaw 可推斷預設值:
  • openaianthropicminimax影像
  • google(Gemini API):影像 + 音訊 + 影片
  • groq音訊
  • deepgram音訊
對於 CLI 條目,明確設定 capabilities 以避免意外比對。 若省略 capabilities,條目符合其所在清單的資格。

提供商支援矩陣(OpenClaw 整合)

模型選擇指引

  • 在品質與安全性重要時,優先為每個媒體功能選擇最強的最新世代模型。
  • 對於處理不受信任輸入的工具啟用 agent,避免使用舊版/較弱的媒體模型。
  • 每個功能保留至少一個退備以確保可用性(高品質模型 + 更快/更便宜的模型)。
  • CLI 退備(whisper-cliwhispergemini)在提供商 API 不可用時很有用。
  • parakeet-mlx 注意:使用 --output-dir 時,OpenClaw 在輸出格式為 txt(或未指定)時讀取 <output-dir>/<media-basename>.txt;非 txt 格式退備至 stdout。

附件策略

每個功能的 attachments 控制哪些附件被處理:
  • modefirst(預設)或 all
  • maxAttachments:處理數量上限(預設 1
  • preferfirstlastpathurl
使用 mode: "all" 時,輸出標記為 [Image 1/2][Audio 2/2] 等。

設定範例

1)共享模型清單 + 覆蓋

2)僅音訊 + 影片(影像關閉)

3)選用影像理解

4)多模態單一條目(明確功能)

狀態輸出

媒體理解執行時,/status 包含簡短摘要行:
顯示每個功能的結果,以及適用時選用的提供商/模型。

注意事項

  • 理解是盡力而為。錯誤不會阻擋回覆。
  • 理解停用時,附件仍會傳遞至模型。
  • 使用 scope 限制理解執行的位置(例如僅限 DM)。

相關文件