本文档详细为您介绍 Chat App 消息发送 Skill 的核心能力、安装方式及使用流程。通过本 Skill,您可以在 Agent 中完成 WhatsApp消息的发送、模板查询与会话管理,无需频繁切换控制台或手动构造 API 请求。
前提条件
拥有阿里云子账号 AccessKey ID 和 AccessKey Secret(由主账号在RAM控制台创建用户,并授予 CAMS 相关权限)。
已开通 Chat App 消息服务控制台,并完成以下操作:
绑定 WhatsApp Business Account(WABA)
注册并审核通过发送方手机号(From)
创建并审核通过消息模板(发送模板消息时必须)
一、核心技能和优势
阿里云 Chat App 消息发送 Skill 将 WhatsApp消息的发送、模板查询、会话管理能力封装成 Agent 可调用工具。企业用户无需频繁切换控制台或手动构造 JSON 参数,就可以在 Agent 中完成客户通知、营销触达和会话交互。
能力 | 说明 |
发送模板消息 | 跨 24 小时会话窗口发送 WhatsApp模板消息,支持变量替换,适用于营销通知、订单状态、验证码、物流提醒等场景。 |
发送自定义消息 | 在 24 小时会话窗口内发送自有形态消息,支持 text / image / video / audio / document / interactive / location 七种类型。 |
查询模板列表 | 按审核状态、模板类型、语言筛选模板,供 Agent 自动选择或展示给用户。 |
查询模板详情 | 获取指定模板的变量结构,让 Agent 引导用户逐项填参,避免参数数量与格式错配。 |
核心优势:
对话式完成消息发送:用户无需频繁进入控制台,可直接在 Claude Code、Qwen Coder、OpenClaw 等 Agent 工具中,通过自然语言完成模板查询、变量填写和消息发送。
降低参数构造成本:传统 API 调用对 Content JSON 格式要求严格,格式不符合要求可能导致任务失败。使用 Skill 后,Agent 可自动构造合法 JSON,并辅助完成变量匹配。
自动错误诊断:Skill 内置常见错误码自动诊断与解决方案提示,例如 SessionWindowExpired 时自动切换至模板消息流程,RAM 权限不足时联动 ram-permission-diagnose 技能引导用户申请权限。
发送前二次确认:所有可定制参数(From / To / 模板 / 变量 / Content JSON)必须显式向用户确认,Agent 永不假设默认值,确保消息发送准确无误。
二、安装方式
阿里云技能市场安装(推荐)
访问阿里云技能市场,搜索 “ChatApp 消息发送”进行安装。
ClawHub 安装
访问 ClawHub 平台,搜索“alibabacloud-chatapp-message-send”查看 Skill 说明和安装。
其他安装方式
ClaudeCode 安装
将下载的技能压缩包解压后,移入 ClaudeCode 的技能目录中:
全局生效(所有项目):将技能移到
~/.claude/skills/目录下项目级生效(仅当前项目):将技能移到
项目根路径/.claude/skills/目录下
移入完成后,重启 ClaudeCode 生效。
OpenClaw 安装
将下载的技能压缩包解压,复制技能所在的目录路径,在 OpenClaw 中输入该路径,直接对话“帮我安装一下这个目录下的技能”,等待技能安装完成的提示信息后即可使用。
三、环境配置
1. Aliyun CLI >= 3.3.3
运行 aliyun version 校验版本。若未安装或版本过低:
# macOS / Linux 一键安装或升级到最新版
curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash
# 验证版本(需 >= 3.3.3)
aliyun version重要:在调用任何 CLI 前,启用自动插件安装与 AI-Mode:
aliyun configure set --auto-plugin-install true
aliyun plugin update
aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent \
--user-agent "AlibabaCloud-Agent-Skills/alibabacloud-chatapp-message-send"退出时必须关闭:会话结束/任务完成/异常退出,任何退出路径都需执行 aliyun configure ai-mode disable。
2. 安装 cams 插件
aliyun plugin install --names aliyun-cli-cams3. 凭证验证
安全规则:
NEVER 读取、回显、打印 AK/SK 值
NEVER 在对话或命令行中要求用户直接输入 AK/SK
NEVER 使用
aliyun configure set配合明文凭证ONLY 使用
aliyun configure list检查凭证状态
aliyun configure list检查输出中是否存在有效的 profile(AK / STS / OAuth)。若无有效 profile,请停在此处,从 RAM控制台获取凭证后,在会话外通过 aliyun configure 或环境变量完成配置,再返回继续。
4. RAM 权限
本 Skill 需要以下 RAM Action:
API | Action | 说明 |
SendChatappMessage | cams:SendChatappMessage | 发送消息 |
SendChatappMassMessage | cams:SendChatappMassMessage | 批量发送 |
ListChatappTemplate | cams:ListChatappTemplate | 查询模板列表 |
GetChatappTemplateDetail | cams:GetChatappTemplateDetail | 查询模板详情 |
ListChatappMessage | cams:ListChatappMessage | 查询消息列表 |
最小权限策略 JSON:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cams:SendChatappMessage",
"cams:SendChatappMassMessage",
"cams:ListChatappTemplate",
"cams:GetChatappTemplateDetail",
"cams:ListChatappMessage"
],
"Resource": "*"
}
]
}四、Skill 使用说明
核心功能
支持对话式查询模板列表和详情,获取可用的模板和变量结构。
支持自动发送模板消息和自定义消息,可跨 24 小时会话窗口触达用户。
支持会话窗口检测:超时自动切回模板消息流。
支持多语言模板(如 en / zh_CN / zh_HK 等)。
支持 ISV 多租户场景:--cust-space-id。
五、典型应用场景
海外订单通知
订单发货、物流更新、支付确认,是海外业务中常见的消息触达场景。
过去,运营人员需要查模板、填变量、准备号码,再通过控制台或脚本完成发送。使用 Skill 后,用户可以直接向 Agent 提出需求,由 Agent 协助完成模板匹配、变量填写、消息发送和结果返回。
营销活动触达
海外营销活动中,WhatsApp 常用于新品通知、促销提醒、会员唤醒等场景。
需要注意的是,WhatsApp 模板消息仍需提前完成审核,Skill 不会缩短 Meta 的模板审核周期。但在模板审核通过后,Agent 可以帮助用户更高效地调用模板,还能自动验证号码格式和模板匹配度,完成客户名单处理、变量匹配、分批发送和结果复盘。
客服回访跟进
客服回访中,24 小时会话窗口是一个重要规则。客户主动发起会话后,企业可在窗口内发送自由体消息;窗口外则需要使用模板消息。
通过 Skill,Agent 可以协助判断应使用自由体消息还是模板消息,并推荐合适的发送方式,帮助客服人员减少规则理解和人工判断成本,避免失败重发。
六、常见问题
这个 skill 支持哪些 AI agent 工具?
目前支持 Claude Code、Cursor、OpenClaw、Qoderwork、悟空等遵循 Agent Skills 标准的工具。更多平台持续接入中。
skill 和控制台的能力有什么区别?
skill 当前支持发送模板消息、发送自定义消息、查询模板列表、查询模板详情。创建模板,消息控制台功能暂不支持,仍需通过控制台操作。
没注册账号,可以发消息吗?
不可以。您需要注册阿里云账号,并开通 Chat App 消息服务,完成 WABA 绑定、发送方手机号注册和模板审核。
个人用户可以使用吗?
WhatsApp Business API 需要企业资质。个人用户如果有企业信息,可使用企业资质;不支持个人资质发送消息。
模板变量必须严格按格式填写吗?
是的。模板变量需要按编号顺序填写(如 1=value1 2=value2 3=value3),Agent 会引导您逐项确认,避免数量或格式错配。
什么样的模板可以用来发消息?
模板审核状态为"通过"且语言与目标用户匹配,即可使用该模板发送消息。可通过 list-chatapp-template --audit-status pass 查询已审核模板。
一次可以发多少条消息?
可以,如果有多个手机号,可以发给多个用户,只需要告知 Agent 目标手机号列表即可。
自定义消息只能在 24 小时内发送吗?
是的。WhatsApp 自定义消息只能在用户最近一次消息后 24 小时内发送,超时将报 SessionWindowExpired,此时 Agent 会自动切换至模板消息流程。
七、常见错误码
错误码 | 含义 | 解决方案 |
InvalidParameter.FromOnlyNumeric | 手机号包含 + | API 仅接受纯数字,移除 +,例如 8613867404376 |
TemplateNotFound | 模板不存在 | 核对 template-code 与 biz-language |
TemplateParamInvalid | 模板变量错误 | 检查变量数量与格式是否与模板匹配 |
SessionWindowExpired | 24h 会话窗口超时 | 切换至模板消息流程 |
PhoneNumberNotRegistered | 发送方未注册 | 在控制台完成手机号注册与审核 |
Forbidden.RAM | RAM 权限不足 | 使用 ram-permission-diagnose 技能联动开通缺失权限 |
InvalidAccessKeyId.NotFound | AccessKey ID 错误 | 检查 AK ID |
SignatureDoesNotMatch | AccessKey Secret 错误 | 检查 AK Secret |
权限失败联动:当任何命令因 RAM 权限失败时,Skill 自动读取 references/ram-policies.md,调用 ram-permission-diagnose 技能引导用户申请权限,等待确认后再恢复执行。