> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # Scorers File-based Agent 从自身的 `scorers/` 目录发现 [Scorer](https://mastra.zisheng.pro/docs/evals/overview)。本页介绍基于文件的约定;有关内置 Scorer、自定义 Scorer 和采样,请参阅 Scorer 指南。 `scorers/` 下的每个文件默认导出一个 Scorer,文件名则成为其键。默认导出可以是 [`MastraScorer`](https://mastra.zisheng.pro/reference/evals/create-scorer),也可以是 `{ scorer, sampling }` 条目。 ## 快速开始 将文件放在 Agent 的 `scorers/` 目录下,即可添加 Scorer。此示例使用[自定义 Scorer](https://mastra.zisheng.pro/docs/evals/custom-scorers): ```typescript import { createScorer } from '@mastra/core/evals' export default createScorer({ id: 'relevance', description: 'Scores how relevant the response is', }).generateScore(() => 1) ``` 该 Scorer 会以 `relevance` 键注册到 `weather` Agent 上,效果与将其添加到 `config.scorers` 相同。 ## 采样 要控制 Scorer 的运行频率,请默认导出 `{ scorer, sampling }` 条目,而不是直接导出 Scorer: ```typescript import { createScorer } from '@mastra/core/evals' const relevance = createScorer({ id: 'relevance', description: 'Scores how relevant the response is', }).generateScore(() => 1) export default { scorer: relevance, sampling: { type: 'ratio', rate: 0.5 }, } ``` ## 与 config 的优先级 发现的 Scorer 会与 [`config.ts`](https://mastra.zisheng.pro/reference/file-based-agents/config) 中定义的 Scorer 合并。如果键冲突,`config.scorers` 优先,并会发出警告。如果 `config.scorers` 是函数,Mastra 会忽略发现的 Scorer 并发出警告,因为值为函数的 Scorer 无法进行静态合并。 键冲突时,优先级如下: 1. 值为函数的 `config.scorers` 2. 值为记录对象的 `config.scorers` 3. 在 `scorers/` 下发现的文件 Mastra 会保留键不冲突的已发现 Scorer。 有关完整的 Scorer 接口,请查看 [`createScorer()`](https://mastra.zisheng.pro/reference/evals/create-scorer)。