跳至主要內容

LangSmithExporter

將 Tracing 數據傳送至 LangSmith,以便進行可觀測性監察。

建構函數
建構函數 的直接連結

new LangSmithExporter(config: LangSmithExporterConfig)

LangSmithExporterConfig
langsmithexporterconfig 的直接連結

interface LangSmithExporterConfig extends ClientConfig, BaseExporterConfig {
client?: Client
projectName?: string
}

同時擴充 ClientConfig(來自 LangSmith SDK)和 BaseExporterConfig

  • 來自 BaseExporterConfiglogger?: IMastraLoggerlogLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error'
  • 來自 ClientConfigapiKeyapiUrlcallerOptionshideInputshideOutputs 等。

方法
方法 的直接連結

exportTracingEvent
exporttracingevent 的直接連結

async exportTracingEvent(event: TracingEvent): Promise<void>

將 tracing 事件匯出至 LangSmith。

flush
flush 的直接連結

async flush(): Promise<void>

強制將所有待處理 span 清空並傳送至 LangSmith,而不關閉 exporter。這在 serverless 環境中很有用,可確保 runtime 終止前已匯出 span。

shutdown
shutdown 的直接連結

async shutdown(): Promise<void>

結束所有作用中的 span,並清除 Trace map。

使用方式
使用方式 的直接連結

import { LangSmithExporter } from '@mastra/langsmith'

const exporter = new LangSmithExporter({
apiKey: process.env.LANGSMITH_API_KEY,
projectName: 'my-project', // Optional: specify which project to send traces to
apiUrl: 'https://api.smith.langchain.com',
logLevel: 'info',
})

環境變數
環境變數 的直接連結

變數說明
LANGSMITH_API_KEY你的 LangSmith API 金鑰
LANGCHAIN_PROJECTTrace 的預設項目名稱(未指定 projectName 時使用)
LANGSMITH_BASE_URL自行託管實例的 API URL

Span 類型對應
Span 類型對應 的直接連結

Span 類型LangSmith 類型
MODEL_GENERATIONllm
MODEL_CHUNKllm
TOOL_CALLtool
MCP_TOOL_CALLtool
PROVIDER_TOOL_CALLtool
所有其他類型chain

withLangsmithMetadata
withlangsmithmetadata 的直接連結

用於將 LangSmith 特定 metadata 加至 tracing 選項的輔助函式。

function withLangsmithMetadata(metadata: LangSmithMetadataInput): TracingOptionsUpdater

LangSmithMetadataInput
langsmithmetadatainput 的直接連結

使用方式
使用方式 的直接連結

import { buildTracingOptions } from '@mastra/observability'
import { withLangsmithMetadata } from '@mastra/langsmith'

// Route to a specific project
const tracingOptions = buildTracingOptions(withLangsmithMetadata({ projectName: 'my-project' }))

// Set multiple fields
const tracingOptions = buildTracingOptions(
withLangsmithMetadata({
projectName: 'my-project',
sessionId: 'user-123',
}),
)