2026 年 9 月 10 日,OpenAI 把 GPT-Live-1 在 API 上正式开放。它和此前的 Realtime 走的不是一条路:Realtime 是语音、推理、工具选择挤在一个模型里;Live 把说话的模型和干活的智能体拆开——语音层可以在后端 Agent 推理、调工具的同时继续和用户对话,全双工。这篇教程带你把 Live 接到一个后端智能体上,并把两种委托模式的分界线、计费结构和几个必测点讲透。
先理解:Live 把一条链路拆成了两段
过去用 Realtime,用户问「我的订单到哪了」,模型要一边维持对话、一边决定调不调工具,静默的工具往返会打断对话节奏。Live 的架构是把对话和执行解耦:
| 角色 | 职责 | 计费 |
|---|---|---|
| Live 语音层 | 全双工对话:说话时能听、能被打断,把任务委托给后端 | $0.05/分钟,按秒计 |
| 后端智能体 | 真正的推理、工具调用、业务校验 | 按所选模型的 API 价与工具费另计 |
一个直观的账:十分钟语音会话的语音层成本是 0.5 美元,但整通电话的真实成本还包含后端每一次模型调用和工具执行。做预算要按整条链路算,不能只看语音分钟数。
什么时候该选 Live 而不是 Realtime?看你的对话里有没有「说话的同时还要干活」:语音客服边聊边查订单、开发者边口述边让后台跑重构,这类场景里静默的工具往返是体验杀手,Live 的解耦架构正好治它。反过来,如果你的场景是「一问一答的语音问答」,后端逻辑很薄,Realtime 的单模型链路反而更简单。另外提醒一个容易忽略的点:全双工对**谁在什么时刻有权说话**提出了新的产品问题——打断、抢话、沉默的粒度都要在应用层定义,这是 Realtime 时代不存在的设计项。
Step 1:跑通最小语音会话
按官方入门文档的路径建立一条 Live 会话,验证音频输入输出与转写都正常。这一步不加任何后端逻辑:
验证清单:
□ 能听到模型说话(TTS 输出正常)
□ 模型能听到你说话,且转写与你说的一致
□ 打断测试:它说话时你插话,它会让位
□ 转写里能拿到结构化的事件流
先把「打断」测明白再往下走。全双工意味着双方可以同时发声,你的产品逻辑必须决定:用户插话时,后端正在跑的任务是取消、继续还是暂停?这个策略没有默认值,各家业务预期不同,早决定早省事。
Step 2:选委托模式——两条路的分界线
Live 把「语音层怎么把活交给后端」分成两种模式,对应两种架构:
| 模式 | 流程 | 适合谁 |
|---|---|---|
| Responses 委托 | Live 为你在 OpenAI 侧配置好的后端准备请求,拿到结果后回传对话 | 后端就是 OpenAI 生态(Responses API + 自有工具),想快 |
| Client 委托 | 你的应用自己组装上下文、跑自己的 Agent 或服务,把结果回给语音层 | 需要自定义路由、校验,或后端根本不在 OpenAI 上 |
判断标准很简单:委托之前要不要经过你的业务逻辑?要,就用 Client 委托——比如先查权限、先做意图分类、要在多个内部服务之间路由。不需要,Responses 委托的链路更短、延迟更低。
Step 3:接 Responses 委托
Responses 委托的核心是把一个 OpenAI 后端配置挂到 Live 会话上,语音层自动为该后端准备请求并回传结果:
会话配置要点:
1. 在 Live 会话参数中指定 Responses 后端
(模型、指令、可用工具随会话一并声明)
2. 用户开口 → Live 准备请求 → 后端执行 →
结果回传 → Live 继续对话
3. 后端工具照常定义:web_search、
function tools、MCP 均可用
Step 4:接 Client 委托(注意元数据陷阱)
这是 Client 委托最容易踩的坑,官方文档专门强调:委托事件携带的是元数据,不是现成的任务载荷。你要自己从转写事件与应用状态拼出真正的后端请求。
正确姿势:
1. 监听委托事件,拿到的是「发生了委托」这件事
与相关元数据
2. 从转写事件 + 你的应用状态组装后端请求
(用户说了什么、此前会话决定了什么、
当前订单上下文是什么)
3. 后端执行自己的 Agent / 服务,带校验地返回结果
4. 把结果交回语音层,让它用人话播报
错误姿势:
把委托事件直接当命令转发给后端
→ 后端拿到的是空壳元数据,什么都干不了
权限、确认与任务状态在两种模式下都是你的责任。后端校验期间,语音模型不保证保持沉默——它可能已经在跟用户说话了。所以校验逻辑要独立于语音层运转,别依赖「用户听不到」这个假设。
Step 5:三个必测点
语音链路的失效方式和文本链路完全不同,官方入门指南给出的对照结构点出了三处要专门测的地方:
| 测什么 | 怎么测 | 要防的失效 |
|---|---|---|
| 打断 | 后端慢查询进行中用户连续插话改需求 | 任务状态与新指令错位,答非所问 |
| 慢查询中改指令 | 查询跑到一半说「算了查另一个」 | 旧查询结果回来后被当成新答案播报 |
| 「已请求」≠「已完成」 | 触发一个动作后立刻问「办好了吗」 | 语音模型把「已提交」说成「已办妥」 |
三个测点要在真实设备上测:开发机上用模拟音频跑通的打断逻辑,换到带底噪的耳机麦克风上可能完全变形——回声消除、半双工硬件、蓝牙延迟都会影响全双工行为。建议准备一套贴近真实用户环境的录音回放用例,每次改打断策略后回归一遍,并把每次的表现记进评测表,语义层面的退化往往是从这里先露头的。
「requested 与 completed 的区分」是信任问题。对语音客服来说,把「已经帮您提交了退款申请」说成「退款已到账」,是会直接产生客诉的表述错误。评测时要专门核对动作类话术:模型说的是提交、排队,还是完成——三者必须与后端真实状态一致。
Step 6:按整条链路做预算与监控
成本结构:
语音层 $0.05/分钟,按秒计费(10 分钟 = $0.50)
后端模型 按所选模型 API 价,每次委托都计费
工具执行 按工具标准价(含 OpenAI 托管工具)
监控建议:
1. 把「语音分钟数」与「委托次数」分开埋点
2. 单通电话的总成本 = 语音 + Σ每次委托的模型与工具费
3. 关注委托失败重试——重试的模型费照付
单通电话成本演算(假设):
通话时长 8 分钟
→ 语音层:8 × $0.05 = $0.40
委托 3 次
→ 后端模型:3 × 单次委托 token 费(按所选模型价)
→ 工具执行:3 × 工具单价(含 OpenAI 托管工具按标准价)
估算口径:语音层可精确预付,
后端部分按历史会话的平均委托次数 × 平均单次费用
预留缓冲,重试率高的场景缓冲至少翻倍
Step 7:上线前的责任清单
| 责任 | 归属 | 落地方式 |
|---|---|---|
| 权限校验 | 你的应用 | 委托前在应用层校验调用方身份与权限 |
| 动作确认 | 你的应用 | 不可逆动作必须有显式确认环节,语音层无此机制 |
| 任务状态 | 你的应用 | 维护真实状态机,播报前查状态而非依赖模型记忆 |
| 结果校验 | 你的应用 | 后端结果回传前做业务校验,再决定播报口径 |
语音让交互门槛降低了,也让「说错话」的成本变高了。上线后先小流量灰度,重点盯动作类话术的准确率,再逐步放开。
常见问题速查
| 你遇到的现象 | 大概率原因 & 解决 |
|---|---|
| 委托事件转发后端后没反应 | 把元数据当成了任务文本。从转写事件 + 应用状态自行组装请求 |
| 用户插话后行为错乱 | 打断策略未定义。明确插话时后端任务的取消/继续策略 |
| 模型说「已完成」但实际没有 | 播报未接真实状态。动作类话术改为查询状态机后输出 |
| 账单远超语音分钟预估 | 漏算后端模型与工具费。按委托次数补齐埋点 |
| 想自定义路由再回传 | 选 Client 委托;Responses 委托不支持中途业务逻辑 |