Bot Handoff
vectorize-io/hindsight
Keep a durable record of work passed between Bots in the shared Hindsight memory bank.
触发阿里云晓蜜外呼机器人任务,自动批量拨打电话。适用于批量外呼、客户回访、满意度调查、简历筛查约面试等场景。可从前置工具或节点获取外呼名单。
$ npx skills add LeoYeAI/openclaw-master-skills --skill xiaomi-outbound-bot -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills xiaomi-outbound-bot --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/xiaomi-outbound-call .claude/skills/xiaomi-outbound-bot && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "xiaomi-outbound-bot" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/xiaomi-outbound-call into .claude/skills/xiaomi-outbound-bot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xiaomi-outbound-bot", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/xiaomi-outbound-callType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill xiaomi-outbound-bot -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills xiaomi-outbound-bot --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/xiaomi-outbound-call .agents/skills/xiaomi-outbound-bot && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "xiaomi-outbound-bot" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/xiaomi-outbound-call into .agents/skills/xiaomi-outbound-bot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xiaomi-outbound-bot", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill xiaomi-outbound-bot -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills xiaomi-outbound-bot --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/xiaomi-outbound-call .cursor/skills/xiaomi-outbound-bot && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "xiaomi-outbound-bot" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/xiaomi-outbound-call into .cursor/skills/xiaomi-outbound-bot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xiaomi-outbound-bot", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/xiaomi-outbound-call--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill xiaomi-outbound-bot -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills xiaomi-outbound-bot --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/xiaomi-outbound-call .gemini/skills/xiaomi-outbound-bot && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "xiaomi-outbound-bot" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/xiaomi-outbound-call into .gemini/skills/xiaomi-outbound-bot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xiaomi-outbound-bot", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills xiaomi-outbound-botInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill xiaomi-outbound-bot -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/xiaomi-outbound-call .github/skills/xiaomi-outbound-bot && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "xiaomi-outbound-bot" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/xiaomi-outbound-call into .github/skills/xiaomi-outbound-bot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xiaomi-outbound-bot", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill xiaomi-outbound-bot -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills xiaomi-outbound-bot --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/xiaomi-outbound-call .opencode/skills/xiaomi-outbound-bot && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "xiaomi-outbound-bot" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/xiaomi-outbound-call into .opencode/skills/xiaomi-outbound-bot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xiaomi-outbound-bot", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
xiaomi-outbound-bot触发阿里云晓蜜外呼机器人任务,自动批量拨打电话。适用于批量外呼、客户回访、满意度调查、简历筛查约面试等场景。可从前置工具或节点获取外呼名单。
Xiaomi Outbound Bot is an agent skill from LeoYeAI/openclaw-master-skills. 触发阿里云晓蜜外呼机器人任务,自动批量拨打电话。适用于批量外呼、客户回访、满意度调查、简历筛查约面试等场景。可从前置工具或节点获取外呼名单。
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `_meta.json`, `references/config.md` and `scripts/bundle.js`).
The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
outboundbot.console.aliyun.comhelp.aliyun.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ALIYUN_OUTBOUND_BOT_ACCESS_KEY_IDALIYUN_OUTBOUND_BOT_ACCESS_KEY_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Xiaomi Outbound Bot loads about 3.7k tokens when it runs, and up to ~4.1k if it reads all its reference files. Until then it costs about 23 tokens; SKILL.md has 663 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 663 words, ~3,740 tokens.
.claude/skills/xiaomi-outbound-bot/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.自动化外呼机器人技能,用于批量电话外呼。
创建 taskInput.json 文件:
{
"phoneNumbers": ["13800138000", "13900139000"],
"scenarioDescription": "春季新品推广,了解客户购买意向",
"taskName": "春季促销活动"
}执行:
node scripts/bundle.js taskInput.jsonARGUMENTS='{"phoneNumbers":["13800138000"],"scenarioDescription":"测试外呼"}' \
node scripts/bundle.js当用户提供外呼需求时,不要只提取电话号码和简单描述,而应该:
agentProfile,包含所有 11 个字段workflow 中体现具体的沟通步骤❌ 不好的做法(信息丢失):
{
"phoneNumbers": ["15611207961"],
"scenarioDescription": "建议反馈",
"taskName": "建议外呼"
}问题:丢失了"面试邀约"、"后天晚上八点"、"备选时间"等关键信息
✅ 好的做法(充分利用信息):
{
"phoneNumbers": ["15611207961"],
"scenarioDescription": "Java 开发岗位面试邀约 - 优秀候选人",
"taskName": "面试邀约",
"agentProfile": {
"role": "招聘专员",
"background": "Java 开发岗位招聘,候选人简历优秀",
"goals": "确认后天晚上八点面试时间,不方便则协商大后天",
"workflow": "自我介绍 -> 说明来意 -> 确认后天晚上八点 -> 备选时间 -> 记录反馈",
"openingPrompt": "您好,我是XX公司招聘专员,看到您的简历非常优秀"
}
}当用户提到以下场景时使用此技能:
⚠️ 重要提示:使用此技能时,请务必:
需要在环境变量中配置阿里云 AK/SK:
export ALIYUN_OUTBOUND_BOT_ACCESS_KEY_ID="your-access-key-id"
export ALIYUN_OUTBOUND_BOT_ACCESS_KEY_SECRET="your-access-key-secret"详细配置说明请参考 references/config.md
必须在阿里云晓蜜控制台申请并绑定外呼号码,否则无法进行外呼。
技能会在执行外呼前自动检查:
❌ 租户下无绑定号码,无法进行外呼。
请先在阿里云晓蜜控制台申请并绑定外呼号码。只需要 Node.js 环境(版本 >= 18)即可运行。
当你(Agent)需要帮助用户执行外呼任务时,请遵循以下步骤:
场景 A: 从前置节点获取(如简历筛查、客户查询等)
如果用户的请求是多步骤任务的一部分(例如:"给昨天收集到的蓝领简历进行筛查并约面试"),你应该:
场景 B: 用户直接提供
如果用户直接提供电话号码或明确的外呼需求,收集以下信息:
如果信息不完整,使用 ask questions 工具向用户询问。
在执行外呼任务前,必须向用户展示并确认以下信息:
准备执行外呼任务,请确认以下信息:
📋 任务信息
- 任务名称: 面试邀约
- 外呼场景: Java 开发岗位面试邀约 - 优秀候选人
- 智能体角色: 招聘专员
- 外呼目标: 确认后天晚上八点面试时间,不方便则协商大后天
📞 外呼名单(共 1 人)
1. 15611207961
是否确认执行外呼?重要提示:
主要方式:创建 taskInput.json 文件 ⭐
将收集到的信息格式化为 JSON 文件。重要:请仔细分析用户场景,提取尽可能多的信息来构建智能体配置。
当用户提供外呼场景时,你应该:
分析场景类型 - 识别是招聘、销售、客服、调查等哪种场景
提取关键信息 - 从用户描述中提取:
构建 agentProfile - 根据场景自动生成:
role: 根据场景推断(如"招聘专员"、"销售顾问")background: 提取业务背景(如"Java 开发岗位面试邀约")goals: 明确外呼目标(如"确认候选人后天晚上八点是否方便参加面试")workflow: 设计对话流程(如"问候 -> 说明来意 -> 确认时间 -> 备选方案 -> 记录反馈")openingPrompt: 生成得体的开场白(如"您好,我是XX公司的招聘专员")用户场景:
给 15611207961 这个优秀的人邀约面试,后天晚上八点是否方便参加面试,如不方便则询问大后天任意时间应该生成的完整 JSON:
{
"phoneNumbers": ["15611207961"],
"scenarioDescription": "Java 开发岗位面试邀约 - 优秀候选人",
"taskName": "面试邀约",
"agentProfile": {
"name": "李敏",
"gender": "女",
"age": 28,
"role": "招聘专员",
"communicationStyle": ["专业", "友好", "高效"],
"background": "Java 开发岗位招聘,候选人简历优秀,需要邀约面试",
"goals": "确认候选人后天(X月X日)晚上八点是否方便参加面试,如不方便则协商大后天的时间",
"skills": "面试邀约、时间协调、候选人沟通",
"workflow": "自我介绍 -> 说明来意(面试邀约)-> 确认后天晚上八点 -> 如不方便询问大后天时间 -> 记录反馈 -> 发送面试详情",
"constraint": "保持专业、尊重候选人时间、提供灵活的时间选择",
"openingPrompt": "您好,我是XX公司的招聘专员李敏,看到您的简历非常优秀"
}
}❌ 不够好的示例(信息提取不充分):
{
"phoneNumbers": ["15611207961"],
"scenarioDescription": "建议反馈",
"taskName": "建议外呼",
"type": "service"
}技能支持多种输入格式,会自动识别并解析:
格式 1: 标准格式(推荐):
{
"phoneNumbers": ["13800138000", "13900139000"],
"scenarioDescription": "春季新品推广,了解客户购买意向",
"taskName": "春季促销活动",
"agentProfile": {
"name": "小美",
"gender": "女",
"age": 25,
"role": "销售顾问",
"communicationStyle": ["热情", "专业", "亲切"],
"background": "春季新品推广活动",
"goals": "了解客户购买意向,促成交易",
"skills": "产品介绍、需求挖掘、促成交易",
"workflow": "问候 -> 了解需求 -> 介绍产品 -> 处理异议 -> 促成合作",
"constraint": "保持礼貌、尊重对方意愿、不强制推销",
"openingPrompt": "您好,我是小美,春季新品推广活动的销售顾问"
}
}注意: agentProfile 中的所有字段都是可选的。如果不提供,系统会根据 scenarioDescription 智能推断合适的配置。
格式 2: 简化格式:
{
"phones": "13800138000,13900139000",
"scenario": "产品推广",
"name": "春季促销"
}格式 3: 候选人/简历筛查格式(前置节点):
{
"candidates": [
{ "name": "张三", "phone": "13800138000", "score": 85 },
{ "name": "李四", "phone": "13900139000", "score": 90 }
],
"scenarioDescription": "面试邀约 - 蓝领岗位简历筛查通过",
"taskName": "蓝领简历筛查后约面试",
"previousStep": "简历筛查"
}格式 4: CRM/外部工具格式:
{
"data": {
"contacts": [
{ "phone": "13800138000", "name": "张三" },
{ "phone": "13900139000", "name": "李四" }
],
"purpose": "客户回访",
"campaignName": "满意度调查"
},
"toolName": "CRM-System"
}格式 5: 通用列表格式:
[
{ "phone": "13800138000", "name": "张三" },
{ "phone": "13900139000", "name": "李四" }
]注意:使用此格式时,scenarioDescription 会默认为"批量外呼"
虽然 agentProfile 是可选的,但强烈建议 Agent 根据用户场景主动构建完整的智能体配置。
提供完整的 agentProfile 可以:
技能支持自定义外呼智能体的人设和行为。可以通过 agentProfile 字段配置:
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
name | string | 否 | 智能体名称 | "小美"、"小智" |
gender | string | 否 | 性别 | "男"、"女" |
age | number | 否 | 年龄 | 25 |
role | string | 否 | 身份角色 | "销售顾问"、"招聘专员"、"客服专员" |
communicationStyle | string[] | 否 | 沟通风格 | ["热情", "专业", "亲切"] |
background | string | 否 | 业务背景 | "春季新品推广活动" |
goals | string | 否 | 业务目标 | "了解客户购买意向,促成交易" |
skills | string | 否 | 业务技能 | "产品介绍、需求挖掘、促成交易" |
workflow | string | 否 | 工作流程 | "问候 -> 了解需求 -> 介绍产品 -> 促成合作" |
constraint | string | 否 | 约束条件 | "保持礼貌、尊重对方意愿、不强制推销" |
openingPrompt | string | 否 | 开场白 | "您好,我是小美" |
如果不提供 agentProfile 或部分字段,系统会根据 scenarioDescription 智能推断:
招聘场景:
{
"phoneNumbers": ["13800138000"],
"scenarioDescription": "面试邀约 - Java 开发工程师",
"agentProfile": {
"name": "李敏",
"role": "招聘专员",
"openingPrompt": "您好,我是李敏,XX公司的招聘专员"
}
}保险场景:
{
"phoneNumbers": ["13800138000"],
"scenarioDescription": "重疾险产品推荐",
"agentProfile": {
"name": "王顾问",
"role": "保险顾问",
"communicationStyle": ["专业", "耐心", "诚恳"]
}
}这是推荐的主要输入方式。创建一个 JSON 文件(通常命名为 taskInput.json),包含外呼任务的所有参数。
{
"phoneNumbers": ["13800138000", "13900139000"],
"scenarioDescription": "春季新品推广,了解客户购买意向",
"taskName": "春季促销活动",
"agentProfile": {
"name": "小美",
"gender": "女",
"age": 25,
"role": "销售顾问",
"communicationStyle": ["热情", "专业", "亲切"],
"background": "春季新品推广活动",
"goals": "了解客户购买意向,促成交易",
"skills": "产品介绍、需求挖掘、促成交易",
"workflow": "问候 -> 了解需求 -> 介绍产品 -> 处理异议 -> 促成合作",
"constraint": "保持礼貌、尊重对方意愿、不强制推销",
"openingPrompt": "您好,我是小美,春季新品推广活动的销售顾问"
},
"metadata": {
"source": "manual",
"campaign": "spring-2024"
}
}{
"phoneNumbers": ["13800138000"],
"scenarioDescription": "测试外呼"
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
phoneNumbers | string[] | ✅ 是 | 电话号码列表,中国大陆手机号(11位,1开头) |
scenarioDescription | string | ✅ 是 | 外呼场景描述,用于生成话术和智能体配置 |
taskName | string | 否 | 任务名称,便于识别 |
agentProfile | object | 否 | 智能体配置,不提供则自动推断 |
metadata | object | 否 | 额外元数据,可存储任何自定义信息 |
# 使用 JSON 文件
node scripts/bundle.js taskInput.json
# 或使用其他文件名
node scripts/bundle.js my-task.json适用于 Cursor Agent 或需要通过环境变量传递参数的场景:
ARGUMENTS='{"phoneNumbers":["13800138000"],"scenarioDescription":"测试"}' \
node scripts/bundle.js如果不提供任何参数,技能会进入交互式模式,逐步询问:
node scripts/bundle.js
# 会提示输入:
# - 电话号码列表
# - 场景描述
# - 任务名称技能会按以下顺序查找输入:
在用户确认后,执行外呼任务:
方式 A: 使用 JSON 文件(推荐)
node scripts/bundle.js taskInput.json方式 B: 使用 $ARGUMENTS 环境变量
ARGUMENTS='{"phoneNumbers":["13800138000"],"scenarioDescription":"测试"}' \
node scripts/bundle.js输入优先级:
$ARGUMENTS 环境变量用户: "给昨天收集到的蓝领简历进行筛查并约面试"
Agent 操作流程:
执行前置步骤 - 调用简历筛查工具
[简历筛查工具返回]
{
"candidates": [
{ "name": "张三", "phone": "13800138000", "score": 85 },
{ "name": "李四", "phone": "13900139000", "score": 90 }
]
}提取电话号码 - 从筛查结果中提取
phoneNumbers = ["13800138000", "13900139000"];生成场景描述 - 根据用户意图自动生成
scenarioDescription = "面试邀约 - 蓝领岗位简历筛查通过";
taskName = "蓝领简历筛查后约面试";创建 taskInput.json 文件
{
"phoneNumbers": ["13800138000", "13900139000"],
"scenarioDescription": "面试邀约 - 蓝领岗位简历筛查通过",
"taskName": "蓝领简历筛查后约面试",
"agentProfile": {
"role": "招聘专员",
"openingPrompt": "您好,我是XX公司的招聘专员"
},
"metadata": {
"source": "resume-screening",
"previousStep": "简历筛查",
"candidates": [
{ "name": "张三", "phone": "13800138000", "score": 85 },
{ "name": "李四", "phone": "13900139000", "score": 90 }
]
}
}执行外呼技能
node scripts/bundle.js taskInput.json关键点:
用户: "帮我给 13800138000 和 13900139000 打电话,做春季促销推广"
Agent 操作:
["13800138000", "13900139000"]"春季促销推广"taskInput.json:{
"phoneNumbers": ["13800138000", "13900139000"],
"scenarioDescription": "春季促销推广",
"taskName": "春季促销"
}node scripts/bundle.js taskInput.json用户: "我有个客户名单,帮我做满意度回访"
Agent 操作:
ask questions 工具询问号码列表taskInput.json:{
"phoneNumbers": ["13800138000", "13900139000", "..."],
"scenarioDescription": "客户满意度回访",
"taskName": "满意度调查"
}node scripts/bundle.js taskInput.json用户: "用 customers.json 里的号码做产品推广"
Agent 操作:
customers.json 文件内容taskInput.json:{
"phoneNumbers": ["提取的号码列表"],
"scenarioDescription": "产品推广",
"taskName": "产品推广活动"
}node scripts/bundle.js taskInput.json技能执行时会自动完成以下步骤:
1. 验证输入 - 检查电话号码格式和必需参数
↓
2. 创建实例 - 获取或创建阿里云晓蜜外呼实例
↓
3. 确认绑定号码 - 检查租户是否有绑定号码 ⚠️ 关键步骤
├─ 如果没有绑定号码 → 终止流程,提示用户配置
└─ 如果有绑定号码 → 自动绑定到实例,继续执行
↓
4. 创建话术 - 根据场景描述生成外呼话术
↓
5. 创建任务组 - 在阿里云晓蜜平台创建外呼任务组
↓
6. 启动外呼 - 开始批量拨打电话
↓
7. 返回结果 - 输出任务组 ID 和执行状态这是主要的输入方式。创建 taskInput.json 文件:
{
"phoneNumbers": ["13800138000", "13900139000"],
"scenarioDescription": "了解客户满意度",
"taskName": "客户回访",
"agentProfile": {
"role": "客服专员",
"openingPrompt": "您好,我是XX公司的客服专员"
}
}执行:
node scripts/bundle.js taskInput.json适用于 Cursor Agent 或脚本调用:
ARGUMENTS='{"phoneNumbers":["13800138000"],"scenarioDescription":"测试"}' \
node scripts/bundle.js# 指定 JSON 文件
node scripts/bundle.js taskInput.json
# 指定实例 ID 和脚本 ID(复用已有资源)
node scripts/bundle.js taskInput.json --instance-id xxx --script-id yyy技能执行完成后会输出:
{
taskInput: {
phoneNumbers: string[];
scenarioDescription: string;
taskName?: string;
metadata?: Record<string, any>;
},
jobGroupId: string; // 任务组 ID
instanceId: string; // 外呼实例 ID
scriptId: string; // 话术脚本 ID
totalPhones: number; // 拨打的电话数量
}错误:
❌ 租户下无绑定号码,无法进行外呼。
请先在阿里云晓蜜控制台申请并绑定外呼号码。原因: 租户未在阿里云晓蜜控制台申请和绑定外呼号码
解决:
注意:
错误: "请配置阿里云 AK/SK 环境变量"
解决:
export ALIYUN_OUTBOUND_BOT_ACCESS_KEY_ID="your-key"
export ALIYUN_OUTBOUND_BOT_ACCESS_KEY_SECRET="your-secret"错误: "电话号码格式不正确"
解决: 确保号码是中国大陆手机号(1开头的11位数字)
错误: "创建任务组失败"
可能原因:
解决: 检查阿里云晓蜜控制台的实例和脚本状态
node scripts/bundle.js [options]
Options:
--json <file> 从 JSON 文件读取任务配置
--no-interactive 禁用交互式输入
--instance-id <id> 指定外呼实例 ID
--script-id <id> 指定话术脚本 ID本技能专注于外呼任务的创建和启动,包括:
本技能不包括:
如需查看外呼结果,请在阿里云晓蜜控制台查看。
© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts, references) in skills/xiaomi-outbound-call of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Xiaomi Outbound Bot next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Xiaomi Outbound Bot this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~3.7k | Automated safety check: Pass | MIT | |
| Bot Handoffvectorize-io/hindsight | 48k | — | ~496 | Automated safety check: Pass | MIT | |
| Telegram Bot Builderdavila7/claude-code-templates | 33k | 4 repos | ~1.5k | Automated safety check: Notes | MIT | |
| Bot Channel Acceptance Testinglobehub/lobehub | 83k | — | ~1k | Automated safety check: Pass | Custom licence | |
| Telegram Bot Messagingsickn33/agentic-awesome-skills | 47k | 1 repos | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Discord Bot Architectdavila7/claude-code-templates | 33k | 7 repos | ~2k | Automated safety check: Pass | MIT |
vectorize-io/hindsight
Keep a durable record of work passed between Bots in the shared Hindsight memory bank.
davila7/claude-code-templates
Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots.
lobehub/lobehub
Extends a project's acceptance process to real chat bot channels: Discord, Slack, Telegram, WeChat, Lark, QQ, and iMessage on macOS.
sickn33/agentic-awesome-skills
Send Telegram messages, files, and alerts via bot API; ask questions with inline buttons and wait for the answer.
davila7/claude-code-templates
Specialized skill for building production-ready Discord bots.
sickn33/agentic-awesome-skills
Build Slack apps using the Bolt framework across Python, JavaScript, and Java.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
触发阿里云晓蜜外呼机器人任务,自动批量拨打电话。适用于批量外呼、客户回访、满意度调查、简历筛查约面试等场景。可从前置工具或节点获取外呼名单。. Xiaomi Outbound Bot is an agent skill from LeoYeAI/openclaw-master-skills.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill xiaomi-outbound-bot -a claude-code`. Or copy the skill folder (skills/xiaomi-outbound-call in LeoYeAI/openclaw-master-skills) into .claude/skills/xiaomi-outbound-bot in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill xiaomi-outbound-bot -a codex`. Or copy the skill folder (skills/xiaomi-outbound-call in LeoYeAI/openclaw-master-skills) into .agents/skills/xiaomi-outbound-bot in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill xiaomi-outbound-bot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/xiaomi-outbound-bot, .gemini/skills/xiaomi-outbound-bot, .github/skills/xiaomi-outbound-bot and .opencode/skills/xiaomi-outbound-bot in your project.
Going by SKILL.md and its folder, Xiaomi Outbound Bot needs JavaScript for the scripts in its folder, the command-line tools its instructions call (node) and credentials named ALIYUN_OUTBOUND_BOT_ACCESS_KEY_ID and ALIYUN_OUTBOUND_BOT_ACCESS_KEY_SECRET. Our summary lists: Node.js; A credential in ALIYUN_OUTBOUND_BOT_ACCESS_KEY_SECRET.
SKILL.md names 2 domains. As links in the text: outboundbot.console.aliyun.com and help.aliyun.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Xiaomi Outbound Bot is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 312 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Xiaomi Outbound Bot: Bot Handoff (vectorize-io/hindsight, 48k stars), Telegram Bot Builder (davila7/claude-code-templates, 33k stars), Bot Channel Acceptance Testing (lobehub/lobehub, 83k stars) and Telegram Bot Messaging (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.