Install
openclaw skills install @thcjp/whatsapp-master-freeopenclaw skills install @thcjp/whatsapp-master-freeWhatsApp 是全球使用最广泛的即时通讯应用之一。本工具箱通过原生通道集成直接调用 WhatsApp Web 协议,让 AI Agent 能够发送文本、媒体、贴纸、语音笔记与 GIF。免费版聚焦于"能发"——覆盖 5 类基础消息与速率限制指南;交互(反应/回复/编辑/撤回)、群组管理、多智能体讨论等进阶能力留给专业版。
无需外部 Docker 服务,无需 CLI 包装,直接通过 Agent 平台的通道集成调用。
| 能力 | 说明 | 免费版 |
|---|---|---|
| 文本发送 | 纯文本消息 | 是 |
| 媒体发送 | 图片/视频/文档 | 是 |
| 贴纸发送 | WebP 格式贴纸 | 是 |
| 语音笔记 | OGG/Opus 语音 | 是 |
| GIF 发送 | MP4 格式动画 | 是 |
| JID 格式 | 个人与群组 JID 转换 | 是 |
| 速率限制 | 反垃圾策略说明 | 是 |
| 媒体转换 | ffmpeg 模板 | 是 |
| 交互能力 | 反应/回复/编辑/撤回 | 否(专业版) |
| 群组管理 | 创建/重命名/邀请/权限 | 否(专业版) |
| 多智能体 | 群组内多 Agent 协作 | 否(专业版) |
| 历史搜索 | 全文检索与联系人提取 | 否(专业版) |
用input_params参数进行配置。
输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作用config_options参数进行配置。
输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志。
config_options参数,支持修改/重置/导入操作用output_format参数进行配置。
输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志。
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:WhatsApp、消息自动化免费版、语音发送、格式与速率限制指、面向个人用户与独、立开发者、的基础消息能力、语音笔记与、通过原生通道集成、直接调用、无需外部、Docker、CLI、Use、when、需要代码生成、编程辅助、调试测试、开发部署时使用、不适用于无明确技、术栈的模糊需求等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。用户说"每天早上 9 点把昨天的日报发到我的 WhatsApp"。Agent 调用 message action=send channel=whatsapp 发送文本消息,配合定时任务实现日报推送。
用户说"把这张设计稿发给客户"。Agent 调用 message action=send 携带 filePath 发送图片,支持的格式包括 JPG/PNG/GIF/MP4/PDF/DOC。
用户说"录一段语音提醒我开会"。Agent 先用 ffmpeg 把音频转为 OGG/Opus 格式,再调用 message action=send asVoice=true 发送。
whatsapp login)+34612345678)message action=send 发送消息message action=send channel=whatsapp to="+34612345678" message="Hello!"
message action=send channel=whatsapp to="+34612345678" message="Check this out" filePath=/path/to/image.jpg
支持的格式:JPG、PNG、GIF、MP4、PDF、DOC 等。
message action=sticker channel=whatsapp to="+34612345678" filePath=/path/to/sticker.webp
必须是 WebP 格式,理想尺寸 512x512。
message action=send channel=whatsapp to="+34612345678" filePath=/path/to/audio.ogg asVoice=true
使用 OGG/Opus 格式,MP3 可能无法正常播放。
message action=send channel=whatsapp to="+34612345678" filePath=/path/to/animation.mp4 gifPlayback=true
WhatsApp 要求 GIF 转为 MP4 格式。
响应解析: 完成完成后,查看输出响应确认任务状态。成功时输出包含解析摘要和响应数据;失败时根据错误信息排查问题,查阅错误解析章节获取恢复步骤。
WhatsApp 内部使用 JID(Jabber ID):
| 类型 | 格式 | 示例 |
|---|---|---|
| 个人 | <number>@s.whatsapp.net | 34612345678@s.whatsapp.net |
| 群组 | <id>@g.us | 123456789012345678@g.us |
使用 to= 传入手机号时,Agent 平台会自动转换为 JID 格式。
ffmpeg -i input.wav -c:a libopus -b:a 64k output.ogg
ffmpeg -i input.png -vf "scale=512:512:force_original_aspect_ratio=decrease,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=0x00000000" output.webp
ffmpeg -i input.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4 -y
WhatsApp 有反垃圾措施,应避免:
建议:单次广播不超过 10 人,消息间隔 ≥ 3 秒,优先回复已有对话。
-movflags faststart 加速首帧to= 参数必须包含国家代码(如 +34 代表西班牙),不要带空格或连字符。
filePath 使用绝对路径,避免相对路径在不同工作目录下失效。
发送后 Agent 平台会返回消息 ID,建议记录用于后续的回复/引用(专业版功能)。
A:需要先通过二维码链接 WhatsApp 账号。运行 whatsapp login 扫码登录,登录状态会持久化。
A:必须是 OGG/Opus 格式。MP3 在部分设备上无法播放。用 ffmpeg 转换:ffmpeg -i input.mp3 -c:a libopus -b:a 64k output.ogg。
A:贴纸必须是 WebP 格式且 512x512。用 ffmpeg 的 scale + pad 滤镜保持比例并填充透明背景。
A:WhatsApp 不支持原生 GIF,必须转为 MP4 并设置 gifPlayback=true。
A:群组使用 @g.us 后缀的 JID,例如 123456789012345678@g.us。群组管理能力在专业版。
A:降低发送频率,单次广播不超过 10 人,间隔 ≥ 3 秒。避免向未互动联系人发送。严重时账号可能被临时封禁。
A:建议图片 < 1MB,视频 < 16MB,文档 < 100MB。超大文件建议先用 ffmpeg 压缩。
本免费体验版限制以下高级功能:
解锁全部功能请使用专业版:whatsapp-master-pro
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由 Agent 平台内置 LLM 提供 |
| WhatsApp 通道插件 | 插件 | 必需 | Agent 平台内置或自行安装 |
| ffmpeg | CLI 工具 | 推荐 | 系统包管理器安装 |
| Baileys 协议库 | npm 包 | 内置 | 通道插件依赖 |
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "WhatsApp大师(免费版)处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "whatsapp master"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}