ProcessorProvider
ProcessorProvider 是套件用來向 MastraEditor 註冊可配置 processor 的介面。Processor Provider 有兩個用途:
- 探索: UI 使用
info、configSchema及availablePhases呈現配置表單。 - 執行階段: Editor 在 Agent hydrate 期間呼叫
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 的 metadata。
id:
string
唯一標識符(例如
"moderation"、"token-limiter")。name:
string
方便使用者閱讀的名稱。
description?:
string
Provider 的簡短描述。
configSchema:
ZodSchema
描述此 Provider 接受的配置之 Zod schema。UI 會使用它呈現表單。經驗證的配置物件會傳給
createProcessor()。availablePhases:
ProcessorPhase[]
此 Provider 的 processor 支援的階段。可包含一個或多個
'processInput'、'processInputStep'、'processOutputStream'、'processOutputResult'、'processOutputStep'。createProcessor:
(config: Record<string, unknown>) => Processor
從經驗證的配置建立
Processor 實例。在 Agent hydrate 期間呼叫,以將已儲存的 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 })
},
}
相關內容相關內容 的直接連結
- MastraEditor 類別:Provider registry。