在呼叫中心场景中,AI 代理通过 API 驱动的外呼电话已成为高效自动化客服的关键技术路径。这种方法允许开发者以单一 HTTP POST 请求发起完整对话流程,避免传统 IVR 的刚性菜单,转而实现自然语言交互。核心在于将电话后端(如 Azure Communication Services)与 STT(语音转文本)、LLM(大语言模型)和 TTS(文本转语音)无缝集成,形成闭环实时对话系统。该方案特别适用于保险理赔、IT 支持等中等复杂度任务,能在几小时内定制上线。
核心架构与集成流程
架构以容器化应用为中心,部署于 Azure Container Apps 的 serverless 模式,确保弹性扩展。电话网关(ACS)负责 inbound/outbound 呼叫管理,应用层处理流式音频管道:
-
API 触发外呼:使用 curl 或 SDK 发送 POST /call 请求,携带 JSON payload,包括 bot_company、bot_name、phone_number(目标号码)、task(对话目标,如 “帮助客户填写 IT 支持工单”)、agent_phone_number(代理号码)和 claim(数据 schema,如 [{"name": "hardware_info", "type": "text"}])。系统自动拨打目标号码,建立 WebRTC 连接。
-
实时音频流处理:
- STT 阶段:用户语音通过 ACS 流入应用,Azure Cognitive Services Speech 实时转录。关键参数包括 recognition_retry_max=3(重试上限,避免转录失败)、recognition_stt_complete_timeout_ms=100(完成超时,单位 ms)。
- LLM 推理:转录文本注入 LLM(如 gpt-4o-mini 快模型或 gpt-4o 洞察模型),结合 RAG(AI Search 检索内部文档)、历史对话(Cosmos DB)和自定义提示生成流式响应。LLM 支持工具调用更新 claim、生成提醒列表,并检测 jailbreak。
- TTS 合成:LLM 输出转为 Azure Speech TTS 语音,支持多语言(如 fr-FR-DeniseNeural)和自定义神经语音。音频流回传 ACS,实现低延迟播放。
-
呼叫控制与容错:支持人类代理转接、断线续传(Redis 缓存状态)、通话录音(feature flag: recording_enabled=true)。VAD(语音活动检测)参数优化交互:vad_threshold=0.5(灵敏度 0.1-1)、vad_silence_timeout_ms=500(静音阈值)、vad_cutoff_timeout_ms=250(截止超时),防止误触发。
例如,repo 中演示的 curl 调用只需一行,即可启动 IT 支持外呼:“task”: “Help the customer with their digital workplace...”,系统据此填充 claim 并生成 to-do 列表。
可落地工程参数与清单
为确保生产级稳定性,以下是关键配置清单(基于 config.yaml 和 App Configuration feature flags):
超时与延迟控制
- LLM 响应:answer_soft_timeout_sec=4(软超时,发送等待提示);answer_hard_timeout_sec=15(硬超时,报错中断)。
- 用户静音:phone_silence_timeout_sec=20(超过发出警告,避免挂断)。
- 回调超时:callback_timeout_hour=3(自动回呼,设 0 禁用)。
模型与成本优化
- 快模型:gpt-4o-mini(输入 $0.15/1M tokens,输出 $0.60/1M),适合实时聊天;切换 slow_llm_for_chat=true 使用 gpt-4o 提升准确性。
- 嵌入:text-embedding-3-large 用于 RAG,1536 维向量搜索内部知识库。
- 成本估算(1000 通话 ×10min / 月):ACS $40、Speech $152、OpenAI $59、总~$720,建议 PTU(Provisioned Throughput Units)减半 LLM 延迟。
部署清单(Azure 优先)
- 创建资源组、ACS 资源、购买号码(支持 voice/SMS)。
- 配置 config.yaml:指定 endpoints、API keys、语言(default_short_code: fr-FR)。
- make deploy name=my-rg(Bicep IaC 部署)。
- 本地开发:make tunnel + uvicorn app:api_app,访问 localhost:8080。
- 监控:集成 Application Insights,追踪 call.answer.latency、aec.dropped(回声消除失败)。
安全与合规
- 内容过滤:OpenAI Content Safety,moderation levels 0-7。
- 数据:PII 匿名化,claim 验证(email/phone/datetime/text)。
- 回滚:feature flags 热更新,60s 生效。
监控与优化要点
部署后,通过 App Insights 仪表盘监控:
- 自定义指标:call.answer.latency(用户结束语至 bot 响应时延,目标 <2s);aec.missed(回声残留)。
- LLM 遥测:OpenLLMetry 记录提示 / 响应 /token 用量,采样日志减成本。
- 优化策略:
- 延迟瓶颈:优先 PTU 或 nano 模型;STT/TTS 流式已优化。
- 质量提升:fine-tune LLM 于历史通话数据(脱敏后),A/B 测试 prompts。
- 规模:多区域 Cosmos DB,vNET 私有端点。
风险包括 LLM 幻觉(用 RAG/insights 缓解)和峰值成本(弹性缩放)。实际 demo 显示,代理能处理犹豫语音、提取事故细节,并设置跟进提醒,satisfaction 高。
此方案虽为 POC,但提供完整蓝图,可快速扩展为生产系统。通过精确参数调优,实现 <1s 端到端延迟,自然对话体验。
资料来源:Microsoft call-center-ai GitHub 仓库(https://github.com/microsoft/call-center-ai),包含架构图、demo 视频与 config 示例。“Send a phone call from AI agent, in an API call.”