본문으로 건너뛰기

LangSmith 수출업체

랭스미스LLM 응용 프로그램을 모니터링하고 평가하기 위한 LangChain의 플랫폼입니다. LangSmith 내보내기는 추적을 LangSmith로 보내 Model 성능, 디버깅 기능, 평가 Workflow에 대한 통찰력을 제공합니다.

설치
설치에 대한 직접 링크

npm install @mastra/langsmith@latest

구성
구성에 대한 직접 링크

전제조건
전제조건에 대한 직접 링크

  1. 랭스미스 계정: 가입하세요smith.langchain.com
  2. API 키: LangSmith 설정 → API 키에서 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

제로 구성 설정
제로 구성 설정에 대한 직접 링크

환경 변수가 설정된 경우 구성 없이 내보내기를 사용합니다.

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_PROJECTTrace의 기본 프로젝트 이름(선택 사항, 기본값은 "default")
LANGSMITH_BASE_URL자체 호스팅 인스턴스의 API URL(선택 사항)
projectName 구성 옵션은 LANGCHAIN_PROJECT 환경 변수보다 우선하므로, 프로그래밍 방식으로 Trace를 서로 다른 프로젝트에 라우팅할 수 있습니다.

동적 구성
동적 구성에 대한 직접 링크

런타임에 withLangsmithMetadata를 사용하여 스팬별 LangSmith 설정을 재정의할 수 있습니다. 이는 런타임 조건(예: 고객, 환경 또는 기능)에 따라 Trace를 서로 다른 프로젝트로 라우팅할 때 유용합니다.

도우미 사용
도우미 사용에 대한 직접 링크

LangSmith 전용 옵션을 설정하려면 withLangsmithMetadatabuildTracingOptions와 함께 사용하세요.

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

동적 프로젝트 라우팅
동적 프로젝트 라우팅에 대한 직접 링크

런타임 조건에 따라 Trace를 서로 다른 프로젝트로 라우팅하려면 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 accepts these fields:

필드유형설명
projectNamestring이 Trace의 프로젝트 재정의
sessionIdstring관련 Trace를 세션별로 그룹화
sessionNamestring세션의 표시 이름
모든 필드는 선택 사항입니다. 도우미는 기존 메타데이터와 병합되므로 여러 번 호출하거나 다른 추적 옵션과 결합할 수 있습니다.