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