跳到主要内容

Processors

File-based Agent 从自身的 processors/ 目录发现处理器。本页介绍基于文件的约定;有关内置处理器、自定义处理器、流式行为和高级模式,请参阅处理器指南。

processors/input/ 下的文件会在消息到达模型之前运行。processors/output/ 下的文件会在模型响应后运行。每个文件默认导出一个 Processor,文件名则成为其发现键。

快速开始
快速开始的直接链接

将处理器文件放在 processors/input/ 下,即可添加输入处理器:

src/mastra/agents/weather/processors/input/pii.ts
import { PIIDetector } from '@mastra/core/processors'

export default new PIIDetector({
strategy: 'block',
})

该处理器会在用户消息到达模型之前运行。

添加输出处理器
添加输出处理器的直接链接

输出处理器适合在返回模型响应之前对其进行筛选或转换。此示例会从最终响应中隐去 PII。

src/mastra/agents/weather/processors/output/redact.ts
import { PIIDetector } from '@mastra/core/processors'

export default new PIIDetector({
strategy: 'redact',
})

顺序
顺序的直接链接

发现的处理器会添加到 config.ts 中定义的所有处理器之后。这意味着 config 中的处理器会先运行。

Ordering
config.inputProcessors → processors/input/* → model
model → config.outputProcessors → processors/output/* → response

如果 config.inputProcessorsconfig.outputProcessors 是函数,Mastra 会忽略发现的相应类型处理器并发出警告,因为值为函数的处理器无法进行静态合并。

与 config 的优先级
与 config 的优先级的直接链接

对于需要在运行时创建或由多个 Agent 共享的处理器,请使用 config.ts。对于应当与 Agent 一同审查的静态、Agent 专属处理器,请使用基于文件的处理器。

优先级如下:

  1. 值为函数的 config.inputProcessorsconfig.outputProcessors
  2. 值为数组的 config.inputProcessorsconfig.outputProcessors
  3. processors/input/processors/output/ 下发现的文件

有关完整接口,请查看 Processor 参考