メインコンテンツへ移動

ProcessorProvider

ProcessorProvider は、設定可能な Processor を MastraEditor に登録するためにパッケージが実装するインターフェースです。Processor Provider には、次の2つの役割があります。

  1. 検出: UI は infoconfigSchemaavailablePhases を使用して設定フォームをレンダリングします。
  2. ランタイム: Editor は Agent のハイドレーション時に createProcessor(config) を呼び出し、保存された設定から Processor をインスタンス化します。

Provider は MastraEditorConfig.processorProviders を介して指定します。

使用例
使用例への直接リンク

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

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

プロパティ
プロパティへの直接リンク

info:

ProcessorProviderInfo
Provider に関するメタデータ。

id:

string
一意の識別子(例: "moderation""token-limiter")。

name:

string
人が読みやすい名前。

description?:

string
Provider の簡潔な説明。

configSchema:

ZodSchema
この Provider が受け入れる設定を記述する Zod スキーマ。UI がフォームをレンダリングするために使用します。検証済みの設定オブジェクトは createProcessor() に渡されます。

availablePhases:

ProcessorPhase[]
この Provider の Processor がサポートするフェーズ。'processInput''processInputStep''processOutputStream''processOutputResult''processOutputStep' のうち1つ以上。

createProcessor:

(config: Record<string, unknown>) => Processor
検証済みの設定から Processor インスタンスを作成します。Agent のハイドレーション時に呼び出され、保存された Processor 設定を実際のインスタンスに解決します。

Provider を実装する
Provider を実装するへの直接リンク

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 })
},
}