1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | twilio-voice-twiml(隶属 Twilio 官方技能合集 twilio/ai) |
| 作者/维护者 | Twilio, Inc.(官方仓库) |
| 来源链接 | https://github.com/twilio/ai/tree/main/skills/twilio/twilio-voice-twiml |
| 许可证 | MIT(数据来自 GitHub API) |
| GitHub Stars | 合集仓库 twilio/ai 整体 28★/Forks 7(数据来自 GitHub API;该数字属整个官方技能合集,不代表本技能个体热度) |
| 最新版本 | 未标注独立版本号,随合集仓库持续滚动更新;该技能路径最近一次实质性提交为 2026-05-06,仓库整体最近一次提交为 2026-07-29 |
| 安装方式 | Claude Code 插件市场一键安装,或手动复制到 skills/ 目录(见第 10 章) |
2. 功能介绍与亮点
这是 Twilio 官方技能合集中专讲 TwiML(Twilio Markup Language,Twilio 在通话过程中执行的 XML 指令集)的技能,核心能力:
- 七个核心动词逐一覆盖:
Say(语音播报)、Gather(收集按键/语音输入)、Play(播放音频)、Dial(转接号码)、Record(留言录音)、Conference(多方会议)、Pay(PCI 合规支付采集),每个动词都配 Python 与 Node.js 双语言代码。 - 完整来电 IVR 示例:从接听、播报欢迎语、收集按键选择到分流转接,给出一份可直接运行的 Flask / Express 服务器代码。
- 语音留言完整链路:
Dial超时未接通后如何自动切到Record留言并转写,含超时时长、转写回调等参数。 - 生产部署要点:Webhook 必须 15 秒内响应、跨请求状态管理(禁止用内存态、建议用 Redis/数据库以
CallSid为键)、Fallback URL 配置、Voice Insights 监控入口。 - 显式 CANNOT 清单:8 条硬性限制,如“PCI Mode 一旦启用不可逆,需用独立子账号”、“
<Say>单次最多 4096 字符”、“<Record>只能录到主叫方声音,双方录音需用 Recordings API”,用于降低 agent 编造不存在能力的概率。 - 承上启下:结尾指向合集内的批量外呼、AI 语音坐席等技能,是语音类功能的入口技能。
3. 适用场景
固定分类:集成与工作流自动化
- 需要为产品搭建来电菜单(IVR)、自动语音应答的开发者;
- 需要实现语音留言、来电转接、多方会议等通话逻辑的团队;
- 需要在通话中采集支付信息、且要求 PCI 合规的场景;
- 已完成 Twilio 账号与凭据配置(可参考同合集的
twilio-account-setup),下一步要落地具体语音通话逻辑的开发者。
4. 跨 Agent 兼容性
- Claude Code:原生支持——官方文档给出
/plugin marketplace add+/plugin install twilio-developer-kit@twilio的会话内安装路径。 - Codex:原生支持——README 明确给出
codex mcp add twilio-docs加配套 MCP、再复制skills/目录到~/.agents/skills/的安装步骤。 - OpenClaw:未验证——官方支持列表点名 Claude Code / Cursor / Codex / GitHub Copilot / Gemini CLI / JetBrains Junie 及“30+ 遵循 Agent Skills 标准的平台”,未点名 OpenClaw;技能本身是标准 SKILL.md 格式,理论上可手动复制安装但缺乏官方验证。
- Hermes Agent:未验证——同上,官方材料未点名提及。
5. 推荐理由
Twilio 官方技能合集里有大量围绕短信、WhatsApp、认证等能力的技能,但语音通话逻辑作为独立主题只有这一份权威参考。它把 TwiML 这门“通话时执行的标记语言”从七个核心动词到完整 IVR 落地示例、再到生产环境的状态管理与监控要点,一次性讲清楚,并显式标注了 PCI Mode 不可逆、<Record> 只录单方声音这类容易踩的坑。对于用 Claude Code / Codex 等 agent 搭建电话客服、来电菜单或语音留言功能的初中级开发者,这是比逐页翻 Twilio 官网文档更省时的结构化起点。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | Twilio 为通信云领域一线上市公司官方出品;未见针对本技能的独立第三方报道或量化采用数据,所属技能合集仓库整体 28★/Forks 7 由 55 个子技能共享,不代表本技能个体热度 |
| 可用性 | 8 | 单文件 SKILL.md 即完整可用,双语言代码示例齐全,含完整可运行的 IVR 服务器示例;技能所在路径最近一次实质性提交为 2026-05-06,仓库整体仍在持续更新(最近一次提交 2026-07-29) |
| 安全性 | 9 | 见下方检查清单 |
安全检查清单:
① Shell 命令执行——SKILL.md 全文为 TwiML 语法说明与 Python/Node.js 代码示例,不含需要执行的脚本,示例代码运行在开发者自己的服务器上;
② 联网外发——技能本身不联网,示例代码调用的是开发者自己环境里的 Twilio SDK,行为透明;<Play> 提到的音频 URL 需开发者自行提供且公开可访问;
③ API Key/凭据处理——未直接涉及凭据存取,前置步骤指向 twilio-account-setup/twilio-iam-auth-setup 处理;
④ 可疑指令——通读全文未见提示词注入、混淆代码或隐蔽外发迹象;
⑤ 作者信誉——Twilio 官方仓库,通信云领域上市公司;
⑥ License——MIT,数据来自 GitHub API;
⑦ 维护时间——仓库整体最近一次提交为 2026-07-29,本技能所在路径最近一次实质性提交为 2026-05-06。
综合评分(三项均值):8.0
7. 跟同类 Skills 相比的优势
| 同类方案 | 定位 | 与本 skill 的差异 |
|---|---|---|
同合集内 twilio-voice-outbound-calls |
讲外呼场景(批量外呼、AMD 应答机检测、会议接入外呼号)的技能 | 定位互补:本技能负责入站/通用通话逻辑的 TwiML 语法本身,前者专注外呼场景的额外参数与检测逻辑 |
同合集内 twilio-voice-conversation-relay |
AI 语音坐席技能,讲实时语音流接入大模型对话 | 前者是“给 AI 装上电话”的高层架构技能,本技能是它的语法基础层——两者常配合使用而非互相替代 |
| Twilio 官网 TwiML Voice 参考文档 | 面向人类读者的传统 API 文档,按动词分散在多个页面 | 不是可被 agent 直接安装调用的 SKILL.md,需要人工逐页阅读跳转;本技能把同样信息压缩进单一结构化文件并配好双语言代码,可被 agent 在对话中直接检索引用 |
8. 用户评价
该技能目前在第三方平台尚无具名用户评价。
9. 其他补充
该技能属于 Twilio 官方文档中的 “Product” 类目(讲清单个 Twilio 产品该怎么正确使用),与配套的 Twilio MCP 服务器(https://mcp.twilio.com/docs,提供 Twilio 文档检索)同属一套官方发布,可搭配使用。
10. 安装使用方式
Claude Code:
/plugin marketplace add https://github.com/twilio/ai
/plugin install twilio-developer-kit@twilio
Codex:
codex mcp add twilio-docs --url https://mcp.twilio.com/docs
git clone https://github.com/twilio/ai.git
cp -r ai/skills/ ~/.agents/skills/
Cursor / 其他遵循 Agent Skills 标准的工具(手动安装):
git clone https://github.com/twilio/ai.git
cp -r ai/skills/twilio/twilio-voice-twiml .agents/skills/
安装后无需重启会话;技能在检测到“来电菜单/语音留言/会议通话/通话中收款”等相关需求时被动激活。上述插件市场命令会安装整个 twilio-developer-kit(含全部 55 个子技能),如只需本技能,可只复制其对应子目录。
11. 注意事项
- 技能所属的 Twilio Skills 均为 Public Beta,官方声明部分功能尚未完全实现、后续可能变更,且不受 Twilio Support Terms 或 SLA 保障;
- Pay Connector(通话中收款)只能在 Console 界面创建,无 REST API;且账号一旦启用 PCI Mode 不可逆,官方建议使用独立子账号处理支付通话;
- 跨请求状态维护需自行用 Redis 或数据库以
CallSid为键,不能依赖服务器内存,否则多实例部署时会话状态会丢失; <Record>默认只录制主叫方声音(语音留言场景),如需双方通话录音需改用calls.create()的record=True参数或 Recordings API。