BatchPartsProcessor
BatchPartsProcessor est un Processor de sortie qui regroupe plusieurs segments de flux afin de réduire la fréquence des émissions pendant le streaming. Ce Processor permet de réduire la surcharge réseau, d’améliorer l’expérience utilisateur en regroupant les petits fragments de texte et d’optimiser les performances du streaming en contrôlant le moment où les segments sont émis vers le client.
Exemple d’utilisationLien direct vers Exemple d’utilisation
import { BatchPartsProcessor } from '@mastra/core/processors'
const processor = new BatchPartsProcessor({
batchSize: 5,
maxWaitTime: 100,
emitOnNonText: true,
})
Paramètres du constructeurLien direct vers Paramètres du constructeur
options?:
Options
Options de configuration du regroupement des segments de flux
Options
batchSize?:
number
Nombre de segments à regrouper avant leur émission
maxWaitTime?:
number
Durée maximale d’attente avant l’émission d’un lot, en millisecondes. Si elle est définie, le lot actuel est émis même s’il n’a pas atteint batchSize
emitOnNonText?:
boolean
Indique s’il faut émettre immédiatement lorsqu’un segment non textuel est rencontré
Valeur renvoyéeLien direct vers Valeur renvoyée
id:
string
Identifiant du Processor défini sur 'batch-parts'
name?:
string
Nom d’affichage facultatif du Processor
processOutputStream:
(args: { part: ChunkType; streamParts: ChunkType[]; state: Record<string, any>; abort: (reason?: string) => never }) => Promise<ChunkType | null>
Traite les segments de sortie en streaming afin de les regrouper
flush:
(state?: BatchPartsState) => ChunkType | null
Force l’émission des segments regroupés restants à la fin du flux
Exemple d’utilisation avancéeLien direct vers Exemple d’utilisation avancée
src/mastra/agents/batched-agent.ts
import { Agent } from '@mastra/core/agent'
import { BatchPartsProcessor } from '@mastra/core/processors'
export const agent = new Agent({
id: 'batched-agent',
name: 'batched-agent',
instructions: 'You are a helpful assistant',
model: 'openai/gpt-5.6-sol',
outputProcessors: [
new BatchPartsProcessor({
batchSize: 5,
maxWaitTime: 100,
emitOnNonText: true,
}),
],
})