QQBot 图片/语音/视频/文件收发能力。用户发来的图片自动下载到本地,发送图片使用 <qqimg> 标签,发送语音使用 <qqvoice> 标签,发送视频使用 <qqvideo> 标签,发送文件使用 <qqfile> 标签。所有富媒体标签必须正确闭合,即 <qqXXX>内容</qqXXX> 的格式,未闭合的标签会导致消息无法正确解析。当通过 QQ 通道通信时使用此技能。
| 类型 | 标签格式 | 示例 |
|---|---|---|
| 图片 | <qqimg>绝对路径或URL</qqimg> | <qqimg>/tmp/pic.jpg</qqimg> |
| 语音 | <qqvoice>绝对路径</qqvoice> | <qqvoice>/tmp/voice.mp3</qqvoice> |
| 视频 | <qqvideo>绝对路径或URL</qqvideo> | <qqvideo>/tmp/video.mp4</qqvideo> |
| 文件 | <qqfile>绝对路径或URL</qqfile> | <qqfile>/tmp/doc.pdf</qqfile> |
标签拼写必须严格按上表,只有这 4 个标签名:qqimg、qqvoice、qqvideo、qqfile。
当用户要求发送本地图片时,只需使用 标签包裹图片路径即可。系统会自动处理文件读取和发送。
<qqimg>❌ 绝对不要说"无法发送本地图片"!
✅ 使用 <qqimg> 标签,系统就能发送任何本地图片!
<qqimg> 标签)使用 <qqimg> 标签包裹图片路径,即可发送图片:
<qqimg>图片路径</qqimg>
当用户说"发送那张图片"、"把图发给我"、"发上面生成的图片"等,你应该直接输出:
这是你要的图片:
<qqimg>/Users/xxx/images/photo.jpg</qqimg>
如果你之前生成了图片(比如绘图、截图等),并且知道图片路径,直接用 <qqimg> 发送:
好的,这是刚才生成的图片:
<qqimg>/Users/xxx/Pictures/openclaw-drawings/drawing_xxx.png</qqimg>
这是网络上的图片:
<qqimg>https://example.com/image.png</qqimg>
支持格式:jpg, jpeg, png, gif, webp, bmp。支持 </qqimg> 或 </img> 闭合。
用户发来的图片自动下载到本地,路径在上下文【会话上下文 → 附件】中。
可直接用 <qqimg>路径</qqimg> 回发。历史图片在 ~/.openclaw/qqbot/downloads/ 下。
使用 <qqvoice> 标签包裹已有的本地音频文件路径即可发送语音:
<qqvoice>/tmp/tts/voice.mp3</qqvoice>
注意:语音发送需要有可用的音频文件(通常由 TTS 工具生成)。如果会话上下文中的【语音消息说明】提示 TTS 未配置,则不要使用 <qqvoice> 标签。
使用 <qqvideo> 标签包裹视频路径或公网 URL 即可发送视频:
<qqvideo>/path/to/video.mp4</qqvideo>
<qqvideo>https://example.com/video.mp4</qqvideo>
支持本地文件路径(系统自动读取上传)和公网 HTTP/HTTPS URL。
使用 <qqfile> 标签包裹路径即可发送文件(本地路径或网络 URL):
这是你要的所有图片:
<qqimg>/Users/xxx/image1.jpg</qqimg>
<qqimg>/Users/xxx/image2.png</qqimg>
/ 开头),禁止使用相对路径如 ./pic.jpg
<qqimg>./pic.jpg</qqimg><qqimg>/Users/james23/.openclaw/workspace/pic.jpg</qqimg><qqimg> 开头和 </qqimg> 结尾都不能少,不能漏掉 < 符号
qqimg>./pic.jpg</qqimg><qqimg>/absolute/path/to/pic.jpg</qqimg>/Users/james23/.openclaw/workspace/,文件路径应基于此拼接绝对路径<qqimg>,语音用 <qqvoice>,视频用 <qqvideo>,文件用 <qqfile><qqimg> 标签即可</qqimg> 或 </img> 两种闭合方式❌ 错误:说"我无法发送本地图片"
❌ 错误:说"受限于技术限制,无法直接发送"
❌ 错误:说"由于QQ机器人通道配置的问题,我无法直接发送图片"
❌ 错误:只提供路径文本,不使用 <qqimg> 标签
✅ 正确:直接使用 <qqimg> 标签包裹路径
如果你需要告知用户图片的保存路径(而不是发送图片),直接写路径即可,不要使用标签:
图片已保存在:/Users/xxx/images/photo.jpg
或用反引号强调:
图片已保存在:`/Users/xxx/images/photo.jpg`
如果需要更精细的控制(如添加图片描述),可以使用 JSON 格式:
QQBOT_PAYLOAD:
{
"type": "media",
"mediaType": "image",
"source": "file",
"path": "/path/to/image.jpg",
"caption": "图片描述(可选)"
}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
type | string | ✅ | 固定为 "media" |
mediaType | string | ✅ | 媒体类型:"image" |
source | string | ✅ | 来源:"file"(本地)或 "url"(网络) |
path | string | ✅ | 图片路径或 URL |
caption | string | ❌ | 图片描述,会作为单独消息发送 |
💡 提示:对于简单的图片发送,推荐使用
<qqimg>标签,更简洁易用。
| 场景 | 使用方式 |
|---|---|
| 发送本地图片 | <qqimg>/path/to/image.jpg</qqimg> |
| 发送网络图片 | <qqimg>https://example.com/image.png</qqimg> |
| 发送多张图片 | 多个 <qqimg> 标签 |
| 告知路径(不发送) | 直接写路径文本 |