루브릭 채점자
추가된 항목: @mastra/evals@1.3.0
createRubricScorer() 함수는 루브릭(기준 체크리스트)에 따라 Agent의 출력을 평가하는 LLM-as-judge 채점기를 생성합니다. 이 함수는 이진 점수를 반환합니다. 모든 필수 기준을 충족한 경우에만 1을 반환하고, 그렇지 않으면 0을 반환합니다. reason에는 각 기준의 결과가 나열되므로 Agent가 수정해야 할 사항을 정확히 파악할 수 있습니다.
이 채점기는 isTaskComplete와 함께 사용하도록 설계되었습니다. isTaskComplete는 score === 1을 "작업 완료"로 간주하고 reason을 피드백으로 대화에 다시 삽입하므로, Agent는 루브릭을 충족하거나 maxSteps에 도달할 때까지 계속 반복합니다.
매개변수매개변수에 대한 직접 링크
model:
criteria:
rubric 값에서 루브릭을 읽습니다. 어떤 값도 확인되지 않으면 채점기는 아무 작업도 하지 않고 1을 반환합니다.options:
.run()보고run-returns에 대한 직접 링크
score:
reason:
isTaskComplete와 함께 사용isTaskComplete와 함께 사용에 대한 직접 링크
루브릭을 한 번 정의하고 채점기를 isTaskComplete에 연결하면 Agent가 루브릭을 충족할 때까지 스스로 수정합니다.
import { Agent } from '@mastra/core/agent'
import { createRubricScorer } from '@mastra/evals/scorers/prebuilt'
const supervisor = new Agent({
id: 'supervisor',
instructions: `You coordinate research and writing using specialized agents. Delegate to research-agent for facts, then writing-agent for content.`,
model: 'openai/gpt-5.6-sol',
agents: { researchAgent, writingAgent },
})
const rubricScorer = createRubricScorer({
model: 'openai/gpt-5-mini',
criteria: [
{ description: 'The response includes an analysis section' },
{ description: 'The response includes concrete recommendations' },
],
})
const stream = await supervisor.stream('Research AI in education', {
maxSteps: 10,
isTaskComplete: {
scorers: [rubricScorer],
strategy: 'all',
},
})
문자열 루브릭문자열 루브릭에 대한 직접 링크
줄바꿈으로 구분된 문자열에서는 일반적인 목록 마커(-, *, 1.)가 제거됩니다. 각 줄은 필수 기준이 됩니다.
const rubricScorer = createRubricScorer({
model: 'openai/gpt-5-mini',
criteria: `- All tests pass in the test suite
- The function is named find_duplicates and accepts a single list argument`,
})
선택적 기준선택적 기준에 대한 직접 링크
게이팅 완료 없이 등급을 매기고 보고하려면 기준을 선택 사항으로 표시합니다.
const rubricScorer = createRubricScorer({
model: 'openai/gpt-5-mini',
criteria: [
{ description: 'Includes an analysis section', required: true },
{ description: 'Includes citations', required: false },
],
})
실행당 동적 루브릭실행당 동적 루브릭에 대한 직접 링크
팩터리에 criteria를 전달하지 않으면 채점기는 실행의 요청 컨텍스트, 추가 컨텍스트 또는 입력에서 rubric 값을 확인합니다. 따라서 채점기를 다시 만들지 않고도 하나의 채점기 인스턴스로 실행마다 서로 다른 루브릭을 평가할 수 있습니다.
const rubricScorer = createRubricScorer({
model: 'openai/gpt-5-mini',
})
await supervisor.stream('Write find_duplicates', {
isTaskComplete: { scorers: [rubricScorer] },
requestContext: {
rubric: '- All tests pass\n- The function is named find_duplicates',
},
})
루브릭을 확인할 수 없으면 채점기는 1을 반환하며 루프를 제한하지 않습니다.
채점 세부정보채점 세부정보에 대한 직접 링크
득점원은 두 단계로 진행됩니다.
- 평가: 판정 Model은 각 기준을 독립적으로 평가하고 근거와 함께 기준별 평결(
satisfied여부)을 반환합니다. - 점수: 모든 필수 기준이
satisfied인 경우에만 결과가1이고, 그렇지 않으면0입니다. 필수로 표시된 기준이 없으면 모든 기준을 필수로 처리합니다.reason은 결과를 요약하고 각 기준과 평결을 나열하므로, 평가에 실패하면 일반적인 "다시 시도하세요" 대신 Agent에 구체적이고 유용한 피드백을 제공합니다.