L'écosystème IA en TypeScript vient de se rapprocher de la production. Vercel AI SDK 7 est désormais disponible en version stable et, contrairement aux itérations régulières de la branche 6.x, cette version constitue une base délibérée pour les agents et les plateformes d'IA qui tournent en production — avec durabilité, approbations humaines dans la boucle, télémétrie normalisée et une couche vocale désormais stable.
Si vous avez bâti sur le SDK 6, vous n'avez rien à jeter. Mais il vaut la peine de comprendre les nouvelles primitives, car elles remplacent des schémas que la plupart des équipes codaient à la main : reprendre un agent de longue durée après un déploiement, faire une pause pour qu'un humain approuve un appel d'outil risqué, et obtenir des traces cohérentes entre tous les fournisseurs de modèles.
Ce guide parcourt les vraies nouveautés, avec du code, et la marche à suivre pour migrer.
Ce qui change depuis le SDK 6
Le SDK 6 a rendu generateText, streamText et les boucles d'appel d'outils ergonomiques. Le SDK 7 conserve ces API et ajoute par-dessus les préoccupations de production :
- Agents durables et reprenables qui survivent aux redémarrages et aux redéploiements
- Approbations d'outils avec des portes humaines signées en HMAC et protégées contre le rejeu
- Télémétrie unifiée enregistrée une seule fois et couvrant toutes les fonctions du SDK
- Voix et transcription stables, plus une voix temps réel expérimentale
- Délais granulaires, cloisonnement du contexte d'outils et une abstraction de bac à sable
Installez ou mettez à niveau avec votre gestionnaire de paquets préféré :
pnpm add ai@latest
# ou
npm install ai@latestLa plupart du code existant continue de fonctionner, et un codemod officiel prend en charge la partie mécanique de la migration (détaillée à la fin).
Des agents durables qui survivent à un déploiement
La fonctionnalité phare est l'exécution durable. Dans le SDK 6, un agent multi-étapes vivait entièrement en mémoire : si le processus redémarrait en cours d'exécution — un déploiement, un crash, un événement d'autoscaling — l'exécution était perdue. Le SDK 7 introduit une classe WorkflowAgent dont l'état est sauvegardé à chaque étape et qui peut reprendre exactement là où elle s'est arrêtée.
import { WorkflowAgent } from 'ai';
import { openai } from '@ai-sdk/openai';
const agent = new WorkflowAgent({
model: openai('gpt-5.6'),
instructions: 'Recherche le sujet et produis un résumé sourcé.',
tools: { search, fetchPage },
timeout: {
totalMs: 60000,
stepMs: 10000,
chunkMs: 2000,
toolMs: 5000,
},
});
const result = await agent.run({ prompt: 'Résume les changements du AI SDK 7' });Chaque étape enregistre son numéro, sa durée et son succès ou son échec, de sorte qu'une exécution reprise ne refait pas le travail déjà accompli. L'objet timeout est lui-même nouveau : vous pouvez borner indépendamment l'exécution totale, chaque étape, chaque fragment de flux et chaque appel d'outil — ce qui compte lorsqu'un outil lent ne doit pas être autorisé à bloquer tout un agent.
Approbations d'outils avec un humain dans la boucle
Les agents autonomes capables de dépenser de l'argent, d'envoyer des e-mails ou de supprimer des enregistrements ont besoin d'un frein. Le SDK 7 intègre les approbations directement dans la couche d'outils. Un outil peut exiger user-approval, ou vous pouvez fournir une fonction d'approbation personnalisée qui décide à chaque appel.
import { tool } from 'ai';
import { z } from 'zod';
const refundTool = tool({
description: 'Émettre un remboursement client',
inputSchema: z.object({ orderId: z.string(), amount: z.number() }),
needsApproval: 'user-approval',
execute: async ({ orderId, amount }) => issueRefund(orderId, amount),
});Lorsque le modèle appelle un outil protégé, l'agent se met en pause et émet une demande d'approbation au lieu de l'exécuter. Les approbations sont signées en HMAC, et les entrées sont revalidées à la reprise, ce qui empêche une approbation forgée ou périmée d'être rejouée sur une charge utile différente. Cette protection contre le rejeu fait la différence entre une démo et quelque chose que vous pouvez présenter à des clients.
Contexte d'outils : arrêtez de fuiter vos clés d'API
Un ajout discret mais important est le cloisonnement du contexte d'outils. Auparavant, les outils capturaient souvent des secrets depuis la portée du module environnant. Le SDK 7 permet de déclarer un contextSchema afin que chaque outil reçoive une configuration typée et isolée — les clés et les paramètres par requête restent hors de la surface visible du modèle et des autres outils.
const agent = new ToolLoopAgent({
model: openai('gpt-5.6'),
contextSchema: z.object({ apiKey: z.string(), userId: z.string() }),
tools: { crmLookup },
});Dans prepareStep(), ce contexte d'exécution est disponible sous forme de variables typées, ce qui vous permet de faire varier le comportement par requête sans propager de variables globales dans votre code. Pour les applications multi-locataires, c'est la manière la plus propre d'empêcher les identifiants d'un utilisateur d'atteindre l'exécution d'outil d'un autre.
La voix devient stable : synthèse et transcription
La branche 6.x traitait l'audio comme expérimental. Le SDK 7 promeut la synthèse vocale et la transcription au rang de fonctions de premier ordre et agnostiques au fournisseur.
import { generateSpeech, transcribe } from 'ai';
import { openai } from '@ai-sdk/openai';
// Du texte à la parole
const audio = await generateSpeech({
model: openai.speech('tts-1'),
text: 'Bienvenue sur le blog développeurs de Noqta.',
voice: 'alloy',
});
// De la parole au texte
const { text } = await transcribe({
model: openai.transcription('whisper-1'),
audio: audioBuffer,
});Comme le modèle n'est qu'un paramètre, changer de fournisseur — OpenAI, LMNT ou un autre prestataire vocal — devient une modification d'une ligne plutôt qu'une réécriture. Pour les produits multilingues, y compris les interfaces arabes et françaises courantes dans la région MENA, cette portabilité signifie que vous pouvez router chaque langue vers le fournisseur qui la transcrit le mieux sans reconstruire votre pipeline.
Voix temps réel et outils pilotés par le client
Au-delà de la voix par lot, le SDK 7 ajoute experimental_useRealtime() — un support temps réel agnostique au fournisseur via des sessions WebSocket directes dans le navigateur, avec transcription audio et appel d'outils piloté par le client. C'est la primitive derrière les agents vocaux full-duplex : l'utilisateur peut parler et être entendu en même temps, et le modèle peut invoquer des outils en pleine conversation sans lier votre interface au format d'événements d'un seul fournisseur. La passerelle d'IA (AI Gateway) expose la même capacité côté serveur via une session temps réel normalisée, ce qui vous laisse une seule interface entre les fournisseurs.
Une télémétrie enregistrée une seule fois
L'observabilité dans le SDK 6 consistait à câbler experimental_telemetry dans chaque appel. Le SDK 7 inverse cela : enregistrez la télémétrie une fois et elle couvre globalement toutes les fonctions du SDK.
import { registerTelemetry } from 'ai';
registerTelemetry({
// OpenTelemetry avec les conventions sémantiques GenAI
serviceName: 'noqta-agents',
});Elle parle OpenTelemetry avec les conventions sémantiques GenAI, de sorte que les traces affluent vers Datadog, Langfuse, Braintrust, Sentry, Langsmith et d'autres sans code répétitif par appel. Chaque fonction expose désormais un objet performance avec responseTimeMs, timeToFirstOutputMs et outputTokensPerSecond, ainsi que des rappels de cycle de vie onStart et onEnd cohérents dans tout le SDK. Pour quiconque a tenté de comparer la latence entre fournisseurs, disposer d'une forme de métrique unique et cohérente est une amélioration discrète mais réelle.
Migrer depuis le SDK 6
La migration est volontairement peu coûteuse. Lancez le codemod officiel et il réécrit pour vous les changements mécaniques :
npx @ai-sdk/codemod v7Il existe aussi une voie basée sur les compétences si vous utilisez un éditeur agentique :
npx skills add vercel/ai --skill migrate-ai-sdk-v6-to-v7Les évolutions architecturales à garder à l'esprit : les API sont plus agnostiques au fournisseur, le cloisonnement du contexte d'outils change la manière de transmettre les secrets, et la couche de durabilité est optionnelle via WorkflowAgent. Vos appels existants à generateText et streamText restent en grande partie inchangés. Lisez l'annonce du AI SDK 7 par Vercel et la documentation vocale pour la référence complète avant d'adopter la durabilité en production.
Faut-il migrer ?
Si vous prototypez, l'ergonomie du SDK 7 justifie à elle seule le passage. Si vous livrez des agents à de vrais utilisateurs, la durabilité, les approbations et la télémétrie unifiée comblent précisément les lacunes qui forçaient auparavant les équipes à bâtir une infrastructure sur mesure autour du SDK. La couche vocale est un bonus qui met les agents conversationnels à portée de quelques lignes de code.
Pour approfondir la construction d'agents de production en TypeScript, consultez nos guides sur Vercel AI SDK 6, l'exécution durable pour les agents IA et l'observabilité des LLM en production.
Vous construisez des produits propulsés par l'IA pour le marché MENA ? Noqta aide les équipes à concevoir, construire et livrer des applications d'IA prêtes pour la production. Contactez-nous.