一言で言うと:同じ週に二つの名前が着地し、多くは「また一つ強い ChatGPT」と見る——開発者が本当に詰まるのはモデル名ではなく、音声層、推論層、本機の実行面を一つに結んでよいかだ。 以下ではリアルタイム音声、Agent バックエンド、API の三本に分け、つなぎ方のあと請求と隔離を見る。
先に二つを分ける:話すモデルと仕事をするモデル
2026 年 9 月、OpenAI は積木を連続で出した。3 日から GPT-6 Astra の配布が始まり、10 日に GPT-Live-1 が API に入った。以前の記事は「いつ来るか」を扱い、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 があるなら公式パートナー経由。
レート制限は同時セッションであり、トークンではない。Free は使えない。Tier 1 は 25 本、Tier 5 は 500 本。音声層は 1 分 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 は入力 100 万トークンあたり約 10 ドル、出力 100 万あたり約 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 を使える。カスタム関数は自分のサーバーが実行し、権限と確認もそこで行う。さらに低い遅延が要るなら、プロジェクトで Fast が開いていれば delegation.responses.service_tier を priority にする。
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 の出力書き起こしと音声を正とする。利用者が助手を遮っても、裏の照会が止まったことにはならない。作業状態はアプリが帳簿を持つ。
請求、レート制限、隔離
音声と推論は二枚の請求だ。トークン単価の比べ方は トークン料金の対照 を見てほしい。ここでは Live と Astra を結んだときに漏れやすい分だけ記す。
| 項目 | どう数えるか | 開発者が落としやすい点 |
|---|---|---|
| GPT-Live-1 音声 | 0.05 ドル / 分、秒単位 | 利用者の沈黙、助手の発話、割り込み後の空白もセッション時間に入る |
| Astra / Terra / Luna | Responses の入力 / 出力トークン | 委譲のたびに独立した推論。並列ツールは積み上がる |
| web_search と関数 | ツール単価 + 自分のインフラ | 関数失敗の再試行は Astra へもう一度当たる |
| 同時セッション | Tier 枠。トークン枠ではない | デモページを開きっぱなしにすると、残高より先に 25 本が埋まる |
隔離の一覧は安全記事と同じだが、音声製品には「セッションが常駐する」が一本足される。
- キーはサーバーだけ。 ブラウザは SDP を送り、音声を再生する。
- 書き込みツールは既定で人の確認。 照会は自動でよい。返金、在庫変更、コード投入は自分の確認を通す。
- Agent の身元と日常デスクトップを分ける。 高権限関数、Git トークン、本番
.envは独立した Cloud Mac ノードへ。主力マシンは記録の審査とマージだけ。 - ログは三文に答えられること。 どの Live セッションか、どの委譲か、何が変わったか。答えられなければ監査はない。
- 企業ワークスペースは既定オフのまま。 要るとき管理者が入れる。個人サブスクでも Astra を本番リポジトリへ一度に繋がない。
正しい読み方:GPT-Live-1 が下げるのは話すコストであり、爆風半径ではない。よくある誤読は「音声層が高いから最初から最後まで Astra、一回の委譲で済ませる」。より安定した手は、組み合わせ B で量、組み合わせ C で難所、そしてノート PC で書き込み操作を走らせないことだ。
よくある質問
GPT-Live-1 と GPT-6 Astra は同じモデルか?
違う。Live-1 は全二重の音声フロントエンド。Astra はテキスト推論とツールのバックエンド。公式は二つを組ませることを勧めており、一つのモデルに両方をやらせない。
Realtime API からすぐ GPT-Live-1 へ移すべきか?
ブラウザと新しい音声製品は先に移す。すでに安定した Realtime パイプラインは、遅延と割り込みを対照してからでよい。委譲モードの変更は新しいセッションが必要で、ホットスワップはできない。
音声セッションに Astra のトークン請求が一緒に入るか?
一つの請求に混ざらない。音声層は秒単位で、約 1 分 0.05 ドル。Astra とツールはそれぞれの Responses 単価で別計算。
API キーをフロントのページに直接置いてよいか?
いけない。プロジェクトキーは信頼できるサーバーに置く。ブラウザは SDP だけ送り、サーバーが POST /v1/live/sessions でアンサーを取り替える。
ZavCloud Developer Infrastructure
音声 Agent の実行面は独立 Mac ノードへ
ブラウザは話すだけ。キーと書き込みツールはサーバーに置く
専有 Mac mini を日単位で借り、Astra 用のホームとディスクを分ける