handleChatStream()
Gestionnaire indépendant de tout framework permettant de diffuser en streaming les conversations d'un Agent dans un format compatible avec AI SDK. Utilisez cette fonction directement lorsque vous devez gérer le streaming d'une conversation en dehors de Hono ou de la fonctionnalité apiRoutes de Mastra.
handleChatStream() renvoie un ReadableStream que vous pouvez encapsuler avec createUIMessageStreamResponse().
handleChatStream() conserve le comportement existant par défaut d'AI SDK v5. Si votre application est typée pour AI SDK v6, transmettez version: 'v6'.
Utilisez chatRoute() si vous souhaitez créer une route de conversation dans un serveur Mastra.
Sortie structurée dans les flux d'interface utilisateurLien direct vers Sortie structurée dans les flux d'interface utilisateur
Lorsque vous transmettez structuredOutput à l'exécution sous-jacente de l'Agent, l'objet de sortie structurée final est émis dans le flux d'interface utilisateur compatible avec AI SDK sous la forme d'une partie de données personnalisée :
{
"type": "data-structured-output",
"data": {
"object": {}
}
}
Le champ object contient la valeur complète de votre sortie structurée. Mastra émet cet événement uniquement pour l'objet de sortie structurée final. Les segments partiels de la sortie structurée ne sont pas exposés dans le flux d'interface utilisateur.
Lisez cet événement au moyen de la gestion des données personnalisées d'AI SDK UI, par exemple avec onData, ou affichez-le à partir des parties de données du message.
Exemple d'utilisationLien direct vers Exemple d'utilisation
Exemple avec l'App Router de Next.js :
import { handleChatStream } from '@mastra/ai-sdk'
import { createUIMessageStreamResponse } from 'ai'
import { mastra } from '@/src/mastra'
export async function POST(req: Request) {
const params = await req.json()
const stream = await handleChatStream({
mastra,
agentId: 'weatherAgent',
params,
messageMetadata: () => ({ createdAt: new Date().toISOString() }),
})
return createUIMessageStreamResponse({ stream })
}
ParamètresLien direct vers Paramètres
version?:
'v5' pour conserver le comportement par défaut existant. Transmettez 'v6' lorsque votre application est typée pour les fonctions utilitaires de réponse d'AI SDK v6.mastra:
agentId:
agentVersion?:
{ versionId: '<id>' } pour cibler une version exacte, ou { status: 'draft' } / { status: 'published' } pour effectuer la résolution selon le statut. Nécessite la configuration de l'Editor.params:
params.messages:
params.resumeData?:
runId.params.runId?:
resumeData est fourni.params.providerOptions?:
{ openai: { reasoningEffort: "high" } }). Elles sont fusionnées avec defaultOptions.providerOptions, les valeurs de params étant prioritaires.