feat(qqbot): 添加图片发送功能及优化定时任务载荷格式

新增功能:
- 新增 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: 补充结构化载荷说明
This commit is contained in:
rianli
2026-02-03 13:14:22 +08:00
parent cbe51bfb82
commit 93f284891c
5 changed files with 557 additions and 239 deletions

View File

@@ -46,6 +46,47 @@ metadata: {"clawdbot":{"emoji":"⏰"}}
---
## 📦 结构化载荷格式(新)
> **重要**定时提醒现在支持结构化载荷格式AI 只需输出 JSON代码层会自动处理 Base64 编码。
### 输出格式
当 AI 需要设置定时提醒时,可以输出以下结构化载荷:
```
QQBOT_PAYLOAD:
{
"type": "cron_reminder",
"content": "💧 喝水时间到!",
"targetType": "c2c",
"targetAddress": "xxx_user_openid",
"originalMessageId": "msg_xxx_123"
}
```
### 字段说明
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `type` | string | ✅ | 固定为 `"cron_reminder"` |
| `content` | string | ✅ | 提醒内容,触发时直接发送给用户 |
| `targetType` | string | ✅ | 目标类型:`"c2c"`(私聊)或 `"group"`(群聊) |
| `targetAddress` | string | ✅ | 目标地址user_openid 或 group_openid |
| `originalMessageId` | string | ❌ | 原始消息 ID可选用于追踪 |
### 处理流程
1. AI 输出 `QQBOT_PAYLOAD:` + JSON 格式的载荷
2. 代码层检测并解析载荷
3. 代码层将 JSON 编码为 Base64
4. 代码层调用 `openclaw cron add --message "QQBOT_CRON:{base64}"`
5. 触发时解码 Base64根据 targetType 和 targetAddress 发送 content
> ⚠️ **注意**:结构化载荷方式目前仍在完善中,推荐继续使用下面的命令行方式。
---
## 📋 命令速查
### 创建提醒(完整模板)