본문으로 건너뛰기

Braintrust 수출업체

브레인트러스트LLM 지원 품질을 측정하고 개선하는 데 도움이 되는 평가 및 모니터링 플랫폼입니다. Braintrust 내보내기는 추적을 Braintrust로 보내 체계적인 평가, 점수 매기기 및 실험을 가능하게 합니다.

설치
설치에 대한 직접 링크

npm install @mastra/braintrust@latest

구성
구성에 대한 직접 링크

전제조건
전제조건에 대한 직접 링크

  1. 브레인트러스트 계정: 가입하세요braintrust.dev
  2. 프로젝트: 추적을 위한 프로젝트 생성 또는 선택
  3. API 키: Braintrust 설정 → API 키에서 생성
  4. 환경 변수: 자격 증명을 설정합니다.
.env
BRAINTRUST_API_KEY=sk-xxxxxxxxxxxxxxxx

# Optional
BRAINTRUST_ENDPOINT=https://api.braintrust.dev # Custom endpoint if needed

제로 구성 설정
제로 구성 설정에 대한 직접 링크

환경 변수가 설정된 경우 구성 없이 내보내기를 사용합니다.

src/mastra/index.ts
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()],
},
},
}),
})

명시적 구성
명시적 구성에 대한 직접 링크

자격 증명을 직접 전달할 수도 있습니다(환경 변수보다 우선 적용됨).

src/mastra/index.ts
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',
}),
],
},
},
}),
})

완전한 구성
완전한 구성에 대한 직접 링크

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 평가에 추적 연결
Braintrust 평가에 추적 연결에 대한 직접 링크

애플리케이션에서 Eval(), logger.traced() 또는 currentSpan을 사용한다면 Braintrust SDK를 직접 설치하세요.

npm install 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.

src/mastra/index.ts
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을 읽습니다.

src/evals/braintrust.ts
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으로 마이그레이션 가이드를 따르세요.

반환된 Braintrust 쿼리spanId
querying-braintrust-with-returned-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가 아닙니다.

src/mastra/usage.ts
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())에도 동일하게 적용됩니다.