LangSmithExporter
將 Tracing 數據傳送至 LangSmith,以便進行可觀測性監察。
建構函數建構函數 的直接連結
new LangSmithExporter(config: LangSmithExporterConfig)
LangSmithExporterConfiglangsmithexporterconfig 的直接連結
interface LangSmithExporterConfig extends ClientConfig, BaseExporterConfig {
client?: Client
projectName?: string
}
同時擴充 ClientConfig(來自 LangSmith SDK)和 BaseExporterConfig:
- 來自
BaseExporterConfig:logger?: IMastraLogger、logLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error' - 來自
ClientConfig:apiKey、apiUrl、callerOptions、hideInputs、hideOutputs等。
方法方法 的直接連結
exportTracingEventexporttracingevent 的直接連結
async exportTracingEvent(event: TracingEvent): Promise<void>
將 tracing 事件匯出至 LangSmith。
flushflush 的直接連結
async flush(): Promise<void>
強制將所有待處理 span 清空並傳送至 LangSmith,而不關閉 exporter。這在 serverless 環境中很有用,可確保 runtime 終止前已匯出 span。
shutdownshutdown 的直接連結
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_PROJECT | Trace 的預設項目名稱(未指定 projectName 時使用) |
LANGSMITH_BASE_URL | 自行託管實例的 API URL |
Span 類型對應Span 類型對應 的直接連結
| Span 類型 | LangSmith 類型 |
|---|---|
MODEL_GENERATION | llm |
MODEL_CHUNK | llm |
TOOL_CALL | tool |
MCP_TOOL_CALL | tool |
PROVIDER_TOOL_CALL | tool |
| 所有其他類型 | chain |
withLangsmithMetadatawithlangsmithmetadata 的直接連結
用於將 LangSmith 特定 metadata 加至 tracing 選項的輔助函式。
function withLangsmithMetadata(metadata: LangSmithMetadataInput): TracingOptionsUpdater
LangSmithMetadataInputlangsmithmetadatainput 的直接連結
使用方式使用方式 的直接連結
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',
}),
)