メインコンテンツへ移動

Quick Checks

Quick Checks は、「出力に X が含まれる」や「Agent が Tool Y を呼び出した」といった一般的な検証に使える、組み合わせ可能なマイクロ Scorer です。LLM は不要で即座に実行され、ほかの Scorer と同じ scorers: [...] 配列に追加できます。

Quick Checks を使用する場面
Quick Checks を使用する場面への直接リンク

高速で決定論的な検証が必要な場合に Quick Checks を使用します。

  • 出力テキストに特定の文字列が含まれる、または含まれないことを検証する
  • Agent が特定の Tool を呼び出した、または呼び出していないことを確認する
  • Tool 呼び出しの順序と回数制限を検証する
  • コストのかからないバイナリチェックで CI パイプラインを Gate する
  • LLM ベースの Scorer と組み合わせて多層的に評価する

主観的または意味的な評価には、代わりに LLM ベースの Scorerを使用してください。

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

src/evals/weather-checks.ts
import { checks } from '@mastra/evals/checks'
import { runEvals } from '@mastra/core/evals'
import { weatherAgent } from '../agents'

const result = await runEvals({
data: [{ input: 'What is the weather in Brooklyn?' }],
target: weatherAgent,
scorers: [checks.includes('Brooklyn'), checks.calledTool('get_weather'), checks.noToolErrors()],
})

console.log(result.scores)
// { 'check-includes': 1, 'check-called-tool': 1, 'check-no-tool-errors': 1 }

利用可能なチェック
利用可能なチェックへの直接リンク

Quick Checks は次のカテゴリに分類されます。

テキストチェック
テキストチェックへの直接リンク

これらの Scorer は Agent のテキスト出力を評価します。

チェック動作スコア
checks.includes(str)出力に部分文字列が含まれる1 または 0
checks.excludes(str)出力に部分文字列が含まれない1 または 0
checks.equals(str)出力が文字列と完全に一致する1 または 0
checks.matches(regex)出力が正規表現に一致する1 または 0
checks.similarity(str)文字列との Dice 係数による類似度0~1(threshold を指定した場合はバイナリ)

Tool 呼び出しチェック
Tool 呼び出しチェックへの直接リンク

これらの Scorer は Agent の実行における Tool の使用状況を評価します。

チェック動作スコア
checks.calledTool(name)Tool が N 回以上呼び出された1 または 0
checks.didNotCall(name)Tool が呼び出されなかった1 または 0
checks.toolOrder([...])Tool が想定した順序で呼び出された1 または 0
checks.maxToolCalls(n)Tool 呼び出しの合計が N 回以下である1 または 0
checks.usedNoTools()Tool がまったく呼び出されなかった1 または 0
checks.noToolErrors()どの Tool 呼び出しでもエラーが発生しなかった1 または 0

チェックと LLM Scorer の組み合わせ
チェックと LLM Scorer の組み合わせへの直接リンク

1 回の runEvals 呼び出しで、チェックと LLM ベースの Scorer を組み合わせられます。決定論的な Gate にはチェックを、定性的な評価には LLM Scorer を使用します。

src/evals/layered-eval.ts
import { checks } from '@mastra/evals/checks'
import { createFaithfulnessScorer } from '@mastra/evals/scorers/prebuilt'
import { runEvals } from '@mastra/core/evals'
import { myAgent } from '../agents'

const result = await runEvals({
data: [
{
input: 'What is the weather in Brooklyn?',
context: ['Brooklyn weather data: sunny, 72°F'],
},
],
target: myAgent,
scorers: [
// Deterministic checks (instant, free)
checks.includes('Brooklyn'),
checks.calledTool('get_weather'),
checks.excludes('error'),
checks.noToolErrors(),

// LLM-based scorer (semantic, costs tokens)
createFaithfulnessScorer({ model: 'openai/gpt-5-mini' }),
],
})

Live Scoring でのチェックの使用
Live Scoring でのチェックの使用への直接リンク

継続的に監視するには、チェックを Agent に追加します。

src/agents/weather-agent.ts
import { Agent } from '@mastra/core/agent'
import { checks } from '@mastra/evals/checks'

export const weatherAgent = new Agent({
id: 'weather-agent',
name: 'Weather Agent',
instructions: 'Answer weather questions using the get_weather tool.',
model: 'openai/gpt-5.6-sol',
tools: { get_weather: weatherTool },
scorers: {
noErrors: {
scorer: checks.noToolErrors(),
sampling: { type: 'ratio', rate: 1 },
},
mentionCity: {
scorer: checks.includes('Brooklyn'),
sampling: { type: 'ratio', rate: 0.5 },
},
},
})

チェックの仕組み
チェックの仕組みへの直接リンク

各チェックは、preprocess ステップと generateScore ステップを持つ標準の createScorer() インスタンスです。ほかの Scorer と同じ4ステップのパイプラインに従います。

  1. preprocess: Agent の実行から関連データ(テキストコンテンツ、Tool 呼び出し)を抽出して正規化する
  2. generateScore: 前処理済みの結果をスコア(通常はバイナリの 1 または 0)に変換する

チェックでは analyzegenerateReason のステップを省略し、LLM を呼び出さないため、マイクロ秒単位で実行されます。各チェックのすべてのパラメーターとオプションを含む完全な API については、Quick Checks リファレンスを参照してください。