在呼叫中心场景中,AI 代理通过 API 主动触发出站电话呼叫,能显著提升自动化水平,避免人工调度延时。Microsoft 的 call-center-ai 项目提供了一个精炼的 REST API 接口,支持 AI 代理在后端逻辑中一键发起 bot 拨打目标号码,实现任务导向的对话收集,如保险理赔信息或 IT 支持咨询。该机制的核心在于将 OpenAI GPT 模型与 Azure Communication Services 深度融合,确保实时流式交互,支持断线重连与数据持久化。
API 触发机制与 Payload 设计
核心入口是一个 POST /call 接口,接收 JSON payload 定义呼叫参数。以 curl 示例发起呼叫:
curl --header 'Content-Type: application/json' --request POST --url https://your-domain/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"}, ...]
}'
- bot_company & bot_name:定义 bot 身份,支持多 bot 场景下隔离提示模板,避免上下文混淆。
- phone_number:目标拨打号码,E.164 格式,确保 Azure Communication Services 兼容。
- task:英文任务描述,长度控制在 200 词内,作为 LLM system prompt 核心,指导 bot 行为如 “收集理赔信息直到完整”。
- agent_phone_number:可选,转接人工座席号码,用于复杂场景 fallback。
- claim:动态 schema 数组,支持 text/datetime/email/phone_number 类型,每项可选 description 传递给 LLM 验证数据格式。
该 payload 设计允许上游 AI 代理(如 Copilot 或自定义 agent)在检测用户需求后动态生成,避免硬编码。证据显示,集成后 bot 能生成结构化 claim、reminders 与 synthesis 总结,并存入 Cosmos DB,支持后续报告查询如 GET /report/{phone_number}。
实时流式对话集成要点
呼叫流程依赖 Azure 服务栈:Communication Services 处理音视频,Cognitive Services 的 STT(Speech-to-Text)与 TTS(Text-to-Speech)实现双向流式。Event Grid 与 Storage Queues 解耦事件流,确保高可用。
关键工程参数(App Configuration feature flags):
- vad_threshold: 0.5(语音活动检测阈值,0.1-1 范围):低于此值视为静默,防噪声误触发。生产中根据环境噪声调至 0.6-0.7。
- vad_silence_timeout_ms: 500:静默超时,触发 bot 提示 “您还在吗?”。
- phone_silence_timeout_sec: 20:整体静默阈值,超时时 bot 发送警告,避免挂断。
- answer_soft_timeout_sec: 4:LLM 响应软超时,期间播放等待音乐。
- answer_hard_timeout_sec: 15:硬超时,abort 并重试,使用 gpt-4o-mini 作为 fast 模型(10-15x 成本优化)。
- recognition_retry_max: 3:STT 重试上限,结合 recognition_stt_complete_timeout_ms: 100ms,提升识别鲁棒性。
这些参数支持实时流式:用户语音经 STT 转文本→Redis 缓存历史→GPT 生成响应(RAG 增强领域知识)→TTS 语音输出,无需完整句子缓冲。断线续传依赖会话 ID 重连,Conversation 历史从 DB 加载。
为优化延迟,推荐 PTU(Provisioned Throughput Units)部署 OpenAI,TTI(Time to First Token)可减半;启用 OpenLLMetry 追踪 LLM token 使用与 latency。
生产部署与落地清单
-
前提资源:
- Azure 资源组(低写如 ccai-prod)。
- Communication Services:启用系统托管身份,购置号码(支持 voice/SMS)。
- OpenAI:gpt-4o-mini(fast)+gpt-4o(insights),ADA 嵌入 RAG。
-
配置与部署(serverless 优先):
- 复制 config-remote-example.yaml → config.yaml,填入 endpoint/key/phone。
make deploy name=your-rg:Bicep IaC 部署 Container App、Cosmos、AI Search 等。- 本地测试:
make deploy-bicep deploy-post,devtunnel 暴露端口。
-
集成上游 AI 代理:
- 在 LangChain/Semantic Kernel 中封装 /call API,task 由上游 LLM 生成。
- 示例 Python:
import requests payload = {"bot_company": "MyCo", "phone_number": "+86...", "task": generated_task} response = requests.post(f"https://{domain}/call", json=payload) call_id = response.json()["call_id"] # 追踪状态
-
监控与回滚:
- Application Insights:追踪 call.answer.latency、aec.dropped(回声抵消失败)。
- 自定义指标:日志采样率 50%,警报 latency>5s 或 RU/s>80%。
- 回滚:feature flags 热更新(TTL 60s),fallback 至人工 transfer。
- 成本控制:1000 呼叫 x10min ≈$720 / 月,优先 serverless vCPU,监控 OpenAI tokens。
-
安全与合规:
- Content Safety 过滤 jailbreak / 有害内容(阈值 0-7 级)。
- RAG 用 AI Search 索引自定义文档,vectors 维度 1536。
- 启用 recording(Storage 容器),但默认 false 防隐私风险。
风险缓解与优化
POC 局限:无完整测试覆盖,建议添加单元测试持久层、多区部署。私有端点升级 vNET 集成增成本但提升安全。细调 LLM 用历史通话数据(脱敏后),A/B 测试 via App Config。
落地后,bot 可处理中低复杂度呼叫(24/7),claim 准确率依 RAG 质量。相比通用 Twilio API,本方案 bot-native,task 驱动更智能。
资料来源: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.”