Install
openclaw skills install @thcjp/whatsapp-ultimateopenclaw skills install @thcjp/whatsapp-ultimate核心功能: 本技能提供中文交互等能力。
核心功能: 本技能提供文本、图片、、完整的消息交互能力、、排名提升、搜索流量优化时使用、、关键词分析、排名提升、搜索流量优化时使用等能力。
通讯应用消息发送、交互反应、群组管理和多Agent讨论.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 通讯应用工具处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 通讯应用工具通讯应用消息发送 | 不支持 | 支持 |
| 通讯应用工具群组管理 | 不支持 | 支持 |
| 多渠道消息批量发送 | 不支持 | 支持 |
| 消息模板与变量注入 | 不支持 | 支持 |
| 送达状态实时回调 | 不支持 | 支持 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
本Skill无需额外API Key(LLM能力由Agent平台内置提供)
支持多种消息类型:
message action=send --type textmessage action=send --type imagemessage action=send --type voice(采样率64k,格式opus)message action=send --type videomessage action=send --type sticker(尺寸512x512)message action=send --type documentpython3 (请参考skill目录中的脚本文件) action=send --to "contact-id@s.whatsapp.net" --type text --content "你好,这是一条测试消息"
对消息添加表情反应、回复消息和转发消息.
python3 (请参考skill目录中的脚本文件) action=react --message-id "msg-abc123" --emoji "👍"
python3 (请参考skill目录中的脚本文件) action=reply --message-id "msg-abc123" --content "收到"
在群组或个人聊天中创建投票.
python3 (请参考skill目录中的脚本文件) action=poll --to "group-id@g.us" --question "下周会议时间" --options "周一" "周二" "周三"
创建群组、添加/移除成员、修改群组信息.
python3 (请参考skill目录中的脚本文件) action=group-create --name "项目讨论组" --participants "user1@s.whatsapp.net" "user2@s.whatsapp.net"
群组管理 选项搜索聊天历史记录,支持关键词和日期范围.
python3 (请参考skill目录中的脚本文件) action=search --chat "contact-id@s.whatsapp.net" --query "会议纪要" --limit 20
历史搜索 选项多个Agent在同一群组中进行协作讨论,通过 staleness_threshold 0.85控制消息新鲜度,避免回声循环.
python3 (请参考skill目录中的脚本文件) --group "project-group@g.us" --agents 3 --staleness-threshold 0.85
通过 ffmpeg 处理媒体文件:
# 生成贴纸
ffmpeg -i input.png -vf "scale=512:512:force_original_aspect_ratio=decrease" -lossless 1 output.webp
# ...
# 生成语音消息
ffmpeg -i input.wav -ar 48000 -ac 1 -b:a 64k -c:a libopus output.opus
完成响应以Markdown格式返回,包含任务状态(成功/失败)、解析摘要和具体输出数据。失败时返回错误码和错误信息,便于定位问题。- 验证返回数据的完整性和格式正确性
whatsapp-ultimate的相关能力| 消息类型 | 格式要求 | 最大大小 |
|---|---|---|
| 文本 | UTF-8编码 | 无限制 |
| 图片 | jpg/png/webp | 16MB |
| 语音 | opus格式,64k采样率 | 16MB |
| 视频 | mp4格式 | 64MB |
| 贴纸 | webp格式,512x512 | 100KB |
| 文件 | 任意格式 | 100MB |
python3 (请参考skill目录中的脚本文件) action=send \
--to "8613800138000@s.whatsapp.net" \
--type text \
--content "会议已开始,请准时参加"
输出:
{
"success": true,
"message_id": "msg-abc123def456",
"timestamp": "2026-07-21T10:00:00Z",
"status": "sent"
}
# 先用ffmpeg转换音频
ffmpeg -i recording.wav -ar 48000 -ac 1 -b:a 64k -c:a libopus voice_msg.opus
# ...
# 发送语音消息
python3 (请参考skill目录中的脚本文件) action=send \
--type voice \
--file "/tmp/voice_msg.opus"
输出:
{
"success": true,
"message_id": "msg-voice789",
"media_type": "audio",
"duration_seconds": 15,
"timestamp": "2026-07-21T10:05:00Z"
}
python3 (请参考skill目录中的脚本文件) action=poll \
--to "project-group@g.us" \
--question "本周冲刺目标选择" \
--options "功能A" "功能B" "功能C" \
--multi-select false
输出:
{
"success": true,
"poll_id": "poll-xyz789",
"question": "本周冲刺目标选择",
"options": ["功能A", "功能B", "功能C"],
"timestamp": "2026-07-21T10:10:00Z"
}
python3 (请参考skill目录中的脚本文件) action=search \
--chat "project-group@g.us" \
--query "部署" \
--limit 10
输出:
{
"results": [
{"message_id": "msg-001", "sender": "张三", "content": "生产环境部署完成", "timestamp": "2026-07-20T15:30:00Z"},
{"message_id": "msg-002", "sender": "李四", "content": "部署文档已更新", "timestamp": "2026-07-20T16:00:00Z"}
],
"total_found": 2
}
# 生成贴纸
ffmpeg -i sticker_input.png -vf "scale=512:512:force_original_aspect_ratio=decrease" -lossless 1 /tmp/sticker.webp
# ...
# 发送贴纸
python3 (请参考skill目录中的脚本文件) action=send \
--type sticker \
--file "/tmp/sticker.webp"
输出:
{
"success": true,
"message_id": "msg-sticker456",
"media_type": "sticker",
"dimensions": "512x512",
"timestamp": "2026-07-21T10:15:00Z"
}
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 消息发送速率限制 | 短时间内发送过多消息 | 等待30秒后控制发送频率 |
| JID格式无效 | 收件人ID格式错误 | 确保格式为 数字@s.whatsapp.net(个人)或 ID@g.us(群组) |
| 语音消息格式错误 | 非opus格式或采样率不是64k | 用 ffmpeg -ar 48000 -b:a 64k -c:a libopus 转换 |
| 贴纸尺寸不符合要求 | 不是512x512或非webp格式 | 用 ffmpeg -vf scale=512:512 调整尺寸,转为webp |
| 多Agent回声循环 | Agent互相回复导致无限循环 | 设置 staleness-threshold 为0.85,过滤过时消息 |
| 消息发送超时 | 网络延迟超过60000ms窗口 | 发送 |
| 媒体文件超过大小限制 | 文件超过16MB(图片)或64MB(视频) | 用 ffmpeg 压缩或裁剪后再发送 |
A: 贴纸必须是512x512像素的webp格式文件,大小不超过100KB。使用 ffmpeg -i input.webp 生成.
A: 语音消息采样率为48000Hz,比特率64k,格式为opus。使用 ffmpeg -i input.opus 转换.
A: 个人聊天JID格式为 国际区号+号码@s.whatsapp.net(如 8613800138000@s.whatsapp.net)。群组JID格式为 群组ID@g.us(如 project-group@g.us).
A: 设置 staleness-threshold 为0.85。当消息的新鲜度低于0.85时,Agent不再回复该消息。新鲜度基于消息时间戳和当前时间的差值计算,超过60000ms窗口的消息新鲜度降为0.
A: 有。短时间内发送过多消息会触发速率限制。建议每次发送间隔至少1秒。触发限制后等待30秒重试.
A: 使用 message action=search 命令,提供 --chat(聊天JID)、--query(搜索关键词)和 --limit(最大结果数)。返回匹配的消息列表,包含发送者、内容和时间戳.
A: 支持。通过 --multi-select true 参数启用多选模式。默认为单选(--multi-select false)。每个投票最多支持12个选项.
staleness-threshold 默认0.85,60000ms窗口数字@s.whatsapp.net 或 ID@g.us=== 效率提升量化分析
| 操作步骤 | 手动耗时(分钟) | 自动化耗时(分钟) | 时间节约(分钟) | 准确率提升 |
|---|---|---|---|---|
| 文本消息发送 | 5 | 1 | 4 | 5% |
| 图片消息发送 | 10 | 2 | 8 | 8% |
| 语音消息发送 | 3 | 1 | 2 | 6% |
| 视频消息发送 | 8 | 2 | 6 | 7% |
| 贴纸消息发送 | 2 | 1 | 1 | 4% |
=== 差异化对比
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 易用性 | 高 | 中 | 中 | 高 |
| 功能丰富性 | 高 | 低 | 中 | 高 |
| 成本效益 | 中 | 高 | 中 | 高 |
| 效率 | 高 | 低 | 中 | 高 |
| 可扩展性 | 高 | 低 | 中 | 高 |
=== 核心痛点解决
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 手动发送效率低 | 需要手动操作每个消息,效率低下,且容易出错。 | 影响工作效率 | 自动化消息发送,提高发送效率。 | 80% |
| 群组管理复杂 | 群组创建、成员添加移除、信息修改等操作复杂,耗时多。 | 影响团队协作 | 提供自动化群组管理功能,简化操作。 | 70% |
| 媒体文件处理困难 | 需要手动处理媒体文件,格式转换、大小调整等操作繁琐。 | 影响沟通效率 | 集成媒体处理工具,自动化处理文件。 | 90% |
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 消息发送失败 | 网络连接问题、目标联系人无法发送 | 检查网络连接,确认目标联系人信息。 | 确保网络连接正常,检查联系人信息是否正确。 |
| 群组创建失败 | 权限不足、参与者信息错误 | 确认是否具有创建群组的权限,检查参与者信息。 | 联系管理员检查权限,修正参与者信息。 |
| 消息搜索结果不准确 | 关键词输入错误、历史消息过多 | 检查关键词输入,优化搜索条件。 | 仔细检查关键词,使用更精确的关键词进行搜索。 |
| 媒体文件处理异常 | 文件格式不支持、文件损坏 | 检查文件格式是否正确,尝试重新处理文件。 | 转换文件格式,尝试重新处理文件。 |
| 多Agent讨论中断 | Agent配置错误、网络不稳定 | 检查Agent配置,确保网络连接稳定。 | 修正Agent配置,确保网络连接稳定。 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
A1: "通讯应用消息发送、交互"。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。
针对"通讯应用工具"使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |
针对"通讯应用工具"使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |