文字只是 OpenClaw 能处理的一小部分—— 图片、音频、视频,现代 AI 模型都能理解。 本文教你把多媒体能力用起来。
图片识别与视觉分析
发图片给 AI 分析
在支持的渠道(Telegram/WhatsApp/Discord)直接发图片:
你(发一张报错截图):这个错误怎么解决?
AI:[分析图片] 我看到 Python 报错:
TypeError: 'NoneType' object is not subscriptable
出现在第 23 行,问题是你在 get_user() 返回 None 时
没有检查就直接用了 result['name']。
修复:在使用前加 if result is None: return
图片分析的典型用途
OCR 文字识别:
发名片照片 → 提取姓名/电话/邮箱
发收据/发票 → 提取金额/日期/商家名
发白板照片 → 整理会议笔记
图表解读:
发折线图 → "这个 Q3 下降的原因是什么?"
发数据表截图 → 分析关键数据点
代码截图:
发 IDE 截图 → 分析代码和错误
产品/商品识别:
发商品照片 → 询问型号/价格/规格
本地图片文件分析
你:分析一下 ~/Desktop/chart.png 这张图
AI(内部调用 read 工具):
[读取图片文件] 这张图是一个折线图,显示...
各渠道图片支持情况
| 渠道 | 图片 | 视频 | 音频 | 文件 |
|---|---|---|---|---|
| Telegram | ✅ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | |
| Discord | ✅ | ✅ | ✅ | ✅ |
| Slack | ✅ | ✅ | ✅ | ✅ |
| iMessage(BlueBubbles) | ✅ | ✅ | ✅ | ✅ |
| Matrix | ✅ | ✅ | ✅ | ✅ |
| IRC | ❌ | ❌ | ❌ | ❌ |
| WebChat | ✅ | - | - | ✅ |
音频消息自动转写
语音消息会自动转为文字再处理:
你(发 Telegram 语音消息,说话 30 秒)
AI 内部处理:
1. 接收音频文件
2. 调用 STT(语音转文字)
3. 将转写内容传给 AI 处理
4. 回复文字或语音
AI 回复(文字):
我听到你说:"帮我查一下明天北京的天气和
下午 3 点的会议是在哪个会议室"
天气:明天北京晴,14-22°C
会议:根据日历,14:00 在 A座 302 会议室
STT 引擎配置
json
{
"stt": {
"provider": "openai",
"model": "whisper-1",
"language": "zh"
}
}支持的 STT 提供商:
"openai":Whisper API(准确度最高,支持中文)"groq":Whisper via Groq(速度最快)"deepgram":专业语音识别(支持实时流)"system":系统本地 STT(免费,准确度较低)
视频消息处理
视频消息默认提取关键帧进行分析:
你(发一段 10 秒的产品演示视频):
帮我生成这段视频的文字描述
AI:[提取视频关键帧,分析每一帧]
这段视频展示了:
0-2s:产品整体外观(白色盒子,蓝色 Logo)
2-5s:打开包装的过程
5-8s:产品特写,可以看到屏幕界面
8-10s:功能演示,操作流程...
视频处理配置:
json
{
"media": {
"video": {
"maxFrames": 10,
"frameInterval": 2,
"maxSizeMb": 50
}
}
}Node 摄像头:实时拍照分析
配对了 iOS/Android 节点后:
你:用摄像头看一下我桌上这道菜,
告诉我大概有多少卡路里
AI(调用节点摄像头拍照):
[前置摄像头拍摄] 我看到一盘炒饭,
估计含有:
- 米饭约 200g(~260 kcal)
- 鸡蛋 1 个(~80 kcal)
- 蔬菜(低卡)
总计约 400-450 kcal
模型视觉能力对比
| 模型 | 图片理解 | OCR | 图表 | 代码截图 |
|---|---|---|---|---|
| Claude Sonnet 4 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Claude Haiku 4 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| GPT-4o | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Gemini 2.5 Pro | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
Claude 在图表理解和代码截图分析方面表现最突出。
大文件处理
json
{
"media": {
"maxImageSizeMb": 20,
"maxAudioSizeMb": 25,
"maxVideoSizeMb": 100,
"onExceed": "reject",
"rejectMessage": "文件太大,请压缩后再发送(上限 20MB)"
}
}来源:OpenClaw 官方文档 - docs.openclaw.ai/nodes/media-understanding