🧪 Skills
keyue-call
通过百度 AIOB 的获取 Token 与实时任务接口创建外呼任务。适用于:立即拨打电话、定时提醒电话(例如 5 分钟后拨打)、以及需要把用户意图整理为 dia
v1.0.2
Description
name: keyue-call description: 通过百度 AIOB 的获取 Token 与实时任务接口创建外呼任务。适用于:立即拨打电话、定时提醒电话(例如 5 分钟后拨打)、以及需要把用户意图整理为 dialogVar.name、dialogVar.owner_name 和 dialogVar.user_intent 后再发起外呼的场景;也适合通过脚本自动化创建外呼任务并结合 OpenClaw cron 调度。
AIOB 外呼技能
用于稳定地创建“立即外呼”与“延时外呼”任务。
工作流
- 在
config.json中配置默认参数(可参考config.json.example),包括:accessKey、secretKey、robotId、mobile、callerNum。 - 按
references/aiob-auth.md获取accessToken。 - 按
references/aiob-realtime-task.md组织实时外呼请求体。 - 先按
references/extraction-rules.md从用户自然语言中提取mobile、name、owner_name、user_intent、schedule。 - 使用
scripts/create_realtime_call.py发起请求(命令行参数可覆盖配置文件中的默认值)。 - 对“5 分钟后提醒我打电话”这类需求,使用 OpenClaw
cron做精确定时触发。
典型场景
1)立即外呼
采用配置优先模式。
示例(拨打配置文件中的默认手机号):
python3 scripts/create_realtime_call.py --config config.json
示例(仅覆盖被叫手机号):
python3 scripts/create_realtime_call.py --config config.json --mobile "13333333333"
2)通知某人某件事
当用户表达“打电话给张三,告诉他下午三点开会”这类需求时:
name = "张三"owner_name = "李四"(表示是谁发起这通电话;若上下文明确且用户希望话术体现发起人身份,则优先补齐)user_intent = "下午三点开会"
示例:
python3 scripts/create_realtime_call.py \
--config config.json \
--mobile "13333333333" \
--name "张三" \
--user-intent "下午三点开会"
3)提醒或催办
适用于:
- 打电话给张三,提醒他今天下班前提交周报
- 打电话给李四,告诉他快递到了
- 打电话给我,提醒我两分钟后出门
变量提取建议:
name:被称呼的人名;若用户没有明确姓名,可留空或使用默认值owner_name:外呼任务发起人的姓名或身份称呼,用于在话术里体现“这是谁让打来的电话”;若上下文明确且用户有这个需求,优先传递user_intent:真正要传达的内容,保留原意,尽量简洁
4)延时提醒外呼(例如 5 分钟后)
使用 OpenClaw cron 进行一次性调度。
实现模式:
- 创建 one-shot cron 任务(
schedule.kind = "at"),触发时间为当前时间 + 5 分钟。 - 任务使用 isolated
agentTurn执行本技能流程。 - cron 文案中写明“这是提醒电话”,并带上必要上下文。
5)带截止时间的排队外呼
设置 --stop-date "yyyy-MM-dd HH:mm:ss",超过截止时间后 AIOB 不再继续拨打。
自然语言入口
当用户直接说自然语言时,优先按 references/extraction-rules.md 解析,不要让用户自己组织 JSON。
推荐支持这类表达:
- “打电话给张三,告诉他下午三点开会”
- “打个电话给 14444444444,提醒他尽快回我微信”
- “2 分钟后打电话给我,提醒我出门拿快递”
执行策略:
- 判断是立即外呼还是延时/定时外呼。
- 抽取手机号;只有“打电话给我 / 给我自己打电话 / 提醒我自己”这类明确打给自己的场景,才允许回退到
config.json默认手机号。 - 若目标不是用户自己,则必须要求用户明确提供手机号;不要因为给了姓名就擅自使用默认号码。
- 抽取
name。 - 若用户希望在电话里体现“是谁发起的提醒/通知”,或上下文已明确发起人身份,则抽取
owner_name。 - 抽取
user_intent。 - 立即外呼时优先调用:
python3 scripts/create_realtime_call.py --config config.json [--mobile ...] [--name ...] [--owner-name ...] [--user-intent ...] - 延时/定时时用 OpenClaw
cron调度,并在触发时执行同一脚本。
参数约定
默认把外呼平台常用变量统一收敛到 dialogVar:
dialogVar.name:称呼对象,例如“张三”dialogVar.owner_name:外呼任务发起人的姓名或身份称呼,例如“李四”“妈妈”“公司行政”dialogVar.user_intent:要传达的信息,例如“下午三点开会”
优先使用快捷参数:
--name→ 写入dialogVar.name--owner-name→ 写入dialogVar.owner_name--user-intent→ 写入dialogVar.user_intent
如果确实需要额外变量,再使用 --dialog-var 传完整 JSON;当快捷参数和 --dialog-var 同时存在时,快捷参数优先覆盖同名字段。
当 dialogVar 中的字段值为空字符串时,脚本会自动清理;如果最终 name、owner_name 和 user_intent 都为空,则整个 dialogVar 不再上送。
成功后的用户提示
如果本次外呼成功,但用户没有表达 name 和 user_intent,回复里可顺手提示一次更完整的用法,帮助用户学会这个能力。
推荐提示风格:
- 简短
- 不说教
- 只在缺少这两个字段时提示
示例:
- “已经给你发起电话了。下次如果你想让电话里带具体内容,可以直接说:打电话给张三,告诉他 5 点开会。”
- “电话已经发起成功。你也可以直接补充姓名和想传达的话,比如:打电话给李四,告诉他尽快回电。”
如果本次已经明确提供了 name 或 user_intent,就不要重复教育用户。
约束与防护
- 不要在用户可见回复中暴露 AK/SK 或 accessToken。
- 若接口业务码非成功,返回简洁错误原因与可执行修复建议。
dialogVar必须是合法 JSON 对象。- 优先提取并传递
name、owner_name与user_intent,避免把整句原话无差别塞给平台。 - 只有“打给自己”的场景才能使用
config.json中的默认手机号;其他目标一律要求用户明确提供号码。 - 单次实时外呼请求仅传一个被叫号码(
mobile)。
资源说明
config.json.example:默认配置模板(AK/SK/robotId/mobile/callerNum 等)。references/aiob-auth.md:Token 获取接口与认证约束。references/aiob-realtime-task.md:实时任务字段、请求和响应要点。references/extraction-rules.md:把用户自然语言拆成mobile、name、owner_name、user_intent、schedule的规则。scripts/create_realtime_call.py:配置优先、支持参数覆盖的外呼脚本。
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!