Installation
이 wrapper는 AI SDK v5와
langsmith>=0.3.63이 필요합니다. 이전 버전의 AI SDK 또는 langsmith를 사용하는 경우, 이 페이지의 OpenTelemetry (OTEL) 기반 접근 방식을 참조하세요.Environment configuration
Basic setup
AI SDK method를 import하고 wrap한 다음, 평소처럼 사용하세요:traceable과 함께 사용하기
AI SDK call 주위나 AI SDK tool call 내부에 traceable call을 wrap할 수 있습니다. 이는 LangSmith에서 실행을 그룹화하려는 경우 유용합니다:
Tracing in serverless environments
serverless 환경에서 추적할 때는 환경이 종료되기 전에 모든 실행이 flush되기를 기다려야 합니다. 이를 위해 AI SDK method를 wrap할 때 LangSmithClient instance를 전달한 다음, await client.awaitPendingTraceBatches()를 호출할 수 있습니다.
생성하는 모든 traceable wrapper에도 이를 전달해야 합니다:
Next.js를 사용하는 경우, 이 로직을 넣을 수 있는 편리한 after hook이 있습니다:
Passing LangSmith config
AI SDK method를 처음 wrap할 때와providerOptions.langsmith를 통해 실행하는 동안 모두 LangSmith 전용 config를 wrapper에 전달할 수 있습니다.
여기에는 metadata(나중에 LangSmith에서 실행을 필터링하는 데 사용할 수 있음), 최상위 실행 이름, tag, 사용자 정의 client instance 등이 포함됩니다.
wrap할 때 전달된 config는 wrapped method로 수행하는 모든 향후 호출에 적용됩니다:
providerOptions.langsmith를 통해 runtime에 config를 전달하면 해당 실행에만 적용됩니다.
적절한 typing을 보장하기 위해 createLangSmithProviderOptions에서 config를 import하고 wrap하는 것을 권장합니다:
Redacting data
사용자 정의 input/output 처리 함수를 지정하여 AI SDK가 LangSmith로 전송하는 input과 output을 사용자 정의할 수 있습니다. 이는 LangSmith로 전송하지 않으려는 민감한 데이터를 처리하는 경우 유용합니다. output 형식은 사용하는 AI SDK method에 따라 다르므로, wrapped method에 개별적으로 config를 정의하고 전달하는 것을 권장합니다. 최상위 수준에서generateText를 호출하면 내부적으로 LLM을 호출하고 여러 번 호출할 수 있으므로, AI SDK call 내의 하위 LLM 실행에 대해서도 별도의 함수를 제공해야 합니다.
또한 input과 output에 대한 적절한 type을 얻기 위해 createLangSmithProviderOptions에 generic parameter를 전달하는 것을 권장합니다.
다음은 generateText에 대한 예제입니다:
execute method를 traceable로 wrap하세요:
traceable 반환 type이 복잡하므로 cast가 필요합니다. cast를 피하려면 AI SDK tool wrapper 함수를 생략할 수도 있습니다.
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.