🧪 Skills

keyue-call

通过百度 AIOB 的获取 Token 与实时任务接口创建外呼任务。适用于:立即拨打电话、定时提醒电话(例如 5 分钟后拨打)、以及需要把用户意图整理为 dia

v1.0.2
❤️ 1
⬇️ 86
👁 1
Share

Description


name: keyue-call description: 通过百度 AIOB 的获取 Token 与实时任务接口创建外呼任务。适用于:立即拨打电话、定时提醒电话(例如 5 分钟后拨打)、以及需要把用户意图整理为 dialogVar.name、dialogVar.owner_name 和 dialogVar.user_intent 后再发起外呼的场景;也适合通过脚本自动化创建外呼任务并结合 OpenClaw cron 调度。

AIOB 外呼技能

用于稳定地创建“立即外呼”与“延时外呼”任务。

工作流

  1. config.json 中配置默认参数(可参考 config.json.example),包括:accessKeysecretKeyrobotIdmobilecallerNum
  2. references/aiob-auth.md 获取 accessToken
  3. references/aiob-realtime-task.md 组织实时外呼请求体。
  4. 先按 references/extraction-rules.md 从用户自然语言中提取 mobilenameowner_nameuser_intentschedule
  5. 使用 scripts/create_realtime_call.py 发起请求(命令行参数可覆盖配置文件中的默认值)。
  6. 对“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 进行一次性调度。

实现模式:

  1. 创建 one-shot cron 任务(schedule.kind = "at"),触发时间为当前时间 + 5 分钟。
  2. 任务使用 isolated agentTurn 执行本技能流程。
  3. cron 文案中写明“这是提醒电话”,并带上必要上下文。

5)带截止时间的排队外呼

设置 --stop-date "yyyy-MM-dd HH:mm:ss",超过截止时间后 AIOB 不再继续拨打。

自然语言入口

当用户直接说自然语言时,优先按 references/extraction-rules.md 解析,不要让用户自己组织 JSON。

推荐支持这类表达:

  • “打电话给张三,告诉他下午三点开会”
  • “打个电话给 14444444444,提醒他尽快回我微信”
  • “2 分钟后打电话给我,提醒我出门拿快递”

执行策略:

  1. 判断是立即外呼还是延时/定时外呼。
  2. 抽取手机号;只有“打电话给我 / 给我自己打电话 / 提醒我自己”这类明确打给自己的场景,才允许回退到 config.json 默认手机号。
  3. 若目标不是用户自己,则必须要求用户明确提供手机号;不要因为给了姓名就擅自使用默认号码。
  4. 抽取 name
  5. 若用户希望在电话里体现“是谁发起的提醒/通知”,或上下文已明确发起人身份,则抽取 owner_name
  6. 抽取 user_intent
  7. 立即外呼时优先调用:
    python3 scripts/create_realtime_call.py --config config.json [--mobile ...] [--name ...] [--owner-name ...] [--user-intent ...]
    
  8. 延时/定时时用 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 中的字段值为空字符串时,脚本会自动清理;如果最终 nameowner_nameuser_intent 都为空,则整个 dialogVar 不再上送。

成功后的用户提示

如果本次外呼成功,但用户没有表达 nameuser_intent,回复里可顺手提示一次更完整的用法,帮助用户学会这个能力。

推荐提示风格:

  • 简短
  • 不说教
  • 只在缺少这两个字段时提示

示例:

  • “已经给你发起电话了。下次如果你想让电话里带具体内容,可以直接说:打电话给张三,告诉他 5 点开会。”
  • “电话已经发起成功。你也可以直接补充姓名和想传达的话,比如:打电话给李四,告诉他尽快回电。”

如果本次已经明确提供了 nameuser_intent,就不要重复教育用户。

约束与防护

  • 不要在用户可见回复中暴露 AK/SK 或 accessToken。
  • 若接口业务码非成功,返回简洁错误原因与可执行修复建议。
  • dialogVar 必须是合法 JSON 对象。
  • 优先提取并传递 nameowner_nameuser_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:把用户自然语言拆成 mobilenameowner_nameuser_intentschedule 的规则。
  • scripts/create_realtime_call.py:配置优先、支持参数覆盖的外呼脚本。

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs