跳至主要內容

ProcessorProvider

ProcessorProvider 是套件用來向 MastraEditor 註冊可設定處理器的介面。Processor Provider 有兩個用途:

  1. **探索:**UI 使用 infoconfigSchemaavailablePhases 呈現設定表單。
  2. **執行階段:**Editor 會在 Agent 具現化期間呼叫 createProcessor(config),依照已儲存的設定建立處理器執行個體。

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 的處理器支援的階段。可包含下列一或多個值:'processInput''processInputStep''processOutputStream''processOutputResult''processOutputStep'

createProcessor:

(config: Record<string, unknown>) => Processor
從驗證過的設定建立 Processor 執行個體。在 Agent 具現化期間呼叫,以將已儲存的處理器設定解析為可用的執行個體。

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