Braintrust exporter
Braintrust は、LLM アプリケーションの品質測定と改善を支援する評価・監視プラットフォームです。Braintrust exporter は Trace を Braintrust に送信し、体系的な評価、採点、実験を可能にします。
インストールインストールへの直接リンク
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/braintrust@latest
pnpm add @mastra/braintrust@latest
yarn add @mastra/braintrust@latest
bun add @mastra/braintrust@latest
設定設定への直接リンク
前提条件前提条件への直接リンク
- Braintrust アカウント: braintrust.dev で登録する
- Project: Trace 用の Project を作成または選択する
- API Key: Braintrust Settings → API Keys で生成する
- 環境変数: 認証情報を設定する
BRAINTRUST_API_KEY=sk-xxxxxxxxxxxxxxxx
# Optional
BRAINTRUST_ENDPOINT=https://api.braintrust.dev # Custom endpoint if needed
ゼロコンフィグセットアップゼロコンフィグセットアップへの直接リンク
環境変数を設定すると、設定を渡さずに exporter を使用できます。
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()],
},
},
}),
})
明示的な設定明示的な設定への直接リンク
認証情報を直接渡すこともできます(環境変数より優先されます)。
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
})
Trace を Braintrust eval に関連付けるTrace を Braintrust eval に関連付けるへの直接リンク
アプリケーションで Eval()、logger.traced()、または currentSpan を使用する場合は、Braintrust SDK を直接インストールします。
- npm
- pnpm
- Yarn
- Bun
npm install braintrust@latest
pnpm add braintrust@latest
yarn add braintrust@latest
bun add braintrust@latest
Mastra を Braintrust の Eval() または logger.traced() 内で実行する場合は、Braintrust logger と currentSpan resolver を exporter に渡します。currentSpan は、eval または traced Span を作成するものと同じ braintrust パッケージインスタンスから import してください。
これにより、アプリと @mastra/braintrust がインストール済み Braintrust SDK の別々のコピーを解決する場合でも、Mastra の Span をアクティブな Braintrust Span の配下に関連付けられます。
exporter は、Braintrust SDK v2 および v3 の互換性のある logger オブジェクトと Span オブジェクトを受け入れます。アプリケーションの Braintrust SDK バージョンを、@mastra/braintrust がインストールしたバージョンと一致させる必要はありません。
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,
})
設定済みの Mastra インスタンスを Braintrust eval Task 内で使用します。上記の currentSpan resolver は、Eval() が作成したアクティブな Span を読み取ります。
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 template を使用する場合は、Braintrust v2 から v3 への移行ガイドに従ってください。
返された spanId で Braintrust を照会するquerying-braintrust-with-returned-spanidへの直接リンク
Mastra は、返された spanId を Braintrust の row ID と Span ID の両方として使用します。id または span_id で対応する Braintrust Span を検索する際に使用してください。
Braintrust v3 は個別の W3C Trace ID を root_span_id に保存するため、返された Mastra の spanId は Braintrust の root_span_id ではありません。
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())にも当てはまります。