Install
openclaw skills install @thcjp/call-bridgeopenclaw skills install @thcjp/call-bridge核心功能: 本技能提供等高级能力等能力。
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 通话桥接专业版通话活动管理 | 不支持 | 支持 |
| 通话桥接专业版与个性化语音配置 | 不支持 | 支持 |
| 复杂工作流可视化编排 | 不支持 | 支持 |
| 条件分支与异常重试 | 不支持 | 支持 |
| 定时触发与事件驱动 | 不支持 | 支持 |
bridge_number加入通话,代理负责引导转接action.url与action.sign_in_url详细的输入输出格式请参考下方章节说明。
用户希望对比4家餐厅的价格与可用时段。专业版并行拨打4通外呼,每通通话指令明确"仅收集信息不承诺预订"。4通通话结束后汇总对比,用户选择最优方案后再发起确认预订的通话.
用户需要与银行协商账户问题,涉及身份验证与敏感决策。代理先拨打银行,处理电话菜单与等待,到达人工客服后触发转接,将用户桥接到通话中。用户直接与客服对话,代理退出.
用户拥有一个预留号码,希望所有来电由AI代理先接听。代理收集来电者姓名、事由,判断是否需要转接给用户。常规咨询由代理直接应答,紧急事务转接到用户手机.
代理首次拨打商家时对方要求提供订单号,用户当时未提供。代理记录阻断点与缺失信息,用户补充后代理发起跟进通话,通话指令中包含上一次的转写文本,代理自然衔接"上次提到需要提供订单号,现在订单号是...".
用户希望代理以"李总的助理"身份外呼,语气专业但不过于正式,遇到付款请求时必须先询问用户。通过个性化配置定义身份、语气与决策边界,所有外呼自动应用.
预计上手时间:约180秒.
# 检查已有配置
cat ~/.config/call-bridge/key.json
curl -X PUT https://api.call-bridge.dev/me/call-preferences \
-H "Content-Type: application/json" \
-H "X-Api-Key: cb_sk_..." \
-d '{
"voice": "jessica",
"personality": "你是李总的助理,语气专业但友善。遇到付款、承诺或敏感决策时,必须先询问用户。不要代替用户做出财务承诺。",
"greeting": "您好,我是李总的助理。"
}'
# 同时拨打3家餐厅比价
for restaurant in "rest1_phone" "rest2_phone" "rest3_phone"; do
curl -X POST https://api.call-bridge.dev/call \
-H "Content-Type: application/json" \
-d "{
\"to\": \"$restaurant\",
\"task\": \"你好,我想了解本周六晚上7点两位用餐的可用时段与套餐价格。仅收集信息,不要预订。请询问:1)是否有包间 2)最低消费 3)是否需要预付定金。请报告完整信息。\"
}" &
done
wait
call-bridge.dev/call \
-H "Content-Type: application/json" \
-d '{
"to": "+1555bankphone",
"bridge_number": "+1555userphone",
"task": "你好,我需要协助处理账户问题。请帮我转接到人工客服。处理电话菜单时选择'账户问题'。等待时请不要挂断。一旦接通人工客服,请告知对方您正在连接客户,然后将客户桥接到通话中。"
}'
# 查看当前呼入配置
curl -H "X-Api-Key: cb_sk_..." \
https://api.call-bridge.dev/me/call-preferences
# ...
# 更新呼入配置
call-bridge.dev/me/call-preferences \
-H "Content-Type: application/json" \
-d '{
"voice": "jessica",
"personality": "专业友善的助理",
"greeting": "您好,请问我能帮您什么?",
"inbound": {
"instructions": "接听来电时,先询问对方姓名与来意。常规咨询直接应答。紧急事务请告知对方将转接,然后桥接到用户号码。",
"greeting": "您好,这里是李总办公室。",
"handoff_number": "+1555userphone"
}
}'
# 查看最近的呼入通话
"https://api.call-bridge.dev/me/calls?direction=inbound&limit=25"
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | string | 否 | call-bridge处理的内容输入 |
| strict_level | string | 否 | 审查严格度, 可选: strict/normal/loose, 默认: normal |
{
"success": true,
"data": {
"overall_grade": "A",
"total_score": 92,
"max_score": 100,
"summary": "处理完成",
"details": [
{
"item": "代码风格",
"status": "pass",
"score": 95,
"comment": "符合规范"
},
{
"item": "安全合规",
"status": "warn",
"score": 80,
"comment": "符合规范"
}
],
"improvements": [
{
"priority": "high",
"suggestion": "建议优化",
"expected_gain": "+5分"
},
{
"priority": "medium",
"suggestion": "建议优化",
"expected_gain": "+3分"
}
]
},
"error": null
}
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 待审查内容为空 | 用户未提供内容 | 提示用户提供待审查的代码 |
| 内容格式不识别 | 传入不支持的内容格式 | 列出支持的格式, 建议转换后重试 |
| 检查项超出范围 | 传入了不存在的检查维度 | 列出可用检查维度, 使用默认全部检查 |
| 审查超时 | 内容过长导致处理超时 | 建议分段审查, 每段不超过5000字 |
| 其他异常 | 内部处理异常 | 检查输入后重试 |
https://api.call-bridge.dev+1格式电话号码| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| Call Bridge API | API | 必需 | 首次外呼自动获取Key |
| curl/HTTP客户端 | 工具 | 必需 | 操作系统内置 |
| 预留号码 | 通信资源 | 可选 | Call Bridge平台购买 |
| LLM API | API | 必需 | 由Agent内置LLM提供 |
呼入功能需要预留号码与对应服务套餐,外呼功能无需额外资源.
~/.jsonhttps://call-bridge.dev/sign-in?token=<api_key>关联账户600权限,仅所有者可读写| 字段 | 说明 | 适用范围 |
|---|---|---|
voice | 语音音色 | 外呼+呼入 |
personality | 代理风格与行为边界 | 外呼+呼入 |
greeting | 外呼开场白 | 外呼 |
inbound.instructions | 呼入应答指令 | 呼入 |
inbound.greeting | 呼入问候语 | 呼入 |
inbound.handoff_number | 呼入转接号码 | 呼入 |
| 场景 | 是否可并行 | 条件 |
|---|---|---|
| 信息比价(餐厅、供应商) | 可以 | 仅收集信息,不承诺 |
| 预约可用时段查询 | 可以 | 不预订,仅询问 |
| 库存检查 | 可以 | 不下单,仅查询 |
| 预订/购买/取消 | 不可以 | 需用户明确批准 |
| 付款/审批 | 不可以 | 需实时转接 |
| 错误码 | 含义 | 处理方式 |
|---|---|---|
invalid_phone | 电话号码无效 | 要求用户提供有效+1格式号码 |
missing_fields | 缺少必填字段 | 补充to与task字段 |
auth_required | 需要认证 | 获取有效Key或使用返回的认证URL |
invalid_api_key | Key无效 | 替换为有效Key |
quota_exceeded | 配额用尽 | 引导用户查看套餐与余额 |
trial_exhausted | 试用耗尽 | 引导升级套餐 |
plan_required | 需要套餐 | 引导用户购买对应套餐 |
balance_depleted | 余额不足 | 引导用户充值 |
number_pool_exhausted | 号码池耗尽 | 静默重试一次 |
dial_failed | 拨号失败 | 静默重试一次 |
network_error | 网络错误 | 静默重试一次 |
reserved_number_required | 需要预留号码 | 引导用户开通预留号码服务 |
inbound_plan_required | 需要呼入套餐 | 引导用户升级到支持呼入的套餐 |
invalid_preferences | 偏好配置无效 | 修正voice为合法值 |
invalid_profile | 呼入配置无效 | 补充呼入instructions或greeting |
invalid_handoff_number | 转接号码无效 | 提供非本平台的外部可达号码 |
{
"campaign_id": "restaurant-comparison-2024-03",
"calls": [
{
"target": "+1555rest1",
"purpose": "查询周六晚餐价格与可用时段",
"known_facts": "两位用餐,周六晚7点",
"constraints": "仅收集信息不预订",
"result": "有包间,最低消费500,无需定金",
"blocker": null,
"next_action": "等待用户决策"
}
]
}
并行数量建议不超过4通,且仅用于信息收集。每通通话指令必须明确"不承诺"。若被风控,降低并行数或改为串行.
不会。转接后代理退出通话,后续对话为用户与对方的私密沟通。转接前的对话记录在转写文本中.
需要三项:账户关联的API Key、活跃的预留号码、对应的呼入服务套餐。缺少任一项配置会返回reserved_number_required或inbound_plan_required.
先GET /me/call-preferences获取当前外呼配置,然后在PUT请求中保留voice/personality/greeting,将inbound设为null.
将活动状态序列化为JSON存储在本地文件中。每次发起跟进通话时读取状态,将上一次转写文本包含在新的通话指令中.
不能是本平台的预留号码,不能是本平台拥有的号码。必须是外部可达的真实号码。已保存的用户电话号码可作为默认handoff_number.
使用GET /me/calls?direction=inbound&since={ISO时间戳}&limit=25。建议每30分钟轮询一次,时间窗口重叠以避免遗漏,按通话id去重。since按通话结束时间过滤.
新用户获得10次通话与10分钟通话时长的试用额度,以先到者为准。通话达到5秒talk time才算一次有效试用。试用额度用完后需升级套餐.
outcome与任务成功的关系?outcome是电话网络层面的结果(如answered表示接通),不代表任务成功。已接通的通话仍可能未达成用户目标。必须阅读transcript判断.
加载已保存的API Key,生成登录链接:https://call-bridge.dev/sign-in?token=<api_key>。不要为账户关联创建新Key,需先完成至少一次外呼后才有Key可关联.
具体详情请参考下方内容.
| 操作步骤 | 手动耗时 | 自动化耗时 | 时间节约 | 准确率提升 |
|---|---|---|---|---|
| 信息比价 | 60分钟/商家 | 15分钟/商家 | 45分钟/商家 | 20% |
| 实时转接 | 15分钟/次 | 2分钟/次 | 13分钟/次 | 50% |
| 呼入号码配置 | 30分钟/规则 | 5分钟/规则 | 25分钟/规则 | 30% |
| 通话活动管理 | 60分钟/活动 | 15分钟/活动 | 45分钟/活动 | 25% |
| 个性化语音配置 | 60分钟/配置 | 15分钟/配置 | 45分钟/配置 | 25% |
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 并行外呼能力 | 支持同时发起3-4通外呼 | 需手动操作每通电话 | 需编写脚本管理多线程 | 部分专业软件支持 |
| 实时转接 | 支持实时将用户桥接到通话中 | 需手动操作 | 需编写脚本进行桥接 | 部分专业软件支持 |
| 个性化语音配置 | 提供多种语音音色和风格 | 无此功能 | 可通过TTS库实现 | 部分专业软件支持 |
| 通话活动管理 | 支持跨通话保持状态 | 需手动记录 | 可通过数据库管理 | 部分专业软件支持 |
| 错误处理 | 提供完整错误处理机制 | 需手动处理 | 可通过异常处理机制 | 部分专业软件支持 |
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 多商家信息比价效率低 | 手动拨打多家商家电话进行信息比价,耗时且容易出错 | 影响决策效率和准确性 | 提供并行外呼功能,自动化比价 | 时间节约20%,准确率提升20% |
| 敏感通话处理复杂 | 需手动处理敏感通话,如银行账户问题,耗时且存在风险 | 影响用户体验和安全性 | 提供实时转接功能,简化流程 | 时间节约50%,安全性提升 |
| 呼入号码配置繁琐 | 需手动配置来电应答规则,耗时且容易出错 | 影响客户服务效率 | 提供呼入号码配置功能,自动化配置 | 时间节约30%,准确性提升 |
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 无法发起外呼 | API Key无效 | 检查API Key是否正确 | 重新获取API Key或更新API Key |
| 无法完成实时转接 | 网络连接不稳定 | 检查网络连接 | 确保网络连接稳定或尝试更换网络环境 |
| 无法配置呼入号码 | 配置信息不完整 | 检查配置信息 | 完善配置信息并重新配置 |
| 语音配置错误 | 语音音色选择错误 | 检查语音音色选择 | 选择正确的语音音色并重新配置 |
| 错误处理失败 | 错误处理逻辑错误 | 检查错误处理逻辑 | 修复错误处理逻辑并重新配置 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
A1: 企业级AI电话代理平台,支持并行外呼、实时转接、呼入号码、通话活动管理与个性化语音配置。通话桥接专业版是一款面向团队与企业的AI电话代理平台,在免费版单次外呼基。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。
针对通话桥接专业版使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |