En une phrase : la même semaine, deux noms atterrissent, et beaucoup les traitent comme « encore un ChatGPT plus fort » — ce qui bloque vraiment le développeur n’est généralement pas le nom du modèle, mais si couche voix, couche de raisonnement et exécution locale doivent être liées. La suite sépare voix temps réel, backend agent et API : d’abord comment brancher, ensuite facture et isolation.
D’abord deux choses : le modèle qui parle et le modèle qui agit
En septembre 2026, OpenAI pose deux briques à la suite : le 3, le déploiement de GPT-6 Astra commence ; le 10, GPT-Live-1 entre dans l’API. Des textes plus anciens sur le calendrier GPT-6 ont répondu à « quand ça arrive » ; les inquiétudes de sécurité Astra répondent à « quel rayon d’explosion une fois allumé ». Ce texte répond à la troisième question : c’est là — comment les développeurs le branchent.
Officiellement, les rôles sont coupés net. GPT-Live-1 est le frontal voix full-duplex : écouter, parler, traiter les interruptions, décider quand passer le travail au backend. Astra (ou Terra / Luna) est la couche de raisonnement, de recherche et d’outils. La Realtime API met voix, raisonnement et choix d’outils dans un seul modèle ; GPT-Live sépare conversation et tâche — la session continue pendant que le backend travaille.
| Couche | Modèle / interface | Il gère | Il ne gère pas |
|---|---|---|---|
| Frontal voix | gpt-live-1 · POST /v1/live/sessions |
Écouter, parler, interrompre, transcrire, quand déléguer | Règles métier, droits, exécution d’outils |
| Backend de raisonnement | gpt-6-astra ou Terra / Luna · Responses |
Planifier, rechercher, choisir un outil, renvoyer un résultat dicible | Prononciation temps réel, timing des interruptions |
| Votre application | Serveur + fonctions + journaux | Clés, confirmation, persistance, annuler ou laisser tourner en fond | Glisser la clé projet dans le navigateur |
Les rôles en une phrase
À Live-1, des consignes courtes : style de parole, quand demander de l’aide au backend. Détails, workflows d’outils et règles d’approbation restent chez Astra. Interrompre la voix n’annule pas automatiquement une tâche de fond — annuler ou terminer, c’est votre application qui décide.
GPT-Live-1 : brancher la couche voix temps réel
GPT-Live-1 est d’abord apparu dans ChatGPT, puis dans l’API le 10 septembre. Il écoute et parle en même temps ; sur le Full Duplex Bench, il est officiellement d’environ 30 points au-dessus de GPT-Realtime-2.1. Couplé à Astra (raisonnement moyen), il mène Tau3, qui mesure les agents voix de bout en bout. Une évaluation précoce de Speak indique que les apprenants de langue ont été interrompus près de 80 % moins souvent qu’avec l’ancien système à tours.
Ce que le développeur choisit vraiment, c’est le mode de connexion, pas « encore un Chat Completions plus bavard » :
- WebRTC : voix navigateur. Micro et haut-parleur sur les pistes média, événements JSON sur le canal de données. Le navigateur n’émet que le SDP ; la clé projet reste sur le serveur.
- WebSocket : intégration audio côté serveur, une connexion pour l’audio et les événements de contrôle.
- Téléphone / SIP : brancher les appels existants. Qui a déjà LiveKit, Twilio, Telnyx ou Daily/Pipecat passe par les partenaires officiels.
Les limites comptent les sessions concurrentes, pas les tokens : Free indisponible ; Tier 1 = 25 canaux, Tier 5 = 500. La couche voix vaut 0,05 USD par minute, à la seconde, sans arrondi à la minute pleine. Date de coupure des connaissances : 31 juillet 2025 ; pas d’images pour l’instant, ni Structured Outputs, ni fine-tuning.
Après création de session, confirmer le canal avec session.started avant de parler. Pour une surveillance latérale ou des consignes à chaud, ajouter un WebSocket sideband côté serveur ; l’audio reste sur la connexion principale. Transcription, biais de mots-clés et détection de tours sont intégrés — pas besoin d’une couche STT de plus.
GPT-6 Astra : brancher le backend agent
Astra est le fleuron de raisonnement texte, ID gpt-6-astra, via Responses / Chat Completions / Bedrock — pas via la session Live elle-même. Les espaces ChatGPT entreprise sont éteints par défaut ; un administrateur doit les ouvrir. Tarif API d’environ 10 USD le million de tokens d’entrée, 50 USD le million en sortie ; les clients éligibles peuvent activer Zero Data Retention.
Dans un produit voix, Astra ne doit apparaître que dans la configuration de délégation, pas dans une complétion de chat parallèle qui dispute la même conversation. Officiellement, deux délégations :
| Délégation Responses | Délégation Client | |
|---|---|---|
| Qui prépare le contexte | GPT-Live passe le contexte de session au modèle Responses choisi | Votre application assemble elle-même l’historique, la mémoire et l’état métier |
| Qui fait tourner la boucle d’outils | OpenAI selon delegation.responses dans la session |
Vous routez modèle, repli, budget et points de contrôle |
| Avant que le résultat soit dit | peut revenir directement à Live-1 pour être prononcé | vous pouvez vérifier, anonymiser, fusionner ou jeter |
| Convient à | faire tourner d’abord, surface d’outils simple | framework agent déjà en place, ou revue avant de parler |
Le mode se choisit à la création de session ; le changer en cours lève immutable_field_update — il faut en ouvrir une nouvelle. La délégation Responses prend function et web_search, plus les champs backend reasoning / text / max_output_tokens. Les fonctions custom s’exécutent toujours sur votre serveur, avec droits et confirmation. Pour moins de latence, delegation.responses.service_tier peut passer à priority (si le projet a Fast).
La frontière de sécurité d’Astra ne se relâche pas automatiquement parce que « c’est branché dans la voix ». La version publique refuse encore les tâches offensives avancées ; les espaces entreprise restent éteints. Le coût d’un agent à haut privilège sur l’ordinateur du quotidien est dans les inquiétudes de sécurité Astra et la décision de céder des droits.
Trois combinaisons : d’abord le scénario, ensuite le modèle
OpenAI l’écrit aussi : plannings et consultations de commandes avec un backend bon marché, réclamations complexes ensuite montées sur Astra. Pas par défaut « produit voix = Astra de bout en bout ».
| Combinaison | Couche voix | Backend | D’abord ici | Pas ici |
|---|---|---|---|---|
| A. Conversation seule | GPT-Live-1 | pas de délégation, ou seulement web_search |
entraînement, visite guidée, FAQ parlée | modifier une commande, toucher le stock, le paiement |
| B. Requêtes à volume | GPT-Live-1 | Terra / Luna + outils en lecture seule | statut logistique, report de rendez-vous, stock | planification longue et écritures |
| C. Agent voix | GPT-Live-1 | GPT-6 Astra + outils d’écriture revus | réclamations complexes, démarches multi-étapes, diagnostic à raisonner | lier clés de production et bureau quotidien |
Seule la combinaison C a besoin des couches d’infrastructure d’un agent IA pour séparer identité, disque et journaux. Un agent de coding 24 h ne doit pas non plus partager un .env avec la session voix — voir déployer un AI Coding Agent 24h/24.
Ordre de migration
Pipeline Realtime déjà en place : d’abord comparer interruptions et latence du premier son, puis migrer la création de session. Agent texte déjà en place : d’abord délégation Client, brancher le harness existant derrière Live-1, ne pas réécrire la couche d’outils. Produit neuf : délégation Responses + combinaison B, monter Astra seulement si le scénario le prouve.
API en pratique : WebRTC + délégation Responses
La chaîne minimale : le navigateur capte le micro → votre serveur HTTPS crée une session Live avec la clé projet et échange le SDP → la piste média parle → le canal de données livre transcription et événements de délégation. Le snippet ci-dessous est la configuration de session officielle en variante Astra — les docs mettent gpt-5.6-terra par défaut ; un agent voix fleuron passe à Astra.
/** @type {import("openai/resources/live/live").SessionConfig} */
export const session = {
model: "gpt-live-1",
instructions: "Tu es un assistant vocal support. Salutations, clarifications et avancement : tu les dis toi-même. Consultation de commande, report et remboursement doivent être délégués au backend.",
delegation: {
type: "responses",
responses: {
model: "gpt-6-astra",
instructions: "Traite uniquement les consultations et reports autorisés. Les écritures passent d'abord par des fonctions ; continue après confirmation de l'app.",
tools: [
{ type: "web_search" },
{
type: "function",
name: "lookup_order",
description: "Consulter le statut en lecture seule par numéro de commande",
parameters: {
type: "object",
properties: { order_id: { type: "string" } },
required: ["order_id"]
}
}
],
tool_choice: "auto",
parallel_tool_calls: true
}
}
};
Côté serveur, appeler POST /v1/live/sessions avec la clé projet, échanger l’offre SDP du navigateur contre une réponse, la renvoyer à RTCPeerConnection. Clé et configuration de session ne quittent pas ce serveur. Quand une fonction s’exécute vraiment, lire call_id / name / arguments dans le response.output_item.done imbriqué, faire l’opération autorisée, puis rajouter le résultat comme item Responses. Un response.output: [] dans le snapshot terminal ne veut pas dire qu’il n’y a pas d’appel de fonction en attente.
# Pseudo-code : échanger le SDP sur un serveur de confiance. Ne jamais envoyer OPENAI_API_KEY au navigateur
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 # Réponse SDP → navigateur setRemoteDescription
En cours de session, session.update peut changer à chaud le modèle backend, les consignes et les outils, sans reconnecter. Mettre delegation à null bascule en mode Client et ne peut pas ramener une session Responses déjà en cours. Une surveillance latérale peut recentrer la conversation avec session.instructions.append (delegation_id: null) — cela n’affecte que le modèle Live, ne change pas le prompt Astra et n’annule pas une délégation déjà lancée.
Deux erreurs faciles
Un response.completed backend ne veut pas dire que l’utilisateur a déjà entendu la réponse — c’est la transcription et l’audio Live qui font foi. Qu’un utilisateur interrompe l’assistant ne veut pas dire que la consultation de commande en fond s’est arrêtée. C’est votre application qui doit tenir l’état des tâches.
Facture, limites et isolation
Voix et raisonnement sont deux factures. Pour comparer les prix au token, voir le comparatif des prix de tokens ; ici seulement ce qui se rate quand Live et Astra sont liés.
| Poste | Comment ça compte | Ce que le développeur oublie souvent |
|---|---|---|
| Voix GPT-Live-1 | 0,05 USD / minute, à la seconde | Silence utilisateur, parole de l’assistant, trous après interruption : tout compte en durée de session |
| Astra / Terra / Luna | tokens d’entrée / sortie Responses | Chaque délégation est une inférence séparée ; les outils en parallèle s’additionnent |
| web_search et fonctions | tarif outil + votre infrastructure | Un retry de fonction en échec retape Astra |
| Sessions concurrentes | quota de palier, pas un quota de tokens | Une page démo laissée ouverte remplit d’abord les 25 canaux, avant de vider le solde |
La liste d’isolation est la même que dans le texte sécurité, plus « la session reste ouverte » :
- Les clés seulement sur le serveur. Le navigateur n’envoie que le SDP et joue l’audio.
- Les outils d’écriture exigent une confirmation humaine par défaut. Consulter une commande peut être automatique ; remboursement, stock, push de code passent par votre porte.
- Séparer l’identité de l’agent et le bureau quotidien. Fonctions à haut privilège, token Git,
.envde production sur un nœud Cloud Mac dédié ; la machine principale relit et fusionne. - Les journaux doivent répondre à trois phrases. Quelle session Live, quelle délégation, qu’est-ce qui a changé. Sinon, pas d’audit.
- Laisser l’espace entreprise éteint. Un administrateur l’ouvre si besoin ; un abonnement perso ne doit pas non plus brancher Astra d’un coup sur un dépôt de production.
Bonne lecture : GPT-Live-1 baisse le coût de parler, pas le rayon d’explosion. L’erreur fréquente : « la couche voix est chère, donc Astra de bout en bout, une délégation règle tout » — plus stable : combinaison B pour le volume, combinaison C pour le difficile, et pas d’écritures sur le portable.
Questions fréquentes
GPT-Live-1 et GPT-6 Astra sont-ils le même modèle ?
Non. Live-1 est le frontal voix full-duplex ; Astra est le backend de raisonnement texte et d’outils. Officiellement, il faut les coupler, pas faire faire les deux à un seul modèle.
Faut-il migrer tout de suite de la Realtime API vers GPT-Live-1 ?
Navigateur et nouveaux produits voix d’abord. Un pipeline Realtime déjà stable peut d’abord comparer latence et interruptions, puis migrer. Changer de mode de délégation exige une nouvelle session — pas de bascule à chaud.
Une session voix facture-t-elle aussi les tokens Astra ?
Pas dans la même ligne. La couche voix est facturée à la seconde, environ 0,05 USD par minute ; Astra et les outils suivent leurs tarifs Responses.
Peut-on mettre la clé API directement dans la page front ?
Non. La clé projet reste sur un serveur de confiance. Le navigateur n’envoie que le SDP ; le serveur appelle POST /v1/live/sessions et échange la réponse.
ZavCloud Developer Infrastructure
La couche d’exécution de l’agent voix sur un nœud Mac dédié
Le navigateur parle seulement ; clés et outils d’écriture restent sur le serveur
Louer un Mac mini dédié à la journée — répertoire et disque séparés pour Astra