12.3 图片与媒体

OpenClaw通过Baileys Web实现的WhatsApp频道支持媒体传输,可带可选的文字说明。用户可以通过CLI命令发送媒体,支持本地文件和HTTP(S) URL。

核心功能

使用命令发送带可选说明的媒体:

openclaw message send --media <path-or-url> [--message <caption>]

支持本地文件路径和远程HTTP(S) URL。

支持的媒体类型与处理

图片

图片会自动进行以下处理:

  • 调整大小并重新压缩为JPEG格式
  • 最大边长限制为2048像素
  • 目标大小为5MB,硬上限为6MB

音频/语音/视频

  • 最大传输大小:16MB
  • 音频以语音消息形式传输(ptt: true标志)

文档

  • 任何其他文件类型最大支持100MB
  • 尽可能保留原始文件名

GIF模拟

MP4文件可以包含 gifPlayback: true 以在移动客户端上启用循环播放,实现GIF效果。

格式检测与处理

MIME类型检测优先级:

  1. 魔术字节(magic bytes)
  2. HTTP头信息
  3. 文件扩展名

说明文字来源于 --message 参数或 reply.text,允许空说明。

自动回复集成

管道可以在文本旁边返回媒体,使用与手动发送相同的处理方式解析本地或远程源。当提供多个媒体条目时,会按顺序依次发送。

入站媒体处理

当消息包含媒体附件时,系统会:

  • 下载到临时存储
  • 暴露模板变量 {{MediaUrl}}{{MediaPath}}
  • 媒体理解工具可生成描述
  • 在命令解析前插入内容块和转录文本

Docker沙箱会将媒体复制到工作区位置,如 media/inbound/<filename>

媒体理解配置

理解工具有单独的大小阈值:

媒体类型 配置项 默认限制
图片 tools.media.image.maxBytes 10 MB
音频 tools.media.audio.maxBytes 20 MB
视频 tools.media.video.maxBytes 50 MB
提示
超过大小限制的媒体会跳过分析处理,但不会阻止回复继续进行。

配置示例

// 媒体配置示例
{
  "tools": {
    "media": {
      "image": {
        "enabled": true,
        "maxBytes": 10485760
      },
      "audio": {
        "enabled": true,
        "maxBytes": 20971520
      },
      "video": {
        "enabled": true,
        "maxBytes": 52428800
      }
    }
  }
}

媒体大小限制汇总

用途 图片 音频/视频 文档
发送限制 ~6 MB 16 MB 100 MB
理解处理 10 MB 20/50 MB -
提示
更多详细信息请参考 官方英文文档