> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Agent.streamLegacy() (ancienne API) > **Attention:** **Obsolète** : cette méthode est obsolète et fonctionne uniquement avec les modèles V1. Pour les modèles V2, utilisez plutôt la nouvelle méthode [`.stream()`](https://mastra.zisheng.pro/fr/reference/streaming/agents/stream). Consultez le [guide de migration](https://mastra.zisheng.pro/fr/guides/migrations/vnext-to-standard-apis) pour savoir comment effectuer la mise à niveau. La méthode `.streamLegacy()` est l’ancienne version de l’API de streaming des Agents. Elle permet de diffuser en temps réel les réponses des Agents utilisant des modèles V1. Cette méthode accepte des messages et des options de streaming facultatives. ## Exemple d’utilisation ```typescript await agent.streamLegacy('message for agent') ``` ## Paramètres **messages** (`string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[]`): Messages à envoyer à l’Agent. Il peut s’agir d’une chaîne unique, d’un tableau de chaînes ou d’objets de message structurés. **options** (`AgentStreamOptions`): Configuration facultative du processus de streaming. **options.abortSignal** (`AbortSignal`): Objet de signal permettant d’interrompre l’exécution de l’Agent. Lorsque le signal est interrompu, toutes les opérations en cours prennent fin. **options.context** (`CoreMessage[]`): Messages de contexte supplémentaires à fournir à l’Agent. **options.experimental\_output** (`Zod schema | JsonSchema7`): Active la génération d’une sortie structurée en parallèle du texte et des appels d’outils. Le modèle génère des réponses conformes au schéma fourni. **options.instructions** (`string`): Instructions personnalisées qui remplacent les instructions par défaut de l’Agent pour cette génération. Elles permettent de modifier dynamiquement le comportement de l’Agent sans créer une nouvelle instance. **options.output** (`Zod schema | JsonSchema7`): Définit la structure attendue de la sortie. Peut être un objet JSON Schema ou un schéma Zod. **options.memory** (`object`): Configuration de Memory. Il s’agit de la méthode recommandée pour gérer Memory. **options.memory.thread** (`string | { id: string; metadata?: Record, title?: string }`): Thread de conversation, sous forme d’identifiant chaîne ou d’objet contenant un id et des metadata facultatives. **options.memory.resource** (`string`): Identifiant de l’utilisateur ou de la ressource associé au thread. **options.memory.options** (`MemoryConfig`): Configuration du comportement de Memory, notamment l’historique des messages et le rappel sémantique. **options.maxSteps** (`number`): Nombre maximal d’étapes d’exécution autorisées. **options.maxRetries** (`number`): Nombre maximal de nouvelles tentatives. Définissez cette valeur sur 0 pour les désactiver. **options.memoryOptions** (`MemoryConfig`): \*\*Obsolète.\*\* Utilisez plutôt memory.options. Options de configuration pour la gestion de Memory. **options.memoryOptions.lastMessages** (`number | false`): Nombre de messages récents à inclure dans le contexte, ou false pour désactiver cette fonction. **options.memoryOptions.semanticRecall** (`boolean | { topK: number; messageRange: number | { before: number; after: number }; scope?: 'thread' | 'resource' }`): Active le rappel sémantique afin de retrouver des messages antérieurs pertinents. Peut être un booléen ou une configuration détaillée. **options.memoryOptions.workingMemory** (`WorkingMemory`): Configuration de la fonctionnalité de mémoire de travail. **options.memoryOptions.threads** (`{ generateTitle?: boolean | { model: DynamicArgument; instructions?: DynamicArgument } }`): Configuration propre au thread, notamment la génération automatique du titre. **options.onFinish** (`StreamTextOnFinishCallback | StreamObjectOnFinishCallback`): Fonction de rappel appelée à la fin du streaming. Elle reçoit le résultat final. **options.onStepFinish** (`StreamTextOnStepFinishCallback | never`): Fonction de rappel appelée après chaque étape d’exécution. Elle reçoit les détails de l’étape sous forme de chaîne JSON. Indisponible pour une sortie structurée. **options.resourceId** (`string`): \*\*Obsolète.\*\* Utilisez plutôt memory.resource. Identifiant de l’utilisateur ou de la ressource qui interagit avec l’Agent. Obligatoire si threadId est fourni. **options.telemetry** (`TelemetrySettings`): Paramètres de collecte des données de télémétrie pendant le streaming. **options.telemetry.isEnabled** (`boolean`): Active ou désactive la télémétrie. Elle est désactivée par défaut tant que la fonctionnalité est expérimentale. **options.telemetry.recordInputs** (`boolean`): Active ou désactive l’enregistrement des entrées. Activé par défaut. Vous pouvez le désactiver afin de ne pas enregistrer d’informations sensibles. **options.telemetry.recordOutputs** (`boolean`): Active ou désactive l’enregistrement des sorties. Activé par défaut. Vous pouvez le désactiver afin de ne pas enregistrer d’informations sensibles. **options.telemetry.functionId** (`string`): Identifiant de cette fonction. Sert à regrouper les données de télémétrie par fonction. **options.temperature** (`number`): Contrôle le caractère aléatoire de la sortie du modèle. Des valeurs élevées (par ex. 0,8) rendent la sortie plus aléatoire, tandis que des valeurs faibles (par ex. 0,2) la rendent plus ciblée et déterministe. **options.threadId** (`string`): \*\*Obsolète.\*\* Utilisez plutôt memory.thread. Identifiant du thread de conversation. Permet de conserver le contexte entre plusieurs interactions. Obligatoire si resourceId est fourni. **options.toolChoice** (`'auto' | 'none' | 'required' | { type: 'tool'; toolName: string }`): Contrôle la manière dont l’Agent utilise les outils pendant le streaming. **options.toolChoice.'auto'** (`string`): Laisse le modèle décider s’il doit utiliser des outils (valeur par défaut). **options.toolChoice.'none'** (`string`): N’utilise aucun outil. **options.toolChoice.'required'** (`string`): Impose au modèle d’utiliser au moins un outil. **options.toolChoice.{ type: 'tool'; toolName: string }** (`object`): Impose au modèle d’utiliser un outil précis, désigné par son nom. **options.toolsets** (`ToolsetsInput`): Ensembles d’outils supplémentaires à mettre à la disposition de l’Agent pendant le streaming. **options.clientTools** (`ToolsInput`): Outils exécutés côté « client » de la requête. Leur définition ne comporte pas de fonction execute. **options.hooks** (`ToolHooks`): Hooks propres à l’exécution, exécutés avant et après les appels d’outils. Pour cette exécution, ils remplacent les hooks correspondants définis au niveau de l’Agent. beforeToolCall peut renvoyer { proceed: false, output } afin d’ignorer l’appel d’outil. **options.savePerStep** (`boolean`): Enregistre progressivement les messages après chaque étape terminée du stream (valeur par défaut : false). **options.providerOptions** (`Record>`): Options supplémentaires propres au Provider, transmises au Provider LLM sous-jacent. La structure est { providerName: { optionKey: value } }. Par exemple : { openai: { reasoningEffort: 'high' }, anthropic: { maxTokens: 1000 } }. **options.providerOptions.openai** (`Record`): Options propres à OpenAI. Exemple : { reasoningEffort: 'high' } **options.providerOptions.anthropic** (`Record`): Options propres à Anthropic. Exemple : { maxTokens: 1000 } **options.providerOptions.google** (`Record`): Options propres à Google. Exemple : { safetySettings: \[...] } **options.providerOptions.\[providerName]** (`Record`): Autres options propres au Provider. La clé correspond au nom du Provider et la valeur est un enregistrement de ses options spécifiques. **options.runId** (`string`): Identifiant unique de cette exécution de génération, utile pour le suivi et le débogage. **options.requestContext** (`RequestContext`): Request Context destiné à l’injection de dépendances et aux informations contextuelles. **options.maxTokens** (`number`): Nombre maximal de tokens à générer. **options.topP** (`number`): Échantillonnage par noyau. Cette valeur est comprise entre 0 et 1. Il est recommandé de définir soit temperature, soit topP, mais pas les deux. **options.topK** (`number`): Pour chaque token suivant, échantillonne uniquement parmi les K meilleures options. Permet d’éliminer les réponses de faible probabilité situées dans la « longue traîne ». **options.presencePenalty** (`number`): Paramètre de pénalité de présence. Il influe sur la probabilité que le modèle répète des informations déjà présentes dans le prompt. Nombre compris entre -1 (répétition accrue) et 1 (pénalité maximale, répétition réduite). **options.frequencyPenalty** (`number`): Paramètre de pénalité de fréquence. Il influe sur la probabilité que le modèle réutilise plusieurs fois les mêmes mots ou expressions. Nombre compris entre -1 (répétition accrue) et 1 (pénalité maximale, répétition réduite). **options.stopSequences** (`string[]`): Séquences d’arrêt. Si elles sont définies, le modèle cesse de générer du texte dès que l’une d’elles est produite. **options.seed** (`number`): Graine (entier) à utiliser pour l’échantillonnage aléatoire. Si elle est définie et prise en charge par le modèle, les appels produisent des résultats déterministes. **options.headers** (`Record`): En-têtes HTTP supplémentaires à envoyer avec la requête. S’applique uniquement aux Providers reposant sur HTTP. ## Valeur renvoyée **textStream** (`AsyncGenerator`): Générateur asynchrone qui produit les fragments de texte à mesure qu’ils deviennent disponibles. **fullStream** (`Promise`): Promise résolue avec un ReadableStream contenant la réponse complète. **text** (`Promise`): Promise résolue avec la réponse textuelle complète. **usage** (`Promise<{ totalTokens: number; promptTokens: number; completionTokens: number }>`): Promise résolue avec les informations d’utilisation des tokens. **finishReason** (`Promise`): Promise résolue avec la raison pour laquelle le stream s’est terminé. **toolCalls** (`Promise>`): Promise résolue avec les appels d’outils effectués pendant le streaming. **toolCalls.toolName** (`string`): Nom de l’outil appelé. **toolCalls.args** (`any`): Arguments transmis à l’outil. ## Exemple d’utilisation étendu ```typescript await agent.streamLegacy('message for agent', { temperature: 0.7, maxSteps: 3, memory: { thread: 'user-123', resource: 'test-app', }, toolChoice: 'auto', }) ``` ## Migration vers la nouvelle API > **Info:** La nouvelle méthode `.stream()` offre des fonctionnalités enrichies, notamment la compatibilité avec AI SDK v5+, une meilleure gestion des sorties structurées et un système de fonctions de rappel amélioré. Consultez le [guide de migration](https://mastra.zisheng.pro/fr/guides/migrations/vnext-to-standard-apis) pour obtenir des instructions détaillées. ### Exemple de migration rapide #### Avant (ancienne API) ```typescript const result = await agent.streamLegacy('message', { temperature: 0.7, maxSteps: 3, onFinish: result => console.log(result), }) ``` #### Après (nouvelle API) ```typescript const result = await agent.stream('message', { modelSettings: { temperature: 0.7, }, maxSteps: 3, onFinish: result => console.log(result), }) ``` ## Voir aussi - [Guide de migration](https://mastra.zisheng.pro/fr/guides/migrations/vnext-to-standard-apis) - [Nouvelle méthode .stream()](https://mastra.zisheng.pro/fr/reference/streaming/agents/stream) - [Génération de réponses](https://mastra.zisheng.pro/fr/docs/agents/overview) - [Streaming des réponses](https://mastra.zisheng.pro/fr/docs/agents/overview)