Aller au contenu principal

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’utilisation
Lien direct vers Exemple d’utilisation

import { BatchPartsProcessor } from '@mastra/core/processors'

const processor = new BatchPartsProcessor({
batchSize: 5,
maxWaitTime: 100,
emitOnNonText: true,
})

Paramètres du constructeur
Lien 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ée
Lien 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ée
Lien 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,
}),
],
})