Retell AI 是一个专注构建拟人化实时语音代理(Voice Agent)的开发者平台,核心能力是让开发者用少量代码将 LLM 变成能听、能说、能实时交互的电话级语音助手。它解决了传统 IVR(交互式语音应答)菜单僵硬、TTS(文本转语音)机器感重、以及自建语音管道需要串联 ASR(自动语音识别)、LLM、TTS 三套系统且难以处理打断与延迟的痛点。Retell AI 在底层完成了语音活动检测(VAD)、打断处理、低延迟流式传输等复杂工程,向开发者暴露一个统一的 WebSocket 接口,只需维护一段交互逻辑(LLM),即可获得“人类级”的通话体验。 本篇攻略按“速览 → 安装 → 上手 → 核心能力 → 生产部署 → 选型对比 → 场景 → 误区 → 面试题 → 资源”的顺序组织:先给出工具速览卡了解全貌,再通过 Node.js/Python 两个 SDK 的最小示例跑通第一通电话,随后深入讲解其动态端点、语音配置、工具调用等核心能力,最后覆盖生产环境需要关注的延迟、并发、成本与可观测性问题。
掌握 Retell AI 意味着你可以在数小时内交付一个可商用的电话语音助手原型,而不是花数周自建语音管道——这是 AI 语音应用从“Demo”走向“产品”的关键技能。
目录
速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。
为什么需要 Retell AI:语音管道工程复杂 → 一行代码接入
传统方式构建语音 Agent 需要自行串联 ASR、LLM、TTS 三个环节,并额外处理看似简单实则困难的问题:用户说话中途打断时如何让 TTS 立刻停止?如何判断“用户停顿时长超过 800ms 就该让 Agent 回应”?如何把三方组件的流式音频在毫秒级对齐?这些工作涉及 WebRTC 音频传输、静音检测、缓存策略与网络抖动缓冲,自研通常需要数周时间。更关键的是,传统 IVR 的按键导航体验与今日用户对“自然对话”的预期严重脱节。
Retell AI 将上述管道封装为托管服务,提供两个核心服务:一是 Web 控制台,可以在不写代码的情况下配置 Agent 的提示词、语音音色、大模型参数并直接拨号测试;二是 WebSocket API,允许开发者用自定义代码接管对话逻辑——收到用户语音转写文本、调用 LLM 生成回复、推回 TTS 音频。一套管道内部完成 VAD、打断、缓冲与对齐,开发者唯一需要关注的是业务逻辑。
与 Vapi、Bland.ai 等同类工具相比,Retell AI 的核心差异在于动态端点(Dynamic Endpoint)架构:Agent 的交互逻辑可以指向开发者自己托管的任意 WebSocket 服务,这意味着业务逻辑不锁定在平台内,模型选择、RAG 检索、数据库查询都在你自己的服务器上执行,平台只做音频转换与传输。
安装与环境配置:3 步就绪
步骤一·安装 SDK。 Retell AI 提供 Python(retell)与 Node.js(retell-sdk)两个官方 SDK,按项目语言二选一安装即可。SDK 是 REST API 的封装,用于管理 Agent、创建 Phone Number、发起通话;通话中的实时音频流走 WebSocket,不需要额外安装依赖。
步骤二·获取 API Key 并配置环境变量。 登录 Retell Console(platform.retellai.com),在“设置 → API Key”页面创建密钥。免费额度下创建 Agent 不扣费,只有实际通话分钟数计费。将 Key 写入环境变量 RETELL_API_KEY,避免硬编码在代码中。
步骤三·验证连通性。 用 SDK 调用 agent.list() 或 agent.create() 接口,返回 200 且能列出已有 Agent 即表示配置成功。首次创建 Agent 需要一个 llm_websocket_url 或配置托管 LLM(如 gpt-4o-mini),最简单的验证是只传 llm_id。
# 安装 Python SDKpip install retell # 安装 Node.js SDKnpm install retell-sdk # 配置环境变量(写入 ~/.zshrc 或 .env)export RETELL_API_KEY="your_api_key_here"
快速上手:15 分钟跑通第一通电话
最小可用流程的思路:创建 Agent → 绑定/注册电话号码 → 拨号验证。如果只想验证语音链路而不注册真实号码,可以直接在 Retell Console 的“Playground”页面选择已创建的 Agent 并点击对话按钮,页面会打开麦克风权限,实时演示“用户说话 → Agent 回复”的完整链路。Playground 是零代码验证的最佳入口,适合先确认提示词与音色效果,再进入代码集成阶段。
对于需要代码集成或测试电话呼入的场景,按以下步骤操作:
1. 在 Retell Console 创建 Agent:进入“Agents”页面,点击“Create Agent”,选择“LLM Provider”为 Retell 托管的 gpt-4o-mini,在“General Prompt”中填写系统提示词(例如:“你是前台接待员,负责记录访客的姓名与来访事由”),选择音色后保存,记录生成的 Agent ID。
2. 注册电话号码:进入“Phone Numbers”页面,点击“Buy Number”购买一个美国或加拿大号码(按需,也可先跳过此步用 Playground 测试)。
3. 用 SDK 发起测试:调用 client.call.create() 并传入 to_number 与 from_number,Retell AI 会拨通目标电话;若使用 Playground,则无需此步。
完成以上步骤后,你会接到一通真实电话,电话那头是 Retell AI 合成的语音 Agent。进阶技巧:在 Console 的“Agent → General Prompt”中修改提示词后保存,再次拨号即可验证新对话行为,无需重新部署任何代码。
from retell import Retell client = Retell(api_key="your_api_key_here") # 列出已有 Agent,验证连通性agents = client.agent.list()print(agents) # 发起一通电话(需已购买号码)response = client.call.create( to_number="+14155551234", from_number="+14155559876", agent_id="your_agent_id")print(response.call_id)
核心能力详解:4 大支柱
支柱一·动态端点(Dynamic Endpoint)WebSocket 协议。 这是 Retell AI 与多数竞品最大的差异。开发者自行托管一个 WebSocket 服务,接收平台推送的 transcript 事件(含用户语音转写结果与时间戳),在服务端调用任意 LLM(OpenAI、Anthropic、本地模型均可)生成回复,再以 response 事件传回文本。协议定义了 transcript、response、agent_start_talking、agent_stop_talking、realtime_input 等事件类型,其中 realtime_input 用于传递中间转写结果与音频流,实现端到端延迟控制。动态端点意味着业务逻辑完全掌控在开发者手中,不依赖平台的模型托管能力。
支柱二·托管 LLM 与语音配置。 平台原生托管 gpt-4o、gpt-4o-mini、claude-3.5-sonnet 等模型,开发者可指定 llm_id 将 Agent 的对话大脑直接托管在平台侧,省去自建 WebSocket 服务。语音配置包括音色选择(供应商 ElevenLabs、OpenAI TTS、Azure TTS 等)、语速、音量、停顿敏感度(end_call_after_silence_ms)、最大响应时长等参数。托管模式下,提示词(General Prompt)直接在 Console 配置,适合业务逻辑简单的场景;动态端点则适合需要检索增强、数据库查询、权限控制等复杂场景。
支柱三·工具调用与函数执行。 在动态端点模式下,开发者可以在 WebSocket 服务中定义函数(如查询订单状态、创建工单),LLM 输出结构化函数调用参数,服务端执行后把结果追加到上下文再让 LLM 生成最终回复。这使语音 Agent 从“问答机器人”升级为“能办事的数字员工”。函数执行天然支持异步任务,例如通话中触发 CRM 写入,不阻塞对话流。
支柱四·低延迟实时传输与打断处理。 Retell AI 的通话延迟(用户说完到 Agent 开始回复)平均在 500-800ms 区间,由平台侧完成 VAD 与端到端流式处理。打断处理是语音体验的核心:用户说话时 Agent 的 TTS 必须能被立即截断,平台通过连续监听半双工/全双工音频流并在检测到人声时立即发送 interruption 信号来实现。这一层工程复杂度完全被平台吸收,开发者无需关心 WebRTC 与音频缓冲细节。
生产部署与监控:从上线到运维
部署方式一·动态端点服务。 生产环境应将 WebSocket 服务部署在延迟离 Retell 数据中心较近的云区域,官方建议美东或美西,并启用自动扩缩容。由于动态端点本质是普通 WebSocket 服务,可直接部署在 Railway、Render、Fly.io 等 PaaS 平台,或容器化后部署到 ECS/GKE。需要关注连接数上限,单个实例建议不超过 500 并发连接(视语言运行时与 LLM 调用耗时而定),超限时通过水平扩容解决。
部署方式二·电话线路接入。 Retell AI 提供两种电话接入方式:购买平台号码(Console 一键购买,支持美国和加拿大)或携带自有 SIP 中继。企业已有 400 号码或 SIP 线路时,可通过 SIP 对接把现有号码转入 Retell AI 处理。号码侧需要配置应用路由(Routing),把来电分发到指定 Agent。电信合规方面,美国市场需注意 TCPA(电话消费者保护法)对自动外呼的同意要求,平台提供 DNC(拒接电话登记)支持但合规责任在业务方。
可观测性。 平台提供三大类监控数据:通话明细(每个 call 的转写全文、事件时间戳、延迟分段)、费用明细(按分钟计费的按 Agent 聚合报表)、质量评分(基于延迟与中断率的健康分)。生产环境建议将 call.metadata 中写入业务侧 ID(如订单号、用户 ID),便于在 Console 按 metadata 过滤检索通话记录。平台也支持 Webhook 推送通话结束事件,可用于对接工单系统或质检流程。
<p class="para-label">避坑清单:</p>
<ul class="dash-list"><li>忽略 VAD 参数导致响应迟钝:默认停顿敏感度偏保守,通话场景建议将 end_call_after_silence_ms 调至 600-1000ms 并测试不同音色的实际停顿节奏,否则用户会觉得 Agent “反应慢半拍”。</li><li>动态端点未做重连与超时处理:平台 WebSocket 会因网络抖动断开连接,必须在服务端实现心跳重连与 30 秒无响应自动关闭通话,否则通话会“死寂”到超时才挂断。</li><li>把动态端点写到 Console 而不用代码管理:生产环境应通过 API/SDK 创建 Agent(将 llm_websocket_url 指向你的服务),Console 手改提示词会导致配置漂移,上线后无法追溯变更。</li><li>TTS 厂商配额未评估:音色供应商另有独立配额,高并发时段可能触发限流使 Agent 静默,需为音色供应商单独配置告警。</li><li>未设置通话超时上限导致费用失控:意外场景(用户不挂断且 Agent 持续说)会产生长通话,应在 Agent 配置中设置 max_call_duration_ms。</li></ul>
| 维度 | Retell AI | Vapi | Bland.ai | LiveKit Agents |
|---|---|---|---|---|
| 定位 | 语音 Agent 开发平台 | 语音 Agent 开发平台 | 企业级语音自动化平台 | 开源实时音视频基础设施 |
| 编排范式 | 动态端点 WebSocket 自定义逻辑 | 托管 LLM + 内置工具链 | 对话工作流 + 人机协作 | 自托管 Python 框架 |
| 类型约束 | WebSocket 协议事件驱动 | REST + 内置函数调用 | 可视化工作流配置 | 完全自定义代码 |
| 学习曲线 | ★★★☆☆ | ★★★☆☆ | ★★☆☆☆ | ★★★★☆ |
| 生态集成 | 自定义 WebSocket 任意接入 | 内置 30+ 工具集成 | 原生 CRM/工单集成 | 与 LiveKit 音视频生态深度绑定 |
| 生产部署 | 托管 + 动态端点混合 | 全托管 | 全托管 | 自托管全部基础设施 |
| License | 闭源 SaaS | 闭源 SaaS | 闭源 SaaS | Apache 2.0 |
| 适合谁 | 需深度定制对话逻辑的团队 | 快速原型与轻定制 | 呼叫中心业务人员 | 有音视频底层能力的开发者 |
选型建议:需要把对话逻辑、RAG、数据库查询完全掌控在自己服务端时,优先选 Retell AI 的动态端点;业务逻辑简单、需要 30 分钟上线 Demo,Vapi 的内置工具更省事;非技术人员配置呼叫中心流程,选 Bland.ai 的可视化工作流;已深度使用 LiveKit 做音视频传输且有运维能力,LiveKit Agents 提供了更大的自由度。
版本迭代
Retell AI 自 2023 年推出后经历了从 v1 到 v2 的协议升级,核心方向是“从平台托管逻辑走向开发者自定义逻辑”。v1 以托管 LLM 为主,v2 引入动态端点,将对话控制权全面移交开发者;此后迭代集中在延迟优化与工具调用增强。(截至训练数据,可能已有更新版本)
| 版本 | 时间 | 变化 | 提升 |
|---|---|---|---|
| v1.0 | 2023-06 | 托管 LLM 语音 Agent | 支持创建 Agent、购买号码、发起通话 |
| v1.5 | 2023-11 | 自定义声音与企业级功能 | 引入 300+ 音色选择,新增 SIP 中继接入 |
| v2.0 | 2024-01 | 动态端点架构 | 开放 WebSocket 协议,支持开发者自托管对话逻辑 |
| v2.1 | 2024-05 | 延迟优化 | 引入流式传输优化,平均响应延迟降至 500-800ms |
| v2.2 | 2024-09 | 工具调用增强 | 支持结构化函数调用与异步任务执行 |
| 基准 | v1.5 | v2.0 | v2.2 | |
|---|---|---|---|---|
| 平均响应延迟 | 900-1200ms | 600-900ms | 500-800ms | 官方公布的自测数据,随版本优化持续降低 |
| 打断响应时间 | 未公开 | ~300ms | ~200ms | 官方博客披露的打断检测耗时 |
Retell AI 的版本演进主线是从“平台给你一个 Agent”到“平台给你一套语音通道引擎”。v2.0 的动态端点是分水岭,它让语音 Agent 从“配置工具”变成“开发框架”;后续迭代重点解决的是语音实时性这一核心体验指标。选型时建议直接以 v2.x 为基础,v1 托管模式仅适合超轻量场景。
AI 应用场景
电话客服与呼叫中心自动化
阶段:语音 Agent 编排
解决的问题:传统 IVR 按键导航让用户迷失在菜单中,人工坐席成本高昂且排班难。Retell AI 用自然语言对话替代按键菜单,处理常见咨询(账单查询、预约改期、地址变更),并在对话中通过工具调用直接操作后台系统,复杂问题无缝转接人工。
具体案例:某美国牙科诊所接入 Retell AI 处理预约电话,Agent 通过查询诊所日历系统确认空闲时段并完成预约登记,将漏接电话率从 30% 降至 5% 以下,前台人员从接电话中释放出来处理现场患者。
外呼通知与提醒
阶段:主动外呼策略
解决的问题:传统短信/邮件通知打开率低,而人工外呼在大量通知场景下成本不可接受。Retell AI 的批量外呼能力允许业务方在代码中循环发起多个 call,Agent 依据用户回答动态决定是否转人工或结束通话。
具体案例:某医疗检测公司通过 Retell AI 自动外呼患者提醒预约,Agent 能理解患者“我需要改时间”的意图并调用改期函数确认新时段,使预约缺席率下降约 20%,相比人工外呼节省超 60% 的通话成本。
实时语音助手嵌入式集成
阶段:多模态前端接入
解决的问题:Web 端语音助手需要处理麦克风权限、音频编解码、网络延迟三大问题,从零开发工作量大且效果难以保证。Retell AI 提供 retell-web-sdk,Web 应用通过简短的 JavaScript 代码即可接入平台语音通道,获得与电话同等的对话体验。
具体案例:某 SaaS 帮助中心在 Web 站点嵌入语音助手,用户点击按钮即可说话提问,Agent 通过动态端点对接内部知识库 RAG 检索,实测用户问题解决率提升 40%,平均会话时长从 8 分钟降至 3 分钟。
常见误区
误区“Retell AI 就是套了个语音壳的 GPT,我在 Console 里填个提示词就能上线,不需要懂什么 WebSocket 或代码。”
正解Console 托管模式确实可以零代码创建一个基础语音 Agent,但这只是最小可用配置。生产级语音 Agent 几乎必然需要动态端点来自定义对话逻辑——比如查询订单数据库、调用内部 API、做 RAG 检索、处理多轮对话中的上下文记忆。平台负责的是“耳朵和嘴巴”(ASR/TTS/传输),而“大脑”(LLM 逻辑与业务集成)需要你用代码实现。只靠提示词能做的演示与可商用的产品之间差距极大。
为何常见:平台首页展示的“两分钟创建语音 Agent”Demo 深入人心,让人误以为语音 Agent 的全部价值就是“能说话”,而忽略了语音只是个交互界面,真正的业务价值在对话背后的逻辑链路。
误区“Retell AI 的动态端点要求我自己托管 WebSocket 服务,那是不是意味着我得自己部署 LLaMA 之类的模型?”
正解动态端点要求的是“对话逻辑代码”运行在你自己的服务上,而不是模型本身。你的 WebSocket 服务收到用户转写文本后,完全可以调用 OpenAI、Anthropic 或 Retell 托管的任意 LLM API。动态端点的价值在于把“逻辑控制权”移到你这边,让你能写 if-else、查数据库、调内部 API;模型部署与否完全由你决定。实际上多数生产部署仍使用托管 LLM API,只是包了一层自己的业务逻辑。
为何常见:对“自托管”一词的望文生义。WebSocket 端点托管的是“你的程序”,不是“你的模型”。理解这一点对架构设计至关重要——选错架构会把成本与运维复杂度都提前压到自己身上。
误区“我在 Playground 里和 Agent 聊了几分钟,感觉挺自然的,直接上线吧。”
正解Playground 用的是电脑麦克风和浏览器音频通道,网络环境与通话质量理想;真实电话经过电信网络编码、可能伴随背景噪音、信号断续,且用户的说话习惯(如方言、口音、语速)远比 Playground 测试者多样。上线前必须在真实电话号码上做至少 50 通以上的多样化测试,覆盖嘈杂环境、口音变化、打断场景,并观察延迟分段数据找出体验瓶颈。
为何常见:工具提供了零门槛的 Playground,让人误以为它反映了生产环境的真实体验。实际上 Playground 只是“模型对话逻辑”验证工具,不是“语音传输质量”验证工具。两者关注点完全不同。
误区“Retell AI 保证了 500ms 响应,所以我后端的 LLM 调用慢一点也没关系,反正平台会兜底。”
正解优化 LLM 调用延迟才是降低用户感知延迟的最大杠杆。流式输出、选择低延迟模型(如 gpt-4o-mini)、对常见问题做语义缓存,都是立竿见影的手段。平台侧延迟已经优化得比较极致,再压平台意义不大。
为何常见:平台宣传的是“端到端延迟 500ms”,容易让人误以为这是全链路保证。实际上这是平台自家管道的成绩,外部依赖(你的 LLM)延迟完全由自己负责。
误区“我在 Console 买了 10 个号码,写了循环调用,直接开始批量外呼营销电话吧。”
正解批量外呼涉及严格的法律合规问题。美国市场受 TCPA 监管,自动化外呼需要获得用户明确同意,且必须遵守 DNC 名单过滤;违反规定可能面临每次通话 500-1500 美元的罚款。Retell AI 提供号码购买与通话能力,但合规责任在业务方。此外运营商有号码信誉机制,高投诉率的号码会被运营商标记甚至封禁。上线批量外呼前应咨询法律顾问,并设计好投诉率监控与号码预热策略。
为何常见:平台的“购买号码 + 代码循环 = 外呼”操作路径太顺滑,让人忽略了外呼业务是个强监管场景。技术能做的事不等于法律允许做的事。技术平台只提供管道,业务方对使用管道的方式负全责。
面试题
Q1. Retell AI 动态端点(Dynamic Endpoint)的核心作用是什么?
- A.提供内置语音识别模型
- B.允许开发者用自托管的 WebSocket 服务控制对话逻辑← 正确答案
- C.替代所有第三方 LLM 服务
- D.用于管理 API 密钥
答案:B。动态端点允许开发者将 Agent 的交互逻辑托管在自己的 WebSocket 服务上,通过平台推送的转写文本自行调用任意 LLM 并返回回复文本。选项 A 是平台附带能力但并非动态端点本身;选项 C 夸大其词,动态端点不替代 LLM;选项 D 与对话逻辑无关。
Q2. 在 Retell AI 中,用户说话时 Agent 的语音立即停止,平台实现这一行为依靠的是?
- A.文本缓存机制
- B.VAD 与打断信号处理← 正确答案
- C.降低音量输出
- D.提高识别精度
答案:B。打断处理是语音 Agent 体验的核心,Retell AI 通过语音活动检测(VAD)检测到用户开始说话后,向 TTS 通道发送打断信号立即停止合成音频。文本缓存、音量调整、识别精度都不涉及 TTS 的实时截断逻辑。
Q3. Retell AI 的 WebSocket 协议中,平台向开发者服务发送用户语音转写结果使用的事件类型是?
- A.response
- B.agent_start_talking
- C.transcript← 正确答案
- D.realtime_input
答案:C。transcript 事件携带用户语音的转写文本与时间戳,是开发者服务生成回复的输入来源。response 是开发者向平台返回回复文本的事件;agent_start_talking 是状态通知;realtime_input 用于传递中间转写结果或音频流,与最终转写不同。
Q4. 在 Retell AI 的生产部署中,PaaS 平台上的动态端点服务单实例建议的并发连接数上限为?
- A.50 个
- B.500 个← 正确答案
- C.5000 个
- D.50000 个
答案:B。官方实践建议单实例不超过 500 并发连接,超过则水平扩容。该数字取决于运行时性能与 LLM 调用耗时,过高会因事件循环阻塞导致响应超时。50 过于保守,5000/50000 在普通 PaaS 实例上不可行。
Q5. 关于 Retell AI 动态端点模式的正确说法是?
- A.必须将 LLM 模型部署在自己服务器
- B.只能使用平台托管的 LLM
- C.对话逻辑代码运行在自己的服务,模型仍可调用托管 API← 正确答案
- D.动态端点与托管 LLM 不能同时存在
答案:C。动态端点要求“逻辑代码”自托管,但模型调用仍可走 OpenAI、Anthropic 等托管 API。选项 A 是常见误解;选项 B 指向的是托管模式不是动态端点;选项 D 错误,两种模式可并存于不同 Agent。
Q6. 以下哪个参数直接决定用户停顿多久后 Agent 开始响应?
- A.max_call_duration_ms
- B.end_call_after_silence_ms← 正确答案
- C.llm_websocket_url
- D.voice_id
答案:B。end_call_after_silence_ms 是通话静默时间阈值,控制 Agent 判定“用户已说完”的等待时长。max_call_duration_ms 控制通话最大时长;llm_websocket_url 与 voice_id 分别是自定义端点与音色配置,与响应时机无关。
Q7. Retell AI 的核心能力包括哪些?
- A.语音活动检测与打断处理← 正确答案
- B.动态端点 WebSocket 自定义对话逻辑← 正确答案
- C.内置 CRM 系统
- D.工具调用与函数执行← 正确答案
答案:ABD。VAD/打断、动态端点、工具调用都是平台的官方核心能力。内置 CRM 不属于 Retell AI,CRM 集成需通过工具调用自行对接。
Q8. 在动态端点模式下,若要降低用户感知的“端到端延迟”,最有效的做法是?
- A.减少 TTS 语音合成质量
- B.优化 LLM 调用,采用流式输出与低延迟模型← 正确答案
- C.增加 WebSocket 服务实例数量
- D.关闭 VAD 检测
答案:B。端到端延迟中 LLM 推理占比通常最大,采用流式输出让平台收到首个 token 即开始合成、选择低参数模型、做语义缓存,是降低延迟的最大杠杆。选项 A 降低质量影响体验;选项 C 解决的是并发问题而非单次延迟;选项 D 会导致打断完全失效。
Q9. 关于批量外呼的法律合规问题,哪些说法正确?
- A.美国市场受 TCPA 监管,需要用户明确同意← 正确答案
- B.平台负责全部合规责任
- C.必须遵守 DNC 名单过滤← 正确答案
- D.号码投诉率过高可能导致号码被封禁← 正确答案
答案:ACD。批量外呼在美国受 TCPA 严格监管,需要用户明确同意并遵守 DNC 名单;运营商号码信誉机制会封禁高投诉号码。选项 B 错误,合规责任在业务方而不在平台。
Q10. Retell AI 中,playground 测试与真实电话测试在哪个方面差异最大?
- A.LLM 使用的模型版本
- B.网络环境与音频传输链路← 正确答案
- C.提示词的执行方式
- D.工具调用的执行权限
答案:B。Playground 使用浏览器音频通道,网络质量高且环境安静;真实电话经过电信网络与语音编码,伴随噪音、信号不稳与口音差异,语音传输链路是两者最大差异。模型、提示词、工具调用在两种模式下执行逻辑一致。