跳至主要內容

ProcessorProvider

ProcessorProvider 是套件用來向 MastraEditor 註冊可配置 processor 的介面。Processor Provider 有兩個用途:

  1. 探索: UI 使用 infoconfigSchemaavailablePhases 呈現配置表單。
  2. 執行階段: 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 })
},
}