媒体理解(入站)— 2026-01-17
OpenClaw 可以在回复管道运行前总结入站媒体(图像/音频/视频)。它能自动检测本地工具或提供商密钥是否可用,并可禁用或自定义。如果关闭理解功能,模型仍会按惯例接收原始文件/URL。目标
- 可选:预先将入站媒体提炼成简短文本,以实现更快的路由和更好的命令解析。
- 保留原始媒体传递给模型(始终如此)。
- 支持提供商 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 音频选项 - 音频转录回显控制(
echoTranscript,默认false;echoFormat) - 可选每功能独立的
models列表(优先于共享模型) attachments策略(mode,maxAttachments,prefer)scope(可选:按频道/聊天类型/会话键限流)
- 默认(
tools.media.concurrency:最大并发功能运行数(默认为 2)。
模型条目
每个models[] 条目可以是提供商或CLI:
{{MediaDir}}(包含媒体文件的文件夹){{OutputDir}}(为本次运行创建的临时文件夹){{OutputBase}}(临时文件基本路径,无扩展名)
默认值和限制
推荐默认值:maxChars:图像/视频为 500(简短、易于命令解析)maxChars:音频未设置(默认为完整转录,除非你设置限制)maxBytes:- 图像:10MB
- 音频:20MB
- 视频:50MB
- 如果媒体超过
maxBytes,跳过该模型,尝试下一个模型。 - 小于 1024 字节 的音频文件视为空文件/损坏,转录前跳过。
- 模型返回超过
maxChars文本时,输出被裁剪。 prompt默认为简单的“描述 。”并加上maxChars限制说明(仅图像/视频)。- 如果
<capability>.enabled: true但无模型配置,OpenClaw 会尝试当前激活的回复模型(若其提供商支持该功能)。
媒体理解自动检测(默认)
若未将tools.media.<capability>.enabled 设置为 false 且无模型配置,OpenClaw 按以下顺序自动检测,遇到首个可用方案即停止:
- 本地 CLI(音频仅限;安装时启用)
sherpa-onnx-offline(需SHERPA_ONNX_MODEL_DIR,包含编码器/解码器/连接器/令牌)whisper-cli(whisper-cpp,使用WHISPER_CPP_MODEL或内置 tiny 模型)whisper(Python CLI,自动下载模型)
- Gemini CLI(
gemini),使用read_many_files - 提供商密钥
- 音频:OpenAI → Groq → Deepgram → Google
- 图像:OpenAI → Anthropic → Google → MiniMax
- 视频:Google
PATH 中(支持展开 ~),或设置带完整命令路径的显式 CLI 模型。
代理环境支持(提供商模型)
当启用基于提供商的音频和视频媒体理解时,OpenClaw 尊重以下标准代理环境变量用于 HTTP 调用:HTTPS_PROXYHTTP_PROXYhttps_proxyhttp_proxy
功能支持(可选)
如果设置capabilities,该条目只适用于列出的媒体类型。对于共享列表,OpenClaw 能推断默认值:
openai、anthropic、minimax:图像google(Gemini API):图像 + 音频 + 视频groq:音频deepgram:音频
capabilities,避免意外匹配。
未设置 capabilities 时,条目适用于其所在列表。
提供商支持矩阵(OpenClaw 集成)
| 功能 | 提供商集成 | 备注 |
|---|---|---|
| 图像 | OpenAI / Anthropic / Google / 通过 pi-ai | 任何注册表中的图像能力模型皆可用 |
| 音频 | OpenAI、Groq、Deepgram、Google、Mistral | 提供商转录(Whisper/Deepgram/Gemini/Voxtral) |
| 视频 | Google(Gemini API) | 提供商视频理解 |
模型选择指南
- 对质量和安全要求高时,优先选择各媒体功能中最新一代的最强模型。
- 对于处理不可信输入的工具启用型代理,避免使用较旧/较弱的媒体模型。
- 保留每功能至少一个回退模型以保障可用性(优质模型 + 更快/更便宜模型)。
- 当提供商 API 不可用时,CLI 回退(
whisper-cli、whisper、gemini)非常有用。 parakeet-mlx注意:使用--output-dir,OpenClaw 会读取<output-dir>/<media-basename>.txt(output 格式为文本或未指定时);非文本格式回退到标准输出。
附件策略
按功能设置attachments 控制处理哪些附件:
mode:first(默认)或allmaxAttachments:最大处理数(默认 1)prefer:first、last、path、url
mode: "all" 时,输出标签格式如 [Image 1/2]、[Audio 2/2] 等。
配置示例
1) 共享模型列表 + 覆盖
2) 仅音频 + 视频(关闭图像)
3) 可选图像理解
4) 多模态单条目(显式功能)
状态输出
媒体理解运行时,/status 包含简短汇总行:
注意事项
- 理解为尽力而为。错误不会阻塞回复。
- 即便关闭理解,附件依然传递给模型。
- 使用
scope限定理解范围(例如只对私聊启用)。