主动向元宝派(Yuanbao Pai)群聊和私聊发送消息和文件。独立于 OpenClaw 插件通道,通过 WebSocket 协议直接推送,适用于 cron 定时任务、跨 session 通知等场景。
主动向元宝派(Yuanbao Pai)群聊和私聊发送消息和文件,独立于 OpenClaw 插件通道。
OpenClaw 的 yuanbao 插件通过 WebSocket 收发消息,但只在用户 @bot 时才能回复。 无法从 cron 定时任务、其他 agent session、或后台脚本主动推送消息到群聊或私聊。
本 skill 直接连接 Yuanbao WebSocket 协议,绕过通道限制,实现主动推送(群聊 + 私聊)。
条件说明Python3.8+(需包含 websocket-client、cos-python-sdk-v5)websocket-clientpip install websocket-clientcos-python-sdk-v5pip install cos-python-sdk-v5(文件上传需要)元宝通道配置~/.openclaw/openclaw.json 中 channels.yuanbao 已配置 appKey + appSecret
⚠️ 确保 python3 环境已安装 websocket-client 和 cos-python-sdk-v5,否则文件上传会失败。 如系统有多个 Python 版本,可通过修改 send.py 的 shebang 指定。
bash
# 发送群消息
python3 send.py send <群号> <消息内容>
# 发送私聊消息
python3 send.py dm <用户open_id> <消息内容>
# 上传文件并发送(群聊)
python3 send.py upload <群号> <文件路径>
# 上传文件并发送(私聊)
python3 send.py upload-dm <用户open_id> <文件路径>
bash
# 群聊文字消息
python3 send.py send 123456789 "任务完成 ✅"
# 私聊文字消息
python3 send.py dm "ou_xxx_open_id" "你好!"
# 群聊上传图片
python3 send.py upload 123456789 photo.png
# 私聊上传文件
python3 send.py upload-dm "ou_xxx_open_id" report.docx
命令说明消息类型send / dm发送文字TIMTextElemupload / upload-dm 上传图片.png .jpg .gif .webp .bmp .heic .tiff .icoTIMImageElemupload / upload-dm 上传文件.docx .pptx .xlsx .pdf .txt .zip .wav .mp3 .mp4 .md 等TIMFileElem
⚠️ 元宝 Bot 平台仅支持 TIMTextElem、TIMImageElem、TIMFileElem 三种消息类型。 TIMSoundElem 和 TIMVideoFileElem 不支持。音频/视频可通过 TIMFileElem 发送。
json
{
"ok": true,
"code": -1,
"message": "succ",
"file": "test.png",
"type": "TIMImageElem"
}
text
send.py → 签票 → WebSocket → auth-bind → TIMTextElem(send_group / send_c2c)→ 关闭
text
send.py → 签票 → /api/resource/genUploadInfo → COS put_object → WebSocket → TIMImageElem / TIMFileElem → 关闭
/api/resource/genUploadInfo 获取 COS 临时凭证(bucket、region、临时密钥)put_object 上传文件到腾讯云 COS元宝 WebSocket 协议使用的 protobuf schema:
字段 ID名称类型说明1textstring文本内容2uuidstring唯一标识3imageFormatuint32图片格式(255=其他)4datastring自定义数据5descstring描述6extstring扩展字段7soundstring音频 URL8imageInfoArrayImImageInfoArray图片信息数组9indexuint32索引10urlstring文件下载 URL11fileSizeuint32文件大小12fileNamestring文件名
字段 ID名称类型1typeuint322sizeuint323widthuint324heightuint325urlstring
openclaw.json 中的 appKey / appSecretcode=4014 instanceid conflict)。插件需等待 health-monitor 重启(约 15 分钟)才能恢复接收消息。建议仅在插件不需要活跃时使用(如 cron 定时推送、后台通知),避免频繁调用。