メインコンテンツへ移動

LangSmith exporter

LangSmith は、LLM アプリケーションを監視・評価するための LangChain のプラットフォームです。LangSmith exporter はトレースを LangSmith へ送信し、モデルのパフォーマンスに関するインサイト、デバッグ機能、評価 Workflow を提供します。

インストール
インストールへの直接リンク

npm install @mastra/langsmith@latest

設定
設定への直接リンク

前提条件
前提条件への直接リンク

  1. LangSmith アカウント: smith.langchain.com で登録します
  2. API キー: LangSmith の Settings → API Keys で API キーを生成します
  3. 環境変数: 認証情報を設定します
.env
# Required
LANGSMITH_API_KEY=ls-xxxxxxxxxxxx

# Optional
LANGCHAIN_PROJECT=my-project # Default project for traces
LANGSMITH_BASE_URL=https://api.smith.langchain.com # For self-hosted

設定不要でのセットアップ
設定不要でのセットアップへの直接リンク

環境変数を設定したら、設定を渡さずに exporter を使用できます。

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { LangSmithExporter } from '@mastra/langsmith'

export const mastra = new Mastra({
observability: new Observability({
configs: {
langsmith: {
serviceName: 'my-service',
exporters: [new LangSmithExporter()],
},
},
}),
})

明示的な設定
明示的な設定への直接リンク

認証情報を直接渡すこともできます。この値は環境変数より優先されます。

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { LangSmithExporter } from '@mastra/langsmith'

export const mastra = new Mastra({
observability: new Observability({
configs: {
langsmith: {
serviceName: 'my-service',
exporters: [
new LangSmithExporter({
apiKey: process.env.LANGSMITH_API_KEY,
}),
],
},
},
}),
})

設定オプション
設定オプションへの直接リンク

完全な設定
完全な設定への直接リンク

new LangSmithExporter({
// Required credentials
apiKey: process.env.LANGSMITH_API_KEY!,

// Optional settings
apiUrl: process.env.LANGSMITH_BASE_URL, // Default: https://api.smith.langchain.com
projectName: 'my-project', // Project to send traces to (overrides LANGCHAIN_PROJECT env var)
callerOptions: {
// HTTP client options
timeout: 30000, // Request timeout in ms
maxRetries: 3, // Retry attempts
},
logLevel: 'info', // Diagnostic logging: debug | info | warn | error

// LangSmith-specific options
hideInputs: false, // Hide input data in UI
hideOutputs: false, // Hide output data in UI
})

環境変数
環境変数への直接リンク

変数説明
LANGSMITH_API_KEYLangSmith API キー(必須)
LANGCHAIN_PROJECTトレースのデフォルトプロジェクト名(任意、デフォルトは "default")
LANGSMITH_BASE_URLセルフホストインスタンスの API URL(任意)

projectName 設定オプションは LANGCHAIN_PROJECT 環境変数より優先されるため、トレースをプログラムから別のプロジェクトへ振り分けられます。

動的な設定
動的な設定への直接リンク

withLangsmithMetadata を使用すると、span ごとに LangSmith の設定を実行時に上書きできます。これは、実行時の条件(顧客、環境、機能など)に基づいてトレースを別のプロジェクトへ振り分ける場合に便利です。

Helper の使用
Helper の使用への直接リンク

withLangsmithMetadatabuildTracingOptions を使用して、LangSmith 固有のオプションを設定します。

src/agents/support-agent.ts
import { Agent } from '@mastra/core/agent'
import { buildTracingOptions } from '@mastra/observability'
import { withLangsmithMetadata } from '@mastra/langsmith'

export const supportAgent = new Agent({
id: 'support-agent',
name: 'support-agent',
instructions: 'You are a helpful support agent.',
model: 'openai/gpt-5.6-sol',
defaultOptions: {
tracingOptions: buildTracingOptions(withLangsmithMetadata({ projectName: 'customer-support' })),
},
})

動的なプロジェクトの振り分け
動的なプロジェクトの振り分けへの直接リンク

requestContext を使用して、実行時の条件に基づきトレースを別のプロジェクトへ振り分けます。

src/mastra/agents/support-agent.ts
import { Agent } from '@mastra/core/agent'
import { buildTracingOptions } from '@mastra/observability'
import { withLangsmithMetadata } from '@mastra/langsmith'

export const supportAgent = new Agent({
id: 'support-agent',
name: 'support-agent',
instructions: 'You are a helpful support agent.',
model: 'openai/gpt-5.6-sol',
defaultOptions: ({ requestContext }) => {
const userTier = requestContext?.get('user-tier') as string
const userId = requestContext?.get('user-id') as string

return {
tracingOptions: buildTracingOptions(
withLangsmithMetadata({
projectName: userTier === 'enterprise' ? 'enterprise-traces' : 'standard-traces',
sessionId: userId,
}),
),
}
},
})

使用可能なフィールド
使用可能なフィールドへの直接リンク

withLangsmithMetadata helper は次のフィールドを受け取ります。

フィールド説明
projectNamestringこのトレースのプロジェクトを上書きします
sessionIdstring関連するトレースをセッション単位でグループ化します
sessionNamestringセッションの表示名です

すべてのフィールドは任意です。helper は既存の metadata とマージされるため、複数回呼び出したり、ほかのトレースオプションと組み合わせたりできます。