メインコンテンツへ移動

Scorer

ファイルベースの Agent は、自身の scorers/ ディレクトリから Scorer を検出します。ファイルベースの規約については、このページを参照してください。組み込み Scorer、カスタム Scorer、サンプリングについては、Scorer ガイドを参照してください。

scorers/ 内の各ファイルは 1 つの Scorer をデフォルト export し、ファイル名がそのキーになります。デフォルト export は、MastraScorer または { scorer, sampling } エントリのいずれかです。

クイックスタート
クイックスタートへの直接リンク

Agent の scorers/ ディレクトリにファイルを配置して、Scorer を追加します。この例では、カスタム Scorer を使用します。

src/mastra/agents/weather/scorers/relevance.ts
import { createScorer } from '@mastra/core/evals'

export default createScorer({
id: 'relevance',
description: 'Scores how relevant the response is',
}).generateScore(() => 1)

この Scorer は、config.scorers に追加した場合と同様に、weather Agent に relevance キーで登録されます。

サンプリング
サンプリングへの直接リンク

Scorer の実行頻度を制御するには、Scorer 単体ではなく { scorer, sampling } エントリをデフォルト export します。

src/mastra/agents/weather/scorers/relevance.ts
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 との優先順位
config との優先順位への直接リンク

検出された Scorer は、config.ts で定義された Scorer とマージされます。キーが競合した場合は、警告とともに config.scorers が優先されます。config.scorers が関数の場合、関数値の Scorer は静的にマージできないため、検出された Scorer は警告とともに無視されます。

キーが競合した場合の優先順位は次のとおりです。

  1. 関数値の config.scorers
  2. レコード値の config.scorers
  3. scorers/ で検出されたファイル

キーが競合しない、検出された Scorer は保持されます。

Scorer の完全なインターフェースについては、createScorer()を参照してください。