跳到主要内容

ProcessorProvider

ProcessorProvider 是包用来向 MastraEditor 注册可配置 Processor 的接口。Processor Provider 有两个用途:

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