跳至主要內容

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 flush 至 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 key
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 選項的 helper 函式。

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',
}),
)