ChunkType
Le type ChunkType définit le format Mastra des fragments de flux pouvant être émis pendant les réponses diffusées des Agents.
Propriétés de baseLien direct vers Propriétés de base
Tous les fragments comprennent les propriétés de base suivantes :
type:
runId:
from:
AGENT:
USER:
SYSTEM:
WORKFLOW:
Fragments de texteLien direct vers Fragments de texte
text-startLien direct vers text-start
Signale le début de la génération de texte.
type:
payload:
id:
providerMetadata?:
text-deltaLien direct vers text-delta
Contenu textuel incrémentiel pendant la génération.
type:
payload:
id:
text:
providerMetadata?:
text-endLien direct vers text-end
Signale la fin de la génération de texte.
type:
payload:
id:
providerMetadata?:
Fragments de raisonnementLien direct vers Fragments de raisonnement
reasoning-startLien direct vers reasoning-start
Signale le début de la génération du raisonnement pour les modèles qui prennent en charge cette fonctionnalité.
type:
payload:
id:
signature?:
providerMetadata?:
reasoning-deltaLien direct vers reasoning-delta
Texte de raisonnement incrémentiel pendant la génération.
type:
payload:
id:
text:
providerMetadata?:
reasoning-endLien direct vers reasoning-end
Signale la fin de la génération du raisonnement.
type:
payload:
id:
signature?:
providerMetadata?:
reasoning-signatureLien direct vers reasoning-signature
Contient la signature de raisonnement des modèles prenant en charge le raisonnement avancé, tels que la série o1 d’OpenAI. La signature représente des métadonnées sur le processus de raisonnement interne du modèle, comme le niveau d’effort ou l’approche de raisonnement, mais pas le contenu du raisonnement lui-même.
type:
payload:
id:
signature:
providerMetadata?:
Fragments de ToolLien direct vers Fragments de Tool
tool-callLien direct vers tool-call
Un Tool est en cours d’appel.
type:
payload:
toolCallId:
toolName:
args?:
providerExecuted?:
output?:
providerMetadata?:
tool-resultLien direct vers tool-result
Résultat de l’exécution d’un Tool.
type:
payload:
toolCallId:
toolName:
result:
isError?:
providerExecuted?:
args?:
providerMetadata?:
tool-call-input-streaming-startLien direct vers tool-call-input-streaming-start
Signale le début de la diffusion des arguments de l’appel du Tool.
type:
payload:
toolCallId:
toolName:
providerExecuted?:
dynamic?:
providerMetadata?:
tool-call-deltaLien direct vers tool-call-delta
Arguments incrémentiels de l’appel du Tool pendant la diffusion.
type:
payload:
argsTextDelta:
toolCallId:
toolName?:
providerMetadata?:
tool-call-input-streaming-endLien direct vers tool-call-input-streaming-end
Signale la fin de la diffusion des arguments de l’appel du Tool.
type:
payload:
toolCallId:
providerMetadata?:
tool-errorLien direct vers tool-error
Une erreur est survenue pendant l’exécution du Tool.
type:
payload:
id?:
toolCallId:
toolName:
args?:
error:
providerExecuted?:
providerMetadata?:
Fragments de source et de fichierLien direct vers Fragments de source et de fichier
sourceLien direct vers source
Contient les informations sur la source du contenu.
type:
payload:
id:
sourceType:
title:
mimeType?:
filename?:
url?:
providerMetadata?:
fileLien direct vers file
Contient les données du fichier.
type:
payload:
data:
base64?:
mimeType:
providerMetadata?:
Fragments de contrôleLien direct vers Fragments de contrôle
startLien direct vers start
Signale le début de la diffusion.
type:
payload:
[key: string]:
step-startLien direct vers step-start
Signale le début d’une étape de traitement.
type:
payload:
messageId?:
request:
warnings?:
step-finishLien direct vers step-finish
Signale la fin d’une étape de traitement.
type:
payload:
id?:
messageId?:
stepResult:
output:
metadata:
totalUsage?:
response?:
providerMetadata?:
rawLien direct vers raw
Contient les données brutes provenant du Provider.
type:
payload:
[key: string]:
finishLien direct vers finish
Le flux s’est terminé correctement.
type:
payload:
stepResult:
output:
metadata:
messages:
response:
errorLien direct vers error
Une erreur est survenue pendant la diffusion.
type:
payload:
error:
abortLien direct vers abort
Le flux a été interrompu.
type:
payload:
[key: string]:
Fragments d’objet et de sortieLien direct vers Fragments d’objet et de sortie
objectLien direct vers object
Émis lors de l’utilisation d’une génération de sortie avec des schémas définis. Contient des données structurées partielles ou complètes conformes au schéma Zod ou JSON indiqué. Ce fragment est généralement ignoré dans certains contextes d’exécution et sert à diffuser la génération d’objets structurés.
type:
object:
tool-outputLien direct vers tool-output
Contient la sortie de l’exécution d’un Agent ou d’un Workflow, notamment pour suivre les statistiques d’utilisation et les événements de fin. Encapsule souvent d’autres types de fragments, tels que les fragments finish, afin de fournir un contexte d’exécution imbriqué.
type:
payload:
output:
step-outputLien direct vers step-output
Contient la sortie de l’exécution d’une étape de Workflow, principalement utilisée pour suivre l’utilisation et les événements de fin d’étape. Similaire à tool-output, mais propre aux différentes étapes du Workflow.
type:
payload:
output:
Fragments de tâche en arrière-planLien direct vers Fragments de tâche en arrière-plan
Émis lorsqu’un appel de Tool est envoyé comme tâche en arrière-plan et que streamUntilIdle() est utilisé.
background-task-startedLien direct vers background-task-started
Émis lorsqu’un appel de Tool est mis en file d’attente comme tâche en arrière-plan et reçoit un taskId.
type:
payload:
taskId:
toolName:
toolCallId:
background-task-runningLien direct vers background-task-running
Émis lorsqu’un Worker prend en charge la tâche et que l’exécution commence.
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
startedAt:
args:
background-task-progressLien direct vers background-task-progress
Instantané périodique du nombre de tâches en arrière-plan actuellement en cours d’exécution dans l’Agent.
type:
payload:
taskIds:
runningCount:
elapsedMs:
background-task-outputLien direct vers background-task-output
Fragment de sortie diffusé par la fonction execute de la tâche. Encapsule un fragment interne tool-output.
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
payload:
background-task-completedLien direct vers background-task-completed
Émis lorsque la tâche se termine correctement. Déclenche un tour de poursuite lorsqu’il est consommé par Agent.streamUntilIdle().
type:
payload:
taskId:
toolName:
toolCallId:
agentId:
runId:
result:
completedAt:
isError?:
background-task-failedLien direct vers background-task-failed
Émis lorsque la tâche lève une erreur ou expire. Déclenche un tour de poursuite lorsqu’il est consommé par Agent.streamUntilIdle().
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
error:
completedAt:
background-task-suspendedLien direct vers background-task-suspended
Émis lorsqu’un Tool appelle suspend() depuis son exécution en arrière-plan. Suspend l’exécution du Workflow de la tâche tout en persistant son instantané. Reprenez-la avec mastra.backgroundTaskManager.resume(taskId, resumeData).
Lorsqu’il est consommé par Agent.streamUntilIdle(), ce fragment retire la tâche de l’ensemble d’attente de la boucle sans mettre de poursuite en file d’attente. La réponse de l’Agent se termine, puis l’achèvement ultérieur de la tâche reprise est injecté dans la liste des messages pour le prochain tour de l’utilisateur.
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
suspendData?:
suspend(data)background-task-resumedLien direct vers background-task-resumed
Émis lorsqu’une tâche suspendue est reprise via mastra.backgroundTaskManager.resume(taskId, resumeData). La tâche repasse à l’état running et la fonction execute du Tool redémarre avec resumeData renseigné.
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
startedAt:
args:
background-task-cancelledLien direct vers background-task-cancelled
Émis lorsque la tâche est annulée avant sa fin. Déclenche un tour de poursuite lorsqu’il est consommé par Agent.streamUntilIdle().
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
completedAt:
Métadonnées et fragments spéciauxLien direct vers Métadonnées et fragments spéciaux
response-metadataLien direct vers response-metadata
Contient des métadonnées sur la réponse du Provider de LLM. Émis par certains Providers après la génération du texte pour fournir un contexte supplémentaire, comme l’ID du modèle, les horodatages et les en-têtes de réponse. Ce fragment est utilisé en interne pour suivre l’état et n’affecte pas l’assemblage des messages.
type:
payload:
signature?:
[key: string]:
watchLien direct vers watch
Contient des données de surveillance et d’observabilité provenant de l’exécution de l’Agent. Peut inclure des informations sur l’état du Workflow, la progression de l’exécution ou d’autres détails du runtime selon le contexte dans lequel stream() est utilisé.
type:
payload:
workflowState?:
eventTimestamp?:
[key: string]:
goalLien direct vers goal
Émis à chaque évaluation d’un objectif de l’Agent. Les consommateurs l’utilisent pour afficher la progression du juge et le résultat pendant l’exécution. Un objectif sans modèle de juge configuré ne produit aucun fragment goal.
type:
payload:
objective:
iteration:
maxRuns:
passed:
status:
results:
reason?:
duration:
timedOut:
maxRunsReached:
suppressFeedback:
tripwireLien direct vers tripwire
Émis lorsque le flux est interrompu de force parce qu’un Processor a bloqué le contenu. Il agit comme un mécanisme de sécurité empêchant la diffusion de contenu nuisible ou inapproprié. Le payload indique pourquoi le contenu a été bloqué et si une nouvelle tentative a été demandée.
type:
payload:
reason:
retry?:
metadata?:
processorId?:
Exemple d’utilisationLien direct vers Exemple d’utilisation
const stream = await agent.stream('Hello')
for await (const chunk of stream.fullStream) {
switch (chunk.type) {
case 'text-delta':
console.log('Text:', chunk.payload.text)
break
case 'tool-call':
console.log('Calling tool:', chunk.payload.toolName)
break
case 'tool-result':
console.log('Tool result:', chunk.payload.result)
break
case 'reasoning-delta':
console.log('Reasoning:', chunk.payload.text)
break
case 'finish':
console.log('Finished:', chunk.payload.stepResult.reason)
console.log('Usage:', chunk.payload.output.usage)
break
case 'error':
console.error('Error:', chunk.payload.error)
break
}
}
Types associésLien direct vers Types associés
- .stream() : méthode qui renvoie des flux émettant ces fragments
- MastraModelOutput : objet de flux qui émet ces fragments
- workflow.stream() : méthode qui renvoie des flux émettant ces fragments pour les Workflows