在呼叫中心场景中,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.”