Hotdry.
ai-systems

使用 Call-Center-AI SDK 一键触发 AI 电话代理:实时对话管理与断线重连工程实践

基于 Microsoft call-center-ai,通过 API 一键发起 AI 电话代理,支持实时流式对话、断线重连、多轮 claim 收集与 Azure 号码直拨部署参数。

在呼叫中心场景中,传统人工代理难以应对高并发和 24/7 需求,而 Microsoft 的 call-center-ai 项目提供了一种高效的 API 驱动电话机器人集成方案。通过单一 POST 请求,即可让 AI 代理主动拨打指定号码,实现实时对话状态管理、断线重连及多轮交互。这种 agent-initiated 的呼叫流(call flow)特别适用于保险理赔、IT 支持等需要结构化数据收集的业务,避免了用户手动拨打的摩擦。

核心观点在于:call-center-ai 的工程设计确保了对话的可靠性和可恢复性。通过 Azure Communication Services 处理音频流,结合 OpenAI GPT-4o-mini 模型驱动对话逻辑,系统支持流式 STT/TTS 处理,延迟控制在秒级。断线重连机制依赖 Cosmos DB 持久化会话状态,用户重拨或 API 续呼时,AI 可无缝恢复上下文,避免重复采集信息。同时,claim schema 支持自定义字段验证(如 datetime、email),确保多轮交互中数据完整性。

从项目 README 可知,发起呼叫的 API 示例为:

curl --header 'Content-Type: application/json' \
  --request POST \
  --url https://xxx/call \
  --data '{
    "bot_company": "Contoso",
    "bot_name": "Amélie",
    "phone_number": "+11234567890",
    "task": "Help the customer with their digital workplace...",
    "agent_phone_number": "+33612345678",
    "claim": [
      {"name": "hardware_info", "type": "text"},
      {"name": "first_seen", "type": "datetime"},
      {"name": "building_location", "type": "text"}
    ]
  }'

此请求触发 Azure Communication Services 拨号,AI 立即接管对话。证据显示,features 包括 “实时流式传输避免延迟”、“断线后恢复对话”、“存储历史供参考”。架构图中,App Container 处理事件网格(Event Grid)通知,Redis 缓存加速 RAG,Cosmos DB 存 messages、claim、reminders 和 synthesis。

实时对话状态管理的可落地参数聚焦于 App Configuration 的 feature flags,这些无需重启即可动态调整:

  • answer_hard_timeout_sec: 15:LLM 响应硬超时,防止无限等待。
  • answer_soft_timeout_sec: 4:软超时发送 “稍等” 提示。
  • phone_silence_timeout_sec: 20:静音超时触发警告,提升交互流畅。
  • vad_silence_timeout_ms: 500vad_threshold: 0.5:语音活动检测(VAD)参数,优化 STT 触发。
  • recognition_retry_max: 3:STT 重试上限,确保鲁棒性。

断线重连实现依赖会话 ID 持久化:断开时,系统保存当前 claim(如 incident_description、policy_number)和 messages 数组,重连通过 phone_number 查询恢复。监控指标如 call.answer.latency(用户语音结束到 bot 响应时间)和 Application Insights 追踪 LLM 延迟。风险控制包括内容过滤(Content Safety)和 jailbreak 检测。

多轮交互的核心是 claim schema 的动态注入,支持类型验证(text、datetime、phone_number、email)。例如,保险场景下:

claim:
  - name: incident_datetime
    type: datetime
    description: "事故发生时间"
  - name: policy_number
    type: text

AI 会引导用户填充,直至完整。合成总结(synthesis)生成 short/long 描述和 satisfaction 评分,自动创建 reminders 如 “Rappeler le client”。

落地部署清单(Azure 远程模式):

  1. 创建资源组(e.g., ccai-demo),Communication Services 资源(同名,启用系统身份)。
  2. 购买电话号码(inbound/outbound + voice/SMS)。
  3. 配置 config-remote.yaml:填入 endpoint、key、connection_string;image_version: "0.1.0"。
  4. az loginmake deploy name=ccai-demo
  5. 日志:make logs name=ccai-demo。 本地模式需 Rust/uv,make installmake deploy-bicepmake tunnel,API 暴露 localhost:8080。

优化建议:使用 PTU(Provisioned Throughput Units)降低 OpenAI 延迟;启用 recording_enabled(需 Storage 容器);RAG 集成 AI Search 增强领域知识。成本估算(1000 通话 / 月,每通 10min):约 $720 USD,主要 Cosmos DB RU/s 和 Speech 服务。

报告页面 /report/+1234567890 显示完整历史,便于人工审核。该方案 POC 级,但通过 IaC、多地域和安全 SKU 可生产化。

资料来源:

(正文字数:1028)

查看归档