忠実性スコアラー
createFaithfulnessScorer() 関数は、提供されたコンテキストと比較して LLM の出力が事実としてどの程度正確かを評価します。出力から主張を抽出してコンテキストと照合するため、RAG パイプラインの応答の信頼性を測定するうえで不可欠です。
パラメーターパラメーターへの直接リンク
createFaithfulnessScorer() 関数は、次のプロパティを持つ単一の options オブジェクトを受け取ります。
model:
LanguageModel
忠実性の評価に使用するモデルの設定。
context:
string[]
出力内の主張を検証する対象となるコンテキストチャンクの配列。
scale:
number
= 1
スコアの最大値。最終スコアはこのスケールに正規化されます。
この関数は MastraScorer クラスのインスタンスを返します。.run() メソッドは他のスコアラーと同じ入力を受け取ります(MastraScorer リファレンスを参照)。ただし、戻り値には以下に示す LLM 固有のフィールドが含まれます。
.run() の戻り値run-returnsへの直接リンク
runId:
string
実行 ID(任意)。
preprocessStepResult:
string[]
出力から抽出された主張の配列。
preprocessPrompt:
string
preprocess ステップで LLM に送信されたプロンプト(任意)。
analyzeStepResult:
object
判定を持つオブジェクト:{ verdicts: Array<{ verdict: 'yes' | 'no' | 'unsure', reason: string }> }
analyzePrompt:
string
analyze ステップで LLM に送信されたプロンプト(任意)。
score:
number
0 から設定済みの scale までのスコア。コンテキストによって裏付けられた主張の割合を表します。
reason:
string
裏付けられた主張、矛盾した主張、または不明とされた主張を含む、スコアの詳細な説明。
generateReasonPrompt:
string
generateReason ステップで LLM に送信されたプロンプト(任意)。
スコアリングの詳細スコアリングの詳細への直接リンク
スコアラーは、提供されたコンテキストと主張を照合して忠実性を評価します。
スコアリング手順スコアリング手順への直接リンク
- 主張とコンテキストを分析します。
- すべての主張(事実に関するものと推測的なもの)を抽出する
- 各主張をコンテキストと照合する
- 次の3つの判定のいずれかを割り当てる
- "yes" - 主張がコンテキストによって裏付けられている
- "no" - 主張がコンテキストと矛盾している
- "unsure" - 主張を検証できない
- 忠実性スコアを計算します。
- 裏付けられた主張を数える
- 主張の総数で割る
- 設定した範囲にスケーリングする
最終スコア:(supported_claims / total_claims) * scale
スコアの解釈スコアの解釈への直接リンク
0〜1 の忠実性スコアは次のように解釈します。
- 1.0:すべての主張が正確で、コンテキストによって直接裏付けられている。
- 0.7〜0.9:ほとんどの主張は正しいが、軽微な追加や省略がある。
- 0.4〜0.6:一部の主張は裏付けられているが、検証できないものもある。
- 0.1〜0.3:内容の大半が不正確、または裏付けられていない。
- 0.0:すべての主張が誤り、またはコンテキストと矛盾している。
例例への直接リンク
提供されたコンテキストに対する Agent の応答の忠実性を評価します。
src/example-faithfulness.ts
import { runEvals } from '@mastra/core/evals'
import { createFaithfulnessScorer } from '@mastra/evals/scorers/prebuilt'
import { myAgent } from './agent'
// Context is typically populated from agent tool calls or RAG retrieval
const scorer = createFaithfulnessScorer({
model: 'openai/gpt-5.6-sol',
})
const result = await runEvals({
data: [
{
input: 'Tell me about the Tesla Model 3.',
},
{
input: 'What are the key features of this electric vehicle?',
},
],
scorers: [scorer],
target: myAgent,
onItemComplete: ({ scorerResults }) => {
console.log({
score: scorerResults[scorer.id].score,
reason: scorerResults[scorer.id].reason,
})
},
})
console.log(result.scores)
runEvals の詳細は、runEvals リファレンスを参照してください。
このスコアラーを Agent に追加する方法は、スコアラーの概要ガイドを参照してください。