> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # Braintrust 수출업체 [브레인트러스트](https://www.braintrust.dev/)LLM 지원 품질을 측정하고 개선하는 데 도움이 되는 평가 및 모니터링 플랫폼입니다. Braintrust 내보내기는 추적을 Braintrust로 보내 체계적인 평가, 점수 매기기 및 실험을 가능하게 합니다. ## 설치 **npm**: ```bash npm install @mastra/braintrust@latest ``` **pnpm**: ```bash pnpm add @mastra/braintrust@latest ``` **Yarn**: ```bash yarn add @mastra/braintrust@latest ``` **Bun**: ```bash bun add @mastra/braintrust@latest ``` ## 구성 ### 전제조건 1. **브레인트러스트 계정**: 가입하세요[braintrust.dev](https://www.braintrust.dev/) 2. **프로젝트**: 추적을 위한 프로젝트 생성 또는 선택 3. **API 키**: Braintrust 설정 → API 키에서 생성 4. **환경 변수**: 자격 증명을 설정합니다. ```bash BRAINTRUST_API_KEY=sk-xxxxxxxxxxxxxxxx # Optional BRAINTRUST_ENDPOINT=https://api.braintrust.dev # Custom endpoint if needed ``` ### 제로 구성 설정 환경 변수가 설정된 경우 구성 없이 내보내기를 사용합니다. ```typescript import { Mastra } from '@mastra/core' import { Observability } from '@mastra/observability' import { BraintrustExporter } from '@mastra/braintrust' export const mastra = new Mastra({ observability: new Observability({ configs: { braintrust: { serviceName: 'my-service', exporters: [new BraintrustExporter()], }, }, }), }) ``` ### 명시적 구성 자격 증명을 직접 전달할 수도 있습니다(환경 변수보다 우선 적용됨). ```typescript import { Mastra } from '@mastra/core' import { Observability } from '@mastra/observability' import { BraintrustExporter } from '@mastra/braintrust' export const mastra = new Mastra({ observability: new Observability({ configs: { braintrust: { serviceName: 'my-service', exporters: [ new BraintrustExporter({ apiKey: process.env.BRAINTRUST_API_KEY, projectName: 'my-project', }), ], }, }, }), }) ``` ### 완전한 구성 ```typescript new BraintrustExporter({ // Required apiKey: process.env.BRAINTRUST_API_KEY!, // Optional settings projectName: 'my-project', // Default: 'mastra-tracing' endpoint: 'https://api.braintrust.dev', // Custom endpoint if needed logLevel: 'info', // Diagnostic logging: debug | info | warn | error }) ``` ## Braintrust 평가에 추적 연결 애플리케이션에서 `Eval()`, `logger.traced()` 또는 `currentSpan`을 사용한다면 Braintrust SDK를 직접 설치하세요. **npm**: ```bash npm install braintrust@latest ``` **pnpm**: ```bash pnpm add braintrust@latest ``` **Yarn**: ```bash yarn add braintrust@latest ``` **Bun**: ```bash bun add braintrust@latest ``` Braintrust `Eval()` 또는 `logger.traced()` 내에서 Mastra를 실행한다면 Braintrust 로거와 `currentSpan` 해석기를 Exporter에 전달하세요. 평가 또는 추적된 Span을 생성하는 것과 동일한 `braintrust` 패키지 인스턴스에서 `currentSpan`을 가져오세요. 이는 앱과 `@mastra/braintrust`가 서로 다른 설치본의 Braintrust SDK를 해석할 때 Mastra가 활성 Braintrust Span 아래에 Span을 연결하는 데 도움이 됩니다. 내보내기는 Braintrust SDK v2 및 v3의 호환 가능한 로거 및 범위 개체를 허용합니다. 애플리케이션의 Braintrust SDK 버전이 설치된 버전과 일치할 필요는 없습니다.`@mastra/braintrust`. ```typescript import { currentSpan, initLogger } from 'braintrust' import { BraintrustExporter } from '@mastra/braintrust' const logger = initLogger({ projectName: 'my-project', apiKey: process.env.BRAINTRUST_API_KEY, }) const exporter = new BraintrustExporter({ braintrustLogger: logger, currentSpan, }) ``` Braintrust 평가 작업 내에서 설정된 Mastra 인스턴스를 사용하세요. 위의 `currentSpan` 해석기는 `Eval()`이 생성한 활성 Span을 읽습니다. ```typescript import { Eval } from 'braintrust' import { mastra } from '../mastra' await Eval('my-project', { data: () => [{ input: 'Say hello', expected: 'Hello' }], task: async input => { const agent = mastra.getAgent('assistant') return (await agent.generate(input)).text }, scores: [], }) ``` 애플리케이션에서 직접 사용하는 Braintrust 종속성을 v2에서 v3으로 업그레이드하고 Nunjucks Prompt 템플릿을 사용한다면 [Braintrust v2에서 v3으로 마이그레이션 가이드](https://www.braintrust.dev/docs/sdks/typescript/migrations/v2-to-v3)를 따르세요. ## 반환된 Braintrust 쿼리`spanId` Mastra는 반환된 `spanId`를 Braintrust 행 ID와 Span ID로 모두 사용합니다. 이를 사용해 `id` 또는 `span_id`로 해당 Braintrust Span을 찾으세요. Braintrust v3는 별도의 W3C Trace ID를 `root_span_id`에 저장하므로 반환된 Mastra `spanId`는 Braintrust `root_span_id`가 아닙니다. ```typescript const result = await agent.stream('Summarize this ticket') console.log('Mastra trace ID:', result.traceId) console.log('Braintrust row and span ID:', result.spanId) // Use result.spanId in your Braintrust lookup/query path ``` `agent.generate()`와 Workflow 실행 결과(`run.start()`, `run.stream()` 최종 상태, `run.resume()`)에도 동일하게 적용됩니다. ## 관련된 - [추적 개요](https://mastra.zisheng.pro/ko/docs/observability/tracing/overview) - [브레인트러스트 문서](https://www.braintrust.dev/docs)