一句话导读:同一周落地两个名字,很多人把它们当成「又一个更强的 ChatGPT」——真正卡住开发者的,通常不是模型名,而是语音层、推理层和本机执行面该不该绑在一起。 下文按实时语音、Agent 后端和 API 三条线拆开,先讲怎么接,再讲账单和隔离。
先分清两件事:说话的模型和做事的模型
2026 年 9 月,OpenAI 连续放出两块积木:3 日开始投放 GPT-6 Astra,10 日把 GPT-Live-1 开进 API。站内更早的 GPT-6 发布时间预测 回答「什么时候来」;Astra 安全担忧 回答「开了之后爆炸半径有多大」。本篇回答第三问:已经来了,开发者该怎么接。
官方把职责切得很干净。GPT-Live-1 是全双工语音前端:听、说、处理打断,并决定何时把活交给后端。Astra(或 Terra / Luna)才是推理、查资料、调工具的那一层。Realtime API 把语音、推理和工具选在同一个模型里;GPT-Live 把对话和任务拆开,会话还能在后端干活时继续进行。
| 层 | 模型 / 接口 | 它负责什么 | 它不负责什么 |
|---|---|---|---|
| 语音前端 | gpt-live-1 · POST /v1/live/sessions |
听、说、打断、转写、何时委托 | 业务规则、权限、工具执行 |
| 推理后端 | gpt-6-astra 或 Terra / Luna · Responses |
规划、检索、选工具、返回可说结果 | 实时发音、打断时机 |
| 你的应用 | 服务器 + 函数 + 日志 | 密钥、确认、落库、取消或继续后台任务 | 把项目密钥塞进浏览器 |
一句话记职责
给 Live-1 写短提示:说话风格、何时求助后端。把细则、工具工作流和审批规则留给 Astra。打断语音不会自动取消后台任务——取消还是做完,由你的应用决定。
GPT-Live-1:实时语音层怎么接
GPT-Live-1 先在 ChatGPT 里出现,9 月 10 日进入 API。它能同时听和说,官方评测里 Full Duplex Bench 比 GPT-Realtime-2.1 高出约 30 个百分点;配对 Astra(中等推理力度)时,在衡量端到端语音 Agent 的 Tau3 上排第一。Speak 的早期评估称,语言学习者被打断的次数比旧的轮转系统少了近 80%。
开发者真正要选的是连接方式,不是再找一个「更会说话的 Chat Completions」:
- WebRTC:浏览器语音。麦克风和扬声器走媒体轨,JSON 事件走数据通道。浏览器只出 SDP,项目密钥留在服务器。
- WebSocket:服务端音频集成,一条连接同时带音频和控制事件。
- 电话 / SIP:把现有通话接进来。已有 LiveKit、Twilio、Telnyx 或 Daily/Pipecat 的,走官方合作方接入。
限流按并发会话计,不按 token:Free 不可用;Tier 1 为 25 路,Tier 5 到 500 路。语音层报价是每分钟 0.05 美元,按秒计、不向上取整到整分钟。知识截止日期是 2025 年 7 月 31 日;当前不接图像,也不支持 Structured Outputs 或微调。
会话创建后,用 session.started 确认通道就绪,再开口。需要旁路监控或热改指令时,加一条服务端 sideband WebSocket,音频仍走主连接。转写、关键词偏置和轮次检测是内建的,不必再叠一层 STT。
GPT-6 Astra:Agent 后端怎么接
Astra 是文本推理旗舰,模型 ID gpt-6-astra,走 Responses / Chat Completions / Bedrock,不走 Live 会话本身。企业 ChatGPT 工作区默认关闭,要管理员打开。API 报价约为每百万输入 token 10 美元、每百万输出 50 美元;符合条件的客户可开 Zero Data Retention。
接到语音产品里时,Astra 只应出现在委托配置里,而不是再开一条并行的聊天补全去抢同一段对话。官方给了两种委托:
| Responses 委托 | Client 委托 | |
|---|---|---|
| 谁准备上下文 | GPT-Live 把会话上下文交给你选的 Responses 模型 | 你的应用自己拼历史、记忆和业务状态 |
| 谁跑工具循环 | OpenAI 按会话里的 delegation.responses 跑 |
你自己路由模型、回退、预算和检查点 |
| 结果回语音前 | 可直接回给 Live-1 说出来 | 你可以先校验、脱敏、合并或丢弃 |
| 适合 | 先跑通、工具面不复杂 | 已有 Agent 框架,或必须审核再说出口 |
创建会话时就要选定模式;中途改模式会报 immutable_field_update,只能新开。Responses 委托支持 function 和 web_search,以及后端模型自带的 reasoning / text / max_output_tokens。自定义函数仍由你的服务器执行,并做权限和确认。需要更低延迟时,可把 delegation.responses.service_tier 设为 priority(若项目已开通 Fast)。
Astra 的安全边界没有因为「接到语音里」而自动变松。公开版仍拒绝高级进攻任务;企业工作区默关。把高权限 Agent 挂到日常电脑上的代价,见 Astra 安全担忧 和 权限交出决策。
三种落地组合:先选场景再选模型
官方自己也写了:排班、查单用便宜后端,复杂客诉再升到 Astra。不要默认「语音产品 = 全程 Astra」。
| 组合 | 语音层 | 后端 | 先用在哪 | 别用在哪 |
|---|---|---|---|---|
| A. 纯对话 | GPT-Live-1 | 不委托,或只开 web_search |
陪练、导览、口播 FAQ | 要改订单、动仓库、碰支付 |
| B. 高量查询 | GPT-Live-1 | Terra / Luna + 只读工具 | 物流状态、预约改期、库存查询 | 要长链规划和写操作 |
| C. 语音 Agent | GPT-Live-1 | GPT-6 Astra + 审核过的写工具 | 复杂客诉、多步办理、需推理的排障 | 把生产密钥和日常桌面绑在一起 |
组合 C 才需要按 AI Agent 基础设施分层 把身份、磁盘和日志拆开。24 小时常驻的编码 Agent 同样不要和语音会话共用一份 .env,见 24 小时 AI Coding Agent 部署。
迁移顺序
已有 Realtime 流水线:先对照打断和首音延迟,再迁会话创建。已有文本 Agent:先走 Client 委托,把现有 harness 接在 Live-1 后面,不要重写工具层。全新产品:从 Responses 委托 + 组合 B 起,场景证明需要再升 Astra。
API 实战:WebRTC + Responses 委托
最小可用链路是:浏览器采集麦克风 → 你的 HTTPS 服务器用项目密钥创建 Live 会话并交换 SDP → 媒体轨出声 → 数据通道收转写和委托事件。下面这段是官方 Session 配置的 Astra 版本——文档示例默认写 gpt-5.6-terra,旗舰语音 Agent 再换成 Astra。
/** @type {import("openai/resources/live/live").SessionConfig} */
export const session = {
model: "gpt-live-1",
instructions: "你是客服语音助手。寒暄、澄清、报进度自己说;查单、改约、退款必须委托后端。",
delegation: {
type: "responses",
responses: {
model: "gpt-6-astra",
instructions: "只处理已授权的订单查询与改期。写操作先走函数,等应用确认后再继续。",
tools: [
{ type: "web_search" },
{
type: "function",
name: "lookup_order",
description: "按订单号查询只读状态",
parameters: {
type: "object",
properties: { order_id: { type: "string" } },
required: ["order_id"]
}
}
],
tool_choice: "auto",
parallel_tool_calls: true
}
}
};
服务器侧用项目密钥调用 POST /v1/live/sessions,把浏览器的 SDP offer 换成 answer,再回给 RTCPeerConnection。密钥和 Session 配置都不要离开这台服务器。函数真正执行时,从嵌套的 response.output_item.done 读取 call_id / name / arguments,跑完授权操作后把结果作为 Responses item 追加回去。终端快照里的 response.output: [] 不代表没有待处理的函数调用。
# 伪代码:可信服务器上交换 SDP,切勿把 OPENAI_API_KEY 下发到浏览器
import os, requests
def create_live_session(sdp_offer: str, session_config: dict) -> str:
r = requests.post(
"https://api.openai.com/v1/live/sessions",
headers={
"Authorization": f"Bearer {os.environ['OPENAI_API_KEY']}",
"Content-Type": "application/sdp",
},
params={"model": "gpt-live-1"},
data=sdp_offer,
timeout=20,
)
r.raise_for_status()
return r.text # SDP answer → 回给浏览器 setRemoteDescription
会话进行中可用 session.update 热改后端模型、指令和工具,不必重连。把 delegation 设为 null 会切到 Client 模式,且不能把已经在跑的 Responses 会话改回去。旁路监护可以用 session.instructions.append(delegation_id: null)把对话扳回来,这只影响 Live 模型,不会改 Astra 提示,也不会取消已经在跑的委托。
两件容易误判的事
后端 response.completed 不等于用户已经听见答案——要以 Live 的输出转写和音频为准。用户打断助手,也不等于后台查单已经停掉。任务状态必须由你的应用记账。
账单、限流和隔离
语音和推理是两张账单。Token 单价怎么比,见 Token 价格对照;这里只记和 Live + Astra 绑在一起时会漏算的部分。
| 项目 | 怎么计 | 开发者容易漏的 |
|---|---|---|
| GPT-Live-1 语音 | 0.05 美元 / 分钟,按秒 | 用户沉默、助手说话、打断后的空档都算会话时长 |
| Astra / Terra / Luna | 按 Responses 的输入 / 输出 token | 每次委托都是一笔独立推理;并行工具会叠加 |
| web_search 与函数 | 按工具报价 + 你自己的基础设施 | 函数失败重试会重复打到 Astra |
| 并发会话 | Tier 配额,不是 token 配额 | 演示页开着不关,会先打满 25 路而不是先烧光余额 |
隔离清单和安全文是同一套,只是语音产品多了一条「会话常驻」:
- 密钥只在服务器。 浏览器只提交 SDP 和播放音频。
- 写工具默认要人确认。 查单可以自动;退款、改库存、推代码必须过你的确认关。
- Agent 身份和日常桌面拆开。 高权限函数、Git token、生产
.env放到独立 Cloud Mac 节点,主力电脑只审记录和合并。 - 日志要能回答三句。 哪次 Live 会话、哪次委托、改了什么。做不到就还没有审计。
- 企业工作区保持默关。 需要再用管理员打开;个人订阅也不要把 Astra 一次性接到生产仓库。
正确理解:GPT-Live-1 降低的是说话成本,不是爆炸半径。常见误判是「语音层很贵所以全程开 Astra,一次委托解决」——更稳的做法是组合 B 接量,组合 C 接难,并且不在笔记本上跑写操作。
常见问题
GPT-Live-1 和 GPT-6 Astra 是同一个模型吗?
不是。Live-1 是全双工语音前端;Astra 是文本推理与工具后端。官方推荐配对使用,而不是让一个模型同时干两件事。
应该从 Realtime API 立刻迁到 GPT-Live-1 吗?
浏览器和新语音产品优先迁。已经稳定的 Realtime 流水线可以先对照延迟和打断再迁。换委托模式要新开会话,不能热切换。
语音会话会不会把 Astra 的 token 账单一起算进去?
不会混在一笔里。语音层按秒计费,约每分钟 0.05 美元;Astra 和工具按各自的 Responses 报价另算。
API 密钥能不能直接放进前端页面?
不能。项目密钥必须留在可信服务器。浏览器只提交 SDP,由服务器调用 POST /v1/live/sessions 换回应答。
ZavCloud Developer Infrastructure
把语音 Agent 的执行面放到独立 Mac 节点
浏览器只说话,密钥和写工具留在服务器
按天租用独享 Mac mini,给 Astra 单独的用户目录和磁盘