Aller au contenu principal

ProcessorProvider

ProcessorProvider est l’interface qu’un package implémente pour enregistrer un Processor configurable auprès de MastraEditor. Les fournisseurs de Processor remplissent deux fonctions :

  1. Découverte : l’interface utilisateur emploie info, configSchema et availablePhases pour afficher les formulaires de configuration.
  2. Exécution : l’Editor appelle createProcessor(config) lors de l’hydratation de l’Agent afin d’instancier les Processors à partir de la configuration enregistrée.

Les fournisseurs sont transmis au moyen de MastraEditorConfig.processorProviders.

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

src/mastra/index.ts
import { MastraEditor } from '@mastra/editor'
import { moderationProcessorProvider } from '@mastra/processors/moderation'

new MastraEditor({
processorProviders: {
moderation: moderationProcessorProvider,
},
})

Propriétés
Lien direct vers Propriétés

info:

ProcessorProviderInfo
Métadonnées relatives au fournisseur.

id:

string
Identifiant unique (par exemple, "moderation" ou "token-limiter").

name:

string
Nom lisible.

description?:

string
Courte description du fournisseur.

configSchema:

ZodSchema
Schéma Zod décrivant la configuration acceptée par ce fournisseur. Utilisé par l’interface utilisateur pour afficher un formulaire. L’objet de configuration validé est transmis à createProcessor().

availablePhases:

ProcessorPhase[]
Phases prises en charge par les Processors de ce fournisseur. Une ou plusieurs parmi 'processInput', 'processInputStep', 'processOutputStream', 'processOutputResult' et 'processOutputStep'.

createProcessor:

(config: Record<string, unknown>) => Processor
Crée une instance de Processor à partir de la configuration validée. Cette méthode est appelée lors de l’hydratation de l’Agent afin de convertir les configurations de Processor enregistrées en instances actives.

Implémenter un fournisseur
Lien direct vers Implémenter un fournisseur

src/providers/my-processor.ts
import type { ProcessorProvider } from '@mastra/core/processor-provider'
import { z } from 'zod'
import { MyProcessor } from './my-processor-impl'

export const myProcessorProvider: ProcessorProvider = {
info: {
id: 'my-processor',
name: 'My Processor',
description: 'Filters output for sensitive content.',
},
configSchema: z.object({
threshold: z.number().min(0).max(1),
}),
availablePhases: ['processOutputStream', 'processOutputResult'],
createProcessor(config) {
return new MyProcessor(config as { threshold: number })
},
}