평가자 및 득점자
평가 API는 업데이트된 명명 규칙 및 구성 요구 사항을 갖춘 새로운 채점 시스템에 통합되었습니다.
변경됨변경됨에 대한 직접 링크
getScorers에게listScorersgetscorers-to-listscorers에 대한 직접 링크
getScorers() 메서드의 이름이 listScorers()로 변경되었습니다. 이 변경은 여러 항목을 가져오는 getter 메서드에 list 접두사를 사용하는 API 전반의 명명 규칙과 일치합니다.
마이그레이션하려면 모든 getScorers() 호출을 listScorers()로 바꾸세요.
- const scorers = mastra.getScorers();
+ const scorers = mastra.listScorers();
:::tip[코드모드]
Mastra의 codemod CLI를 사용하여 코드를 자동으로 업데이트할 수 있습니다.
npx @mastra/codemod@latest v1/mastra-plural-apis .
:::
runExperiment에게runEvalsrunexperiment-to-runevals에 대한 직접 링크
평가를 실행한다는 점을 명확히 나타내도록 runExperiment() 함수의 이름이 runEvals()로 변경되었습니다.
마이그레이션하려면 함수 호출을 runExperiment에서 runEvals로 업데이트하세요.
- import { createScorer, runExperiment } from '@mastra/core/evals';
+ import { createScorer, runEvals } from '@mastra/core/evals';
import { myAgent } from './agents/my-agent';
const scorer = createScorer({
id: 'helpfulness-scorer',
// ...
});
- const result = await runExperiment({ target: myAgent, scorers: [scorer], data: inputs });
+ const result = await runEvals({ target: myAgent, scorers: [scorer], data: inputs });
:::tip[코드모드]
Mastra의 codemod CLI를 사용하여 코드를 자동으로 업데이트할 수 있습니다.
npx @mastra/codemod@latest v1/evals-run-experiment .
:::
getScorerByName에게getScorerByIdgetscorerbyname-to-getscorerbyid에 대한 직접 링크
getScorerByName() 메서드의 이름이 getScorerById()로 변경되었습니다. 이제 채점기에는 name 대신 id 필드가 필요합니다. 이 변경은 엔터티 식별에 id를 사용하는 더 광범위한 API 패턴과 일치합니다.
마이그레이션하려면 name 대신 id를 사용하도록 메서드 호출과 채점기 구성을 업데이트하세요.
const scorer = createScorer({
- name: 'helpfulness-scorer',
+ id: 'helpfulness-scorer',
// ...
});
- const scorer = mastra.getScorerByName('helpfulness-scorer');
+ const scorer = mastra.getScorerById('helpfulness-scorer');
:::tip[코드모드]
Mastra의 codemod CLI를 사용하여 코드를 자동으로 업데이트할 수 있습니다.
npx @mastra/codemod@latest v1/evals-scorer-by-name .
:::
채점기 구성을 name에서 id로 변경scorer-configuration-from-name-to-id에 대한 직접 링크
이제 채점기에는 name 대신 id 필드가 필요합니다. name 필드는 이제 선택 사항입니다. 이 변경으로 다른 Mastra 엔터티와의 일관성이 향상됩니다.
마이그레이션하려면 id를 필수 필드로 사용하도록 채점기 정의를 업데이트하세요.
const scorer = createScorer({
- name: 'helpfulness-scorer',
+ id: 'helpfulness-scorer',
+ name: 'Helpfulness Scorer', // optional
// ...
});
스토리지 점수 APIlistScoresBy* patternstorage-score-apis-to-listscoresby-pattern에 대한 직접 링크
점수 스토리지 API의 이름이 listScoresBy* 패턴을 따르도록 변경되었습니다. 이 변경은 더 광범위한 스토리지 API 명명 규칙과 일치합니다.
마이그레이션하려면 새 이름 지정 패턴을 사용하도록 점수 쿼리 방법을 업데이트하세요.
- const scores = await storage.getScores({ scorerName: 'helpfulness-scorer' });
+ const scores = await storage.listScoresByScorerId({
+ scorerId: 'helpfulness-scorer',
+ });
// Also available:
// - listScoresByRunId
// - listScoresByEntityId
// - listScoresBySpan
사전 구축된 득점 장치를 다음으로 가져옵니다.scorers/prebuilt pathprebuilt-scorer-imports-to-scorersprebuilt-path에 대한 직접 링크
사전 구축된 채점기 가져오기 경로가 별도의 scorers/llm 및 scorers/code 경로에서 단일 @mastra/evals/scorers/prebuilt 경로로 통합되었습니다. 이 변경으로 가져오기가 단순해지고 사전 구축된 채점기가 더 명확하게 구성됩니다.
마이그레이션하려면 새 항목을 사용하도록 import 문을 업데이트하세요.scorers/prebuilt path.
// LLM-based scorers
- import { createHallucinationScorer } from '@mastra/evals/scorers/llm';
- import { createFaithfulnessScorer } from '@mastra/evals/scorers/llm';
+ import { createHallucinationScorer } from '@mastra/evals/scorers/prebuilt';
+ import { createFaithfulnessScorer } from '@mastra/evals/scorers/prebuilt';
// Code-based scorers
- import { createContentSimilarityScorer } from '@mastra/evals/scorers/code';
- import { createCompletenessScorer } from '@mastra/evals/scorers/code';
+ import { createContentSimilarityScorer } from '@mastra/evals/scorers/prebuilt';
+ import { createCompletenessScorer } from '@mastra/evals/scorers/prebuilt';
:::tip[코드모드]
Mastra의 codemod CLI를 사용하여 코드를 자동으로 업데이트할 수 있습니다.
npx @mastra/codemod@latest v1/evals-prebuilt-imports .
:::
채점기 메시지 타입을 UIMessage에서 MastraDBMessage로 변경scorer-message-types-from-uimessage-to-mastradbmessage에 대한 직접 링크
이제 채점기의 입력 및 출력 타입은 UIMessage 대신 MastraDBMessage[]를 사용합니다. 이 변경으로 프레임워크 전반의 일관성을 위해 채점기가 데이터베이스에 저장되는 메시지 형식과 일치합니다.
마이그레이션하려면 MastraDBMessage 타입을 사용하고 중첩된 content 구조를 통해 메시지 콘텐츠에 접근하도록 채점기 구현을 업데이트하세요.
import type {
ScorerRunInputForAgent,
ScorerRunOutputForAgent
} from '@mastra/core/evals';
- // ScorerRunInputForAgent uses UIMessage[]
- const inputMessages: UIMessage[] = run.input.inputMessages;
+ // ScorerRunInputForAgent now uses MastraDBMessage[]
+ import type { MastraDBMessage } from '@mastra/core/agent';
+ const inputMessages: MastraDBMessage[] = run.input.inputMessages;
중첩 형식의 메시지 콘텐츠 구조중첩 형식의 메시지 콘텐츠 구조에 대한 직접 링크
이제 Tool 호출과 텍스트 콘텐츠는 메시지의 평면 속성 대신 중첩된 content 객체를 통해 접근합니다. 중첩 구조는 데이터베이스 메시지 형식 및 해당 타입과 일치합니다.
마이그레이션하려면 message.content.toolInvocations를 통해 Tool 호출에 접근하고 message.content.content를 통해 텍스트에 접근하거나 getTextContentFromMastraDBMessage() 헬퍼를 사용하세요.
+ import { getTextContentFromMastraDBMessage } from '@mastra/evals';
+
const run = await scorer.run(testRun);
// Accessing text content
- const text = message.content;
+ const text = getTextContentFromMastraDBMessage(message);
+ // or directly: message.content.content
// Accessing tool invocations
- const toolCalls = message.toolInvocations;
+ const toolCalls = message.content.toolInvocations;
제거됨제거됨에 대한 직접 링크
레거시 평가 코드레거시 평가 코드에 대한 직접 링크
@mastra/core에서 레거시 평가 코드가 제거되었습니다. 여기에는 레거시 평가 메트릭, 채점기/판정 모듈 및 후크 기반 자동 평가 코드가 포함됩니다. 이 변경은 오래된 평가 방식을 제거하여 코드베이스를 단순화합니다.
마이그레이션하려면 @mastra/core/evals 또는 @mastra/evals의 새 평가/점수 API를 사용하세요.
- // Legacy evals APIs
+ import { createScorer, runEvals } from '@mastra/core/evals';
+
+ const scorer = createScorer({
+ id: 'my-scorer',
+ // Use new scorer API
+ });
대리인TMetrics generic parameteragent-tmetrics-generic-parameter에 대한 직접 링크
AgentConfig와 Agent 생성자에서 TMetrics 제네릭 매개변수가 제거되었습니다. 이제 메트릭과 채점기는 Agent 타입 시스템의 일부가 아니라 채점기 API를 사용해 구성합니다. 이 변경으로 Agent 타입 시그니처가 단순해집니다.
마이그레이션하려면 TMetrics 제네릭 매개변수를 제거하고 채점기 API를 사용해 채점기를 구성하세요.
- const agent = new Agent<AgentId, Tools, Metrics>({
+ const agent = new Agent<AgentId, Tools>({
// ...
});
평가 관련 유형 내보내기평가 관련 유형 내보내기에 대한 직접 링크
DeprecatedOutputOptions, Metric, 프로세서 옵션 타입을 비롯한 여러 평가 관련 타입 내보내기가 제거되었습니다. 이러한 타입은 이제 내부용이거나 새 채점기 API로 대체되었습니다. 이 변경으로 API 표면적이 줄어듭니다.
마이그레이션하려면 제거된 유형에 대한 참조를 제거하고 새로운 득점자 API를 사용하십시오.
- import type {
- DeprecatedOutputOptions,
- Metric,
- LanguageDetectorOptions,
- ModerationOptions,
- } from '@mastra/core';
+ // Use new scorers API types
+ import type { Scorer } from '@mastra/core/evals';
createUIMessage테스트 도우미createuimessage-test-helper에 대한 직접 링크
createUIMessage() 테스트 헬퍼가 제거되고 createTestMessage()로 대체되었습니다. 새 헬퍼는 중첩된 콘텐츠 구조를 갖는 MastraDBMessage 객체를 생성하고 선택적 Tool 호출을 지원합니다. 이 변경으로 테스트 유틸리티가 새 메시지 형식과 일치합니다.
마이그레이션하려면 createUIMessage() 호출을 createTestMessage()로 바꾸고 MastraDBMessage 타입을 사용하도록 업데이트하세요.
- import { createUIMessage } from '@mastra/evals';
+ import { createTestMessage } from '@mastra/evals';
// Creating test messages
- const message = createUIMessage({
- id: 'test-1',
+ const message = createTestMessage({
+ id: 'test-1', // optional, defaults to 'test-message'
role: 'user',
content: 'Hello',
toolInvocations: [], // optional
});