通话桥接专业版
付费版专享能力
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 通话桥接专业版通话活动管理 | 不支持 | 支持 |
| 通话桥接专业版与个性化语音配置 | 不支持 | 支持 |
| 复杂工作流可视化编排 | 不支持 | 支持 |
| 条件分支与异常重试 | 不支持 | 支持 |
| 定时触发与事件驱动 | 不支持 | 支持 |
核心能力
并行外呼与通话活动
- 同时发起3-4通外呼,适合信息比价与选项探索
- 通话活动状态管理:跨通话保持目标、目的、已知事实、结果与下一步行动
- 跟进通话复用上一次通话的转写文本,代理可自然衔接
- 通话结果汇总与对比报表
输入: 用户提供并行外呼与通话活动所需的指令和必要参数. 处理: 解析并行外呼与通话活动的输入参数,执行核心处理逻辑,返回结构化结果和执行状态。### 实时转接(live handoff)
- 将用户桥接到正在进行的通话中,跳过等待时间
- 用户通过
bridge_number加入通话,代理负责引导转接 - 转接前的对话记录在转写文本中,转接后的对话为私密
- 适合身份验证、敏感谈判、实时决策等场景
处理: 解析实时转接(live handoff)的输入参数,执行核心处理逻辑,返回结构化结果和执行状态. 输出: 返回实时转接(live handoff)的处理结果,包含执行状态码、结果数据和执行日志。### 呼入号码配置
- 配置来电应答规则:代理如何接听、收集什么信息、何时转接
- 站立式简报:为未来未知来电者预设应答指令
- 转接号码配置:将来电转接到用户的外部号码
- 需要预留号码与对应服务套餐
处理: 解析呼入号码配置的输入参数,执行核心处理逻辑,返回结构化结果和执行状态. 输出: 返回呼入号码配置的处理结果,包含执行状态码、结果数据和执行日志。### 个性化语音配置
- 语音音色:jessica(默认,女)、sarah(女)、chris(男)、eric(男)
- 个性化风格:定义代理的身份、语气、持久度、谨慎度与决策边界
- 开场白:配置外呼时的标准开场语
- 呼入问候语:为来电者定制应答问候
输入: 用户提供个性化语音配置所需的指令和必要参数. 处理: 解析个性化语音配置的输入参数,执行核心处理逻辑,返回结构化结果和执行状态. 输出: 返回个性化语音配置的处理结果,包含执行状态码、结果数据和执行日志。### 错误处理
- 认证错误:Key无效或缺失时的恢复策略
- 配额错误:试用耗尽、套餐不足、余额不足时的引导
- 网络错误:拨号失败、号码池耗尽时的策略
- 配置错误:语音选项无效、呼入配置缺失时的修复指引
- 保留所有返回的
action.url与action.sign_in_url
输入: 用户提供错误处理所需的指令和必要参数. 处理: 解析错误处理的输入参数,执行核心处理逻辑,返回结构化结果和执行状态。### 外呼前侦察
- 调用查找工具预填商家电话、地址、营业时间等公开信息
- 预判身份核验、OTP、付款、费用、审批等关键节点
- 评估通话风险等级:信息收集型、边界承诺型、实时转接型
- 适度探询:只询问防止无效或风险通话的必要信息
输入: 用户提供外呼前侦察所需的指令和必要参数. 输出: 返回外呼前侦察的处理结果,包含执行状态码、结果数据和执行日志.
适用场景
场景一:多商家信息比价
用户希望对比4家餐厅的价格与可用时段。专业版并行拨打4通外呼,每通通话指令明确"仅收集信息不承诺预订"。4通通话结束后汇总对比,用户选择最优方案后再发起确认预订的通话.
场景二:敏感通话实时转接
用户需要与银行协商账户问题,涉及身份验证与敏感决策。代理先拨打银行,处理电话菜单与等待,到达人工客服后触发转接,将用户桥接到通话中。用户直接与客服对话,代理退出.
场景三:呼入应答自动化
用户拥有一个预留号码,希望所有来电由AI代理先接听。代理收集来电者姓名、事由,判断是否需要转接给用户。常规咨询由代理直接应答,紧急事务转接到用户手机.
场景四:通话活动跟进
代理首次拨打商家时对方要求提供订单号,用户当时未提供。代理记录阻断点与缺失信息,用户补充后代理发起跟进通话,通话指令中包含上一次的转写文本,代理自然衔接"上次提到需要提供订单号,现在订单号是...".
场景五:个性化代理配置
用户希望代理以"李总的助理"身份外呼,语气专业但不过于正式,遇到付款请求时必须先询问用户。通过个性化配置定义身份、语气与决策边界,所有外呼自动应用.
使用流程
预计上手时间:约180秒.
优秀步:检查API Key与配置
# 检查已有配置
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" \
-H "X-Api-Key: cb_sk_..." \
-d "{
\"to\": \"$restaurant\",
\"task\": \"你好,我想了解本周六晚上7点两位用餐的可用时段与套餐价格。仅收集信息,不要预订。请询问:1)是否有包间 2)最低消费 3)是否需要预付定金。请报告完整信息。\"
}" &
done
wait
第四步:发起实时转接通话
curl -X POST https://api.call-bridge.dev/call \
-H "Content-Type: application/json" \
-H "X-Api-Key: cb_sk_..." \
-d '{
"to": "+1555bankphone",
"bridge_number": "+1555userphone",
"task": "你好,我需要协助处理账户问题。请帮我转接到人工客服。处理电话菜单时选择'账户问题'。等待时请不要挂断。一旦接通人工客服,请告知对方您正在连接客户,然后将客户桥接到通话中。"
}'
第五步:配置呼入应答(需预留号码)
# 查看当前呼入配置
curl -H "X-Api-Key: cb_sk_..." \
https://api.call-bridge.dev/me/call-preferences
# ...
# 更新呼入配置
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": "您好,请问我能帮您什么?",
"inbound": {
"instructions": "接听来电时,先询问对方姓名与来意。常规咨询直接应答。紧急事务请告知对方将转接,然后桥接到用户号码。",
"greeting": "您好,这里是李总办公室。",
"handoff_number": "+1555userphone"
}
}'
第六步:轮询呼入历史
# 查看最近的呼入通话
curl -H "X-Api-Key: cb_sk_..." \
"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字 |
| 其他异常 | 内部处理异常 | 检查输入后重试 |
依赖说明
运行环境
- Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- 操作系统: Windows / macOS / Linux
- 网络: 需可访问
https://api.call-bridge.dev - 电话号码: 需有效的美国
+1格式电话号码 - 可选: 预留号码(呼入功能需要)、呼入服务套餐
依赖说明(补充)
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| Call Bridge API | API | 必需 | 首次外呼自动获取Key |
| curl/HTTP客户端 | 工具 | 必需 | 操作系统内置 |
| 预留号码 | 通信资源 | 可选 | Call Bridge平台购买 |
| LLM API | API | 必需 | 由Agent内置LLM提供 |
呼入功能需要预留号码与对应服务套餐,外呼功能无需额外资源.
API Key 配置
- Call Bridge API Key: 持久化在
~/.config/call-bridge/key.json - 首次获取: 首次未认证外呼的响应中自动返回Key
- 手动替换: 用户可提供自己的Key替换自动获取的Key
- 账户关联: 使用
https://call-bridge.dev/sign-in?token=<api_key>关联账户 - 禁止: 在代码、日志或版本控制中暴露API Key
- 建议: 配置文件设置
600权限,仅所有者可读写
可用性分类
- 分类: MD+EXEC()
- 说明: 基于Markdown的AI Skill,
案例展示
通话偏好完整配置
| 字段 | 说明 | 适用范围 |
|---|---|---|
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": "等待用户决策"
}
]
}
常见问题
Q1:并行外呼被风控拦截?
并行数量建议不超过4通,且仅用于信息收集。每通通话指令必须明确"不承诺"。若被风控,降低并行数或改为串行.
Q2:实时转接后代理是否继续监听?
不会。转接后代理退出通话,后续对话为用户与对方的私密沟通。转接前的对话记录在转写文本中.
Q3:呼入配置需要什么前提?
需要三项:账户关联的API Key、活跃的预留号码、对应的呼入服务套餐。缺少任一项配置会返回reserved_number_required或inbound_plan_required.
Q4:如何清除呼入配置但保留外呼配置?
先GET /me/call-preferences获取当前外呼配置,然后在PUT请求中保留voice/personality/greeting,将inbound设为null.
Q5:通话活动如何跨会话保持?
将活动状态序列化为JSON存储在本地文件中。每次发起跟进通话时读取状态,将上一次转写文本包含在新的通话指令中.
已知限制
不能是本平台的预留号码,不能是本平台拥有的号码。必须是外部可达的真实号码。已保存的用户电话号码可作为默认handoff_number.
Q7:如何定期轮询呼入历史?
使用GET /me/calls?direction=inbound&since={ISO时间戳}&limit=25。建议每30分钟轮询一次,时间窗口重叠以避免遗漏,按通话id去重。since按通话结束时间过滤.
Q8:试用额度如何计算?
新用户获得10次通话与10分钟通话时长的试用额度,以先到者为准。通话达到5秒talk time才算一次有效试用。试用额度用完后需升级套餐.
Q9:outcome与任务成功的关系?
outcome是电话网络层面的结果(如answered表示接通),不代表任务成功。已接通的通话仍可能未达成用户目标。必须阅读transcript判断.
Q10:如何将代理关联到用户账户?
加载已保存的API Key,生成登录链接:https://call-bridge.dev/sign-in?token=<api_key>。不要为账户关联创建新Key,需先完成至少一次外呼后才有Key可关联.
已知限制(补充)
- 需要LLM支持
具体详情请参考下方内容.
评论
加载中…