dify可通过集成twilio api实现语音告警外呼:需在twilio获取account sid与auth token、购买支持语音的号码,再在dify创建http工具twilio_call_alert,配置basic auth、参数及twiml bin动态语音响应,最后在prompt中调用工具触发电话播报。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当服务器异常、订单超时或安全事件发生时,需要立即通过语音电话向责任人播报警报内容,Dify本身不支持原生语音外呼,但可通过自定义工具调用Twilio API 实现自动拨号与语音播报。
在Twilio控制台开通并获取API凭证
登录 Twilio 控制台 → 进入“Project Settings” → 复制 Account SID 和 Auth Token,这两项将用于后续HTTP请求签名。【Auth Token仅首次可见,关闭页面后无法再次查看,务必立即保存】
点击左侧菜单“Phone Numbers” → “Buy a Number” → 选择支持语音呼叫的号码(注意查看“Voice”图标为绿色),完成购买。该号码将作为外呼主叫号码使用。
在Dify中创建自定义工具:twilio_call_alert
进入Dify工作区 → 点击左侧“Tools” → “+ Create tool” → 选择“HTTP API”类型。
填写基础信息:Tool name 填写 twilio_call_alert,Description 写“拨打指定手机号并播放预警语音”,API URL 填写 https://api.twilio.com/2010-04-01/Accounts/{account_sid}/Calls.json,其中 {account_sid} 后续将被变量替换。
设置请求方法为 POST,Authentication 选 “Basic Auth”,Username 填入你复制的 Account SID,Password 填入 Auth Token。Headers 中添加 Content-Type: application/x-www-form-urlencoded。
配置工具参数与请求体
在“Parameters”区域点击“+ Add parameter”,依次添加以下三个必填参数:
参数名 to_phone,类型 string,Required 打钩,Description 写“接收警报的手机号(E.164格式,如+8613800138000)”;
参数名 message,类型 string,Required 打钩,Description 写“要语音播报的告警内容,长度建议≤150字符,避免TTS截断”;
参数名 from_phone,类型 string,Required 打钩,Description 写“Twilio购买的外呼号码(E.164格式)”。【from_phone必须与Twilio购买号码完全一致,否则请求被拒绝】
在“Request Body”区域选择 “x-www-form-urlencoded”,点击“+ Add field”,Key 填 Url,Value 填:https://handler.twilio.com/twiml/EHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX?Message=${message}(实际使用时需替换 EH 开头的 TwiML Bin SID);再点“+ Add field”,Key 填 To,Value 填 ${to_phone};再加一项,Key 填 From,Value 填 ${from_phone}。
创建TwiML Bin生成动态语音响应
回到 Twilio 控制台 → 左侧菜单“Runtime” → “TwiML Bins” → “Create new TwiML Bin”。
Bin Name 填 alert_speech,在编辑框中粘贴以下内容:
<response><say voice="Polly.Amy" language="en-GB">${Message}</say></response>
点击“Save”,页面顶部会显示一个 EH 开头的唯一 SID,复制它,替换上一步中 Request Body 的 Url 字段里的占位 SID。
⚠️ 注意:Twilio 默认英文语音,若需中文播报,需改用 voice="Polly.Zhiyu" 并确保 language="zh-CN",且 message 内容为纯中文——混输中英文可能导致语音中断。
在Dify应用中调用该工具触发电话告警
进入 Dify 应用编辑页 → 在 Prompt 编辑区合适位置插入工具调用指令,例如:
{{twilio_call_alert(to_phone="+8613912345678", message="检测到数据库连接失败,请立即检查主从同步状态", from_phone="+12345678901")}}
保存并发布应用。当用户输入触发该工具调用的条件(如发送“紧急告警”),Dify 将自动发起 Twilio 外呼请求,目标手机将在 3 秒内振铃,接通后播放合成语音。










