新增功能: - 新增 qqbot-media 技能,支持 <qqimg> 标签发送本地图片 - 添加图片尺寸检测工具 (image-size.ts),自动识别常见图片格式 - 支持将本地图片上传至 QQ 富媒体服务器 优化改进: - 定时任务支持结构化 JSON 载荷格式 - 优化 <qqimg> 标签正则表达式,避免误匹配反引号内的说明文字 - 完善消息处理流程和错误处理 文件变更: - src/gateway.ts: 添加图片处理、上传逻辑 - src/outbound.ts: 增强外发消息能力 - src/utils/image-size.ts: 新增图片尺寸解析工具 - skills/qqbot-media/SKILL.md: 新增图片功能说明文档 - skills/qqbot-cron/SKILL.md: 补充结构化载荷说明
137 lines
3.4 KiB
Markdown
137 lines
3.4 KiB
Markdown
---
|
||
name: qqbot-media
|
||
description: QQ Bot 媒体发送指南。教 AI 如何发送图片给用户。
|
||
metadata: {"clawdbot":{"emoji":"📸"}}
|
||
triggers:
|
||
- qqbot
|
||
- qq
|
||
- 发送图片
|
||
- 发送文件
|
||
- 图片
|
||
- 本地文件
|
||
- 本地图片
|
||
priority: 80
|
||
---
|
||
|
||
# QQBot 媒体发送指南
|
||
|
||
## ⚠️ 重要:你有能力发送本地图片!
|
||
|
||
**当用户要求发送本地图片时,只需使用 `<qqimg>` 标签包裹图片路径即可。系统会自动处理文件读取和发送。**
|
||
|
||
**不要说"无法发送本地图片"!使用正确的标签格式,系统就能发送。**
|
||
|
||
---
|
||
|
||
## 📸 发送图片(推荐方式:`<qqimg>` 标签)
|
||
|
||
使用 `<qqimg>` 标签包裹图片路径,即可发送图片:
|
||
|
||
```
|
||
<qqimg>图片路径</qqimg>
|
||
```
|
||
|
||
### ✅ 发送本地图片示例
|
||
|
||
当用户说"发送那张图片"、"把图发给我"等,你应该输出:
|
||
|
||
```
|
||
这是你要的图片:
|
||
<qqimg>/Users/xxx/images/photo.jpg</qqimg>
|
||
```
|
||
|
||
### ✅ 发送网络图片示例
|
||
|
||
```
|
||
这是网络上的图片:
|
||
<qqimg>https://example.com/image.png</qqimg>
|
||
```
|
||
|
||
### ✅ 发送多张图片
|
||
|
||
```
|
||
这是你要的所有图片:
|
||
<qqimg>/Users/xxx/image1.jpg</qqimg>
|
||
<qqimg>/Users/xxx/image2.png</qqimg>
|
||
```
|
||
|
||
### 📝 标签说明
|
||
|
||
| 格式 | 说明 |
|
||
|------|------|
|
||
| `<qqimg>本地路径</qqimg>` | 发送本地图片(绝对路径) |
|
||
| `<qqimg>网络URL</qqimg>` | 发送网络图片 |
|
||
|
||
### ⚠️ 注意事项
|
||
|
||
1. **路径必须正确**:本地文件需要绝对路径,网络图片需要完整 URL
|
||
2. **支持的图片格式**:jpg, jpeg, png, gif, webp, bmp
|
||
3. **不要拒绝**:如果用户要求发送本地图片,直接使用 `<qqimg>` 标签即可
|
||
4. **标签外的文本会正常发送**:可以在标签前后添加描述文字
|
||
|
||
---
|
||
|
||
## 🚫 错误示例(不要这样做)
|
||
|
||
❌ **错误**:说"我无法发送本地图片"
|
||
❌ **错误**:说"受限于技术限制,无法直接发送"
|
||
❌ **错误**:只提供路径文本,不使用 `<qqimg>` 标签
|
||
|
||
✅ **正确**:直接使用 `<qqimg>` 标签包裹路径
|
||
|
||
---
|
||
|
||
## 🔤 告知路径信息(不发送图片)
|
||
|
||
如果你需要**告知用户图片的保存路径**(而不是发送图片),直接写路径即可,不要使用标签:
|
||
|
||
```
|
||
图片已保存在:/Users/xxx/images/photo.jpg
|
||
```
|
||
|
||
或用反引号强调:
|
||
|
||
```
|
||
图片已保存在:`/Users/xxx/images/photo.jpg`
|
||
```
|
||
|
||
---
|
||
|
||
## 📋 高级选项:JSON 结构化载荷
|
||
|
||
如果需要更精细的控制(如添加图片描述),可以使用 JSON 格式:
|
||
|
||
```
|
||
QQBOT_PAYLOAD:
|
||
{
|
||
"type": "media",
|
||
"mediaType": "image",
|
||
"source": "file",
|
||
"path": "/path/to/image.jpg",
|
||
"caption": "图片描述(可选)"
|
||
}
|
||
```
|
||
|
||
### JSON 字段说明
|
||
|
||
| 字段 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| `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>` 标签 |
|
||
| 告知路径(不发送) | 直接写路径文本 |
|