본문으로 건너뛰기

프로세서 공급자

ProcessorProvider구성 가능 프로세서를 등록하기 위해 패키지가 구현하는 인터페이스입니다.MastraEditor. 프로세서 공급자는 두 가지 목적을 수행합니다.

  1. 검색: UI는 info, configSchema, availablePhases를 사용해 구성 양식을 렌더링합니다.
  2. 런타임: 편집기는 Agent 하이드레이션 중 createProcessor(config)를 호출하여 저장된 구성으로 프로세서를 인스턴스화합니다. 공급자는 다음을 통해 공급됩니다.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 스키마입니다. UI에서 양식을 렌더링하는 데 사용됩니다. 검증된 구성 객체는 createProcessor()에 전달됩니다.

availablePhases:

ProcessorPhase[]
이 Provider의 프로세서가 지원하는 단계입니다. 'processInput', 'processInputStep', 'processOutputStream', 'processOutputResult', 'processOutputStep' 중 하나 이상입니다.

createProcessor:

(config: Record<string, unknown>) => Processor
검증된 구성으로 Processor 인스턴스를 생성합니다. Agent 하이드레이션 중 호출되어 저장된 프로세서 구성을 실제 인스턴스로 해석합니다.

공급자 구현
공급자 구현에 대한 직접 링크

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