---
slug: "call-bridge"
name: "call-bridge"
version: 1.0.1
displayName: "通话桥接专业版"
summary: "企业级AI电话代理平台，支持并行外呼、实时转接、呼入号码、通话活动管理与个性化语音配置。通话桥接专业版是一款面向团队与企业的AI电话代理平台，在免费版单次外呼基础上，新增并行外呼、实时转接、"
summary_zh: "企业级AI电话代理平台，支持并行外呼、实时转接、呼入号码、通话活动管理与个性化语音配置。通话桥接专业版是一款面向团队与企业的AI电话代理平台，在免费版单次外呼基础上，新增并行外呼、实时转接、"
license: "MIT"
edition: "pro"
description: |-
  通话桥接专业版是一款面向团队与企业的AI电话代理平台，在免费版单次外呼基础上，新增并行外呼、实时转接、呼入号码配置、通话活动管理、个性化语音配置与完整错误处理等高级能力。核心能力：
  - 并行外呼：同时拨打3-4通电话进行信息比价与选项探索
  - 实时转接（live handoff）：将用户桥接到正在进行的通话中
  - 呼入号码配置：设置来电应答规则与转接策略
  - 通话活动管理：跨通话保持状态...
tags:
  - 集成工具
  - 语音通信
  - 企业通信
  - 工具
  - 效率
  - 集成
  - integration
  - call-bridge
  - api
  - bash
  - json
  - curl
tools:
  - read
  - exec
  - write
homepage: ""
category: "Automation"
---
# 通话桥接专业版

## 付费版专享能力

| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 通话桥接专业版通话活动管理 | 不支持 | 支持 |
| 通话桥接专业版与个性化语音配置 | 不支持 | 支持 |
| 复杂工作流可视化编排 | 不支持 | 支持 |
| 条件分支与异常重试 | 不支持 | 支持 |
| 定时触发与事件驱动 | 不支持 | 支持 |

## 核心能力

### 并行外呼与通话活动
- 同时发起3-4通外呼，适合信息比价与选项探索
- 通话活动状态管理：跨通话保持目标、目的、已知事实、结果与下一步行动
- 跟进通话复用上一次通话的转写文本，代理可自然衔接
- 通话结果汇总与对比报表

**输入**: 用户提供并行外呼与通话活动所需的指令和必要参数.
**处理**: 解析并行外呼与通话活动的输入参数,执行核心处理逻辑,返回结构化结果和执行状态。### 实时转接（live handoff）
- 将用户桥接到正在进行的通话中，跳过等待时间
- 用户通过`bridge_number`加入通话，代理负责引导转接
- 转接前的对话记录在转写文本中，转接后的对话为私密
- 适合身份验证、敏感谈判、实时决策等场景

**处理**: 解析实时转接（live handoff）的输入参数,执行核心处理逻辑,返回结构化结果和执行状态.
**输出**: 返回实时转接（live handoff）的处理结果,包含执行状态码、结果数据和执行日志。### 呼入号码配置
- 配置来电应答规则：代理如何接听、收集什么信息、何时转接
- 站立式简报：为未来未知来电者预设应答指令
- 转接号码配置：将来电转接到用户的外部号码
- 需要预留号码与对应服务套餐

**处理**: 解析呼入号码配置的输入参数,执行核心处理逻辑,返回结构化结果和执行状态.
**输出**: 返回呼入号码配置的处理结果,包含执行状态码、结果数据和执行日志。### 个性化语音配置
- 语音音色：jessica(默认,女)、sarah(女)、chris(男)、eric(男)
- 个性化风格：定义代理的身份、语气、持久度、谨慎度与决策边界
- 开场白：配置外呼时的标准开场语
- 呼入问候语：为来电者定制应答问候

**输入**: 用户提供个性化语音配置所需的指令和必要参数.
**处理**: 解析个性化语音配置的输入参数,执行核心处理逻辑,返回结构化结果和执行状态.
**输出**: 返回个性化语音配置的处理结果,包含执行状态码、结果数据和执行日志。### 错误处理

- 认证错误：Key无效或缺失时的恢复策略
- 配额错误：试用耗尽、套餐不足、余额不足时的引导
- 网络错误：拨号失败、号码池耗尽时的策略
- 配置错误：语音选项无效、呼入配置缺失时的修复指引
- 保留所有返回的`action.url`与`action.sign_in_url`

**输入**: 用户提供错误处理所需的指令和必要参数.
**处理**: 解析错误处理的输入参数,执行核心处理逻辑,返回结构化结果和执行状态。### 外呼前侦察
- 调用查找工具预填商家电话、地址、营业时间等公开信息
- 预判身份核验、OTP、付款、费用、审批等关键节点
- 评估通话风险等级：信息收集型、边界承诺型、实时转接型
- 适度探询：只询问防止无效或风险通话的必要信息

**输入**: 用户提供外呼前侦察所需的指令和必要参数.
**输出**: 返回外呼前侦察的处理结果,包含执行状态码、结果数据和执行日志.
#
## 快速开始

1. 确认运行环境满足依赖说明中的要求
2. 在AI Agent对话中调用本技能,提供必要的输入参数
3. 检查输出结果,根据需要进行后续处理

> 详细的输入输出格式请参考下方章节说明。

## 适用场景

### 场景一：多商家信息比价
用户希望对比4家餐厅的价格与可用时段。专业版并行拨打4通外呼，每通通话指令明确"仅收集信息不承诺预订"。4通通话结束后汇总对比，用户选择最优方案后再发起确认预订的通话.
### 场景二：敏感通话实时转接
用户需要与银行协商账户问题，涉及身份验证与敏感决策。代理先拨打银行，处理电话菜单与等待，到达人工客服后触发转接，将用户桥接到通话中。用户直接与客服对话，代理退出.
### 场景三：呼入应答自动化
用户拥有一个预留号码，希望所有来电由AI代理先接听。代理收集来电者姓名、事由，判断是否需要转接给用户。常规咨询由代理直接应答，紧急事务转接到用户手机.
### 场景四：通话活动跟进
代理首次拨打商家时对方要求提供订单号，用户当时未提供。代理记录阻断点与缺失信息，用户补充后代理发起跟进通话，通话指令中包含上一次的转写文本，代理自然衔接"上次提到需要提供订单号，现在订单号是...".
### 场景五：个性化代理配置
用户希望代理以"李总的助理"身份外呼，语气专业但不过于正式，遇到付款请求时必须先询问用户。通过个性化配置定义身份、语气与决策边界，所有外呼自动应用.
## 使用流程

预计上手时间：约180秒.
### 优秀步：检查API Key与配置

```bash
# 检查已有配置
cat ~/.config/call-bridge/key.json
```

### 第二步：配置个性化语音

```bash
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": "您好，我是李总的助理。"
  }'
```

### 第三步：发起并行外呼

```bash
# 同时拨打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
```

### 第四步：发起实时转接通话

```bash
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": "你好，我需要协助处理账户问题。请帮我转接到人工客服。处理电话菜单时选择'账户问题'。等待时请不要挂断。一旦接通人工客服，请告知对方您正在连接客户，然后将客户桥接到通话中。"
  }'
```

### 第五步：配置呼入应答（需预留号码）

```bash
# 查看当前呼入配置
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"
    }
  }'
```

### 第六步：轮询呼入历史

```bash
# 查看最近的呼入通话
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 |

## 输出格式

```json
{
  "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` | 转接号码无效 | 提供非本平台的外部可达号码 |

### 通话活动状态结构

```json
{
  "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支持

具体详情请参考下方内容.