ProcessorProvider
ProcessorProvider 是包用来向 MastraEditor 注册可配置 Processor 的接口。Processor Provider 有两个用途:
- 发现: UI 使用
info、configSchema和availablePhases渲染配置表单。 - 运行时: 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 schema。UI 使用它渲染表单。验证后的配置对象会传递给
createProcessor()。availablePhases:
ProcessorPhase[]
此 Provider 的 Processor 所支持的阶段。可为
'processInput'、'processInputStep'、'processOutputStream'、'processOutputResult'、'processOutputStep' 中的一个或多个。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 })
},
}
相关内容相关内容的直接链接
- MastraEditor 类:Provider 注册表。