GitHub - langchain-ai/langsmith-claude-code-plugins: LangSmith plugins for Claude Code
핵심 포인트
- 1이 LangSmith Tracing Plugin for Claude Code는 Claude Code 내의 LLM 대화, 도구 호출, 서브에이전트 실행을 LangSmith로 추적하여 가시성을 제공합니다.
- 2이 플러그인은 각 LLM 실행의 입력, 출력, 메타데이터, 토큰 사용량뿐만 아니라 도구의 이름, 입력 및 출력을 포함한 상세한 데이터를 LangSmith에 기록합니다.
- 3또한, 환경 변수를 통해 쉽게 구성할 수 있으며, 기존 LangSmith Run 아래에 Claude Code의 모든 트레이스를 중첩하여 더 큰 워크플로의 일부로 추적할 수 있습니다.
이 문서는 LangChain AI에서 개발한 LangSmith Tracing Plugin for Claude Code에 대한 설명을 담고 있습니다. 이 플러그인의 주요 목적은 Claude Code 환경 내에서 발생하는 대화, 툴 호출, 서브에이전트(subagent) 실행, 그리고 컨텍스트 압축(context compaction) 과정을 LangSmith 플랫폼으로 추적하여 시각화하고 분석할 수 있도록 하는 것입니다.
핵심 방법론 및 기능:
이 플러그인은 Claude Code와 LangSmith 간의 통합을 통해 개발자가 AI 에이전트의 동작을 상세히 이해하고 디버깅할 수 있도록 지원합니다.
- 추적 대상 상세화:
- LLM 실행(LLM Run): 각 LLM 호출에 대해 다음 정보가 LangSmith에 기록됩니다.
- 입력(Inputs): 누적된 대화 메시지들.
- 출력(Outputs): 어시스턴트의 응답 내용.
- 메타데이터(Metadata):
ls_provider(예: "anthropic"),ls_model_name,ls_invocation_params(모델명, 중단 이유 등), 그리고 토큰 사용량(token usage)이 포함됩니다.
- 툴 실행(Tool Run): 사용된 툴의 이름, 입력 인자, 그리고 출력 내용이 기록되어 툴 사용의 흐름을 파악할 수 있습니다.
- 중단된 턴(Interrupted Turns): 사용자가 응답 도중에 대화를 중단한 경우, 해당 턴은 LangSmith에서 "interrupted" 상태로 표시됩니다.
- LLM 실행(LLM Run): 각 LLM 호출에 대해 다음 정보가 LangSmith에 기록됩니다.
- 설치 및 환경 설정:
- Claude Code 플러그인 설치: Claude Code 내에서
/plugin marketplace add langchain-ai/langsmith-claude-code-plugins,/plugin install langsmith-tracing@langsmith-claude-code-plugins, 그리고/reload-plugins명령어를 통해 쉽게 설치할 수 있습니다. - 환경 변수 설정: 플러그인은 LangSmith에 데이터를 전송하기 위해 필요한 환경 변수들을 지원합니다.
TRACE_TO_LANGSMITH: 추적 활성화를 위해 반드시 "true"로 설정해야 합니다.CC_LANGSMITH_API_KEY: LangSmith API 키를 지정합니다 (기본적으로LANGSMITH_API_KEY환경 변수 값을 사용하기도 함).CC_LANGSMITH_PROJECT: LangSmith 프로젝트 이름을 설정합니다 (기본값 "claude-code").LANGSMITH_ENDPOINT: LangSmith API의 기본 URL을 지정합니다 (기본값https://api.smith.langchain.com).CC_LANGSMITH_DEBUG: 디버그 로깅을 활성화합니다.
- 이러한 변수들은
~/.claude/settings.json파일에 추가하거나, 쉘(shell) 환경 변수로 export 하여 설정할 수 있습니다.
- Claude Code 플러그인 설치: Claude Code 내에서
- 기존 실행에 추적 중첩(Nesting Traces under an Existing Run):
- 이 기능은 Claude Code가 더 큰 규모의 추적되는 워크플로(workflow)의 일부로 프로그래밍 방식으로 호출될 때 유용합니다.
CC_LANGSMITH_PARENT_DOTTED_ORDER환경 변수에 부모 실행(parent run)의dotted_order를 설정함으로써 Claude Code 내의 모든 추적(trace)을 해당 부모 실행의 자식으로 중첩시킬 수 있습니다.- 이는 Python 및 TypeScript 예시 코드에서
langsmith.traceable데코레이터와get_current_run_tree()함수를 사용하여 현재 실행 트리의 정보를 가져와subprocess.run또는execSync호출 시 환경 변수로 전달하는 방식으로 구현됩니다. - 결과적으로 LangSmith에서는 과 같은 계층적 추적 구조를 시각화할 수 있습니다.
제한 사항:
현재 이 플러그인은 서브에이전트가 완료된 후에만 추적합니다. 즉, 서브에이전트 실행 중에 대화 턴을 중단하면 해당 서브에이전트 실행은 LangSmith에 추적되지 않을 수 있습니다.