LLM 옵저버빌리티 도구 완전 비교 — LangSmith vs Langfuse vs Helicone 2026
AI 앱의 LLM 호출 비용·오류·지연을 추적하는 세 도구를 비교한다. LangSmith는 LangChain 스택의 제로 설정 옵션, Langfuse는 MIT 오픈소스로 셀프호스팅 가능한 완전 기능 플랫폼, Helicone은 URL 한 줄로 AI 게이트웨이와 비용 추적을 동시에 해결한다. 가격 비교, 상황별 선택 가이드, 병행 구성 예시까지 정리했다.
한 줄 요약: LangSmith는 LangChain 스택에 최적화된 관리형 옵저버빌리티, Langfuse는 MIT 라이선스 오픈소스로 자체 호스팅 가능한 전체 기능 플랫폼, Helicone은 프록시 기반 AI 게이트웨이와 옵저버빌리티를 한 줄 코드로 통합한다. 어떤 LLM 프레임워크를 쓰고, 데이터를 어디에 두고 싶은지에 따라 선택지가 갈린다.
이 글이 필요한 사람
Claude API, OpenAI API로 AI 앱을 만들고 LLM 호출 비용과 오류를 추적하고 싶은 개발자
LangChain으로 에이전트를 만들고 있고 디버깅 도구가 필요한 팀
GDPR·보안 이유로 LLM 트레이스 데이터를 외부 SaaS에 보내기 꺼려지는 엔지니어
AI 앱 프로덕션 비용이 예상보다 높아 원인을 찾고 싶은 개발자
※ 2026년 4월 기준. LangSmith SDK 0.3, Langfuse 3.x, Helicone 최신 클라우드 기준으로 작성.
LLM 옵저버빌리티가 왜 필요한가
LLM 앱은 일반 API 앱과 다르게 동작한다. 같은 프롬프트를 보내도 응답이 달라지고, 토큰 사용량이 호출마다 변하며, 에이전트 체인에서 어느 단계가 실패했는지 로그만으로는 추적이 어렵다. 여기에 비용까지 더해지면 — Claude Opus 4.7 기준 입력 $5/MTok, 출력 $25/MTok — 요청 하나가 얼마나 드는지 실시간으로 파악하지 못하면 청구서를 받고 나서야 이상을 알게 된다.
LLM 옵저버빌리티 도구는 이 문제를 세 축으로 해결한다:
트레이싱: LLM 호출 전체를 입력→출력→지연→토큰으로 기록
평가(Evals): 응답 품질을 자동 또는 수동으로 점수화
비용 추적: 모델별 토큰 사용량과 누적 비용을 시각화
2026년 현재 이 시장은 LangSmith, Langfuse, Helicone 세 도구가 각각 다른 계층에서 경쟁하고 있다. 세 도구 모두 OpenAI, Anthropic, Google 등 주요 모델을 지원하지만 설계 철학이 다르다.
세 도구는 LLM 트레이싱이라는 공통 목표를 두고 각각 프레임워크 통합, 오픈소스 셀프호스팅, AI 게이트웨이 레이어에서 차별화한다.
LangSmith — LangChain 스택의 제로 설정 옵저버빌리티
LangSmith는 LangChain 팀이 만든 관리형 LLM 옵저버빌리티 플랫폼이다. LangChain이나 LangGraph를 이미 쓰고 있다면 환경 변수 2개를 추가하는 것만으로 모든 체인 실행이 자동으로 트레이스된다. 이게 LangSmith의 최대 강점이다.
핵심 기능
자동 트레이싱: LangChain 콜백이 내장돼 있어 코드 변경 없이 체인 전체가 기록됨
Playground: 저장된 트레이스에서 바로 프롬프트를 수정해 재실행할 수 있음
Datasets: 좋은/나쁜 응답을 골라 평가 데이터셋으로 저장, 회귀 테스트에 활용
Annotation Queues: 전문가가 응답을 레이블링해 파인튜닝 데이터를 쌓는 파이프라인
Hub: 프롬프트를 버전 관리하고 팀과 공유하는 중앙 저장소
단점: 클라우드 전용이라 데이터가 LangChain 서버에 저장된다. 트레이스 기반 과금이라 트래픽이 많으면 비용이 급등하고(1M 트레이스 = ~$2,500/월), LangChain 외 스택에서는 통합 작업이 복잡하다.
LangSmith 설정 — 환경 변수 2개로 LangChain 자동 트레이싱
# .env
LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=lsv2_pt_your_api_key_here
LANGCHAIN_PROJECT=my-ai-app # 선택사항, 기본값: default
# Python — 추가 코드 없이 LangChain 자동 추적
from langchain_anthropic import ChatAnthropic
from langchain_core.messages import HumanMessage
# 이 호출부터 자동으로 LangSmith에 트레이스됨
llm = ChatAnthropic(model="claude-sonnet-4-6")
response = llm.invoke([HumanMessage(content="SQL 인젝션 방어 방법 3가지")])
# 수동 트레이싱 (LangChain 외 스택)
from langsmith import traceable
@traceable(name="my-llm-call", tags=["production"])
def call_llm(prompt: str) -> str:
import anthropic
client = anthropic.Anthropic()
msg = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": prompt}]
)
return msg.content[0].text
result = call_llm("Redis 캐시 패턴 설명해줘")
# LangSmith 대시보드: https://smith.langchain.com 에서 확인
LangSmith 무료 티어 주의: Developer 플랜은 월 5,000 트레이스까지 무료다. 에이전트 체인 하나가 LLM 호출 10번 = 10 트레이스로 집계되므로, 소규모 개발 환경에서도 빠르게 소진된다. Plus 플랜($39/seat/월, 10K 트레이스 포함)이나 트레이스 샘플링을 고려해야 한다.
Langfuse — MIT 오픈소스, 셀프호스팅 가능한 완전 기능 플랫폼
Langfuse는 2023년 YC 출신 스타트업이 만든 오픈소스 LLM 옵저버빌리티 플랫폼으로, 2026년 기준 GitHub 19K+ 스타, MIT 라이선스로 공개돼 있다. LangSmith와 기능이 유사하지만 셀프호스팅이 가능하고, 프레임워크에 구애받지 않는다는 점에서 차별화된다.
핵심 기능
트레이싱: LangChain, LlamaIndex, OpenAI SDK, Anthropic SDK 모두 지원. 데코레이터 방식과 OpenTelemetry 방식 모두 가능
Prompt Management: 프롬프트를 버전 관리하고 코드에서 slug로 불러와 A/B 테스트 가능
Evals: 응답을 점수화해 시간별 품질 추이를 추적. LLM as a judge 패턴도 내장
Datasets: 테스트 케이스를 저장하고 새 모델 릴리즈 시 회귀 테스트에 활용
셀프호스팅: Docker Compose 또는 Kubernetes로 자사 서버에 배포 가능. 데이터가 외부로 나가지 않음
가격 실익: Langfuse Cloud는 월 50K 이벤트 무료, 이후 Core $29/월, Pro $199/월이다. 동일 규모에서 LangSmith Pro($39/seat)보다 저렴하고, 셀프호스팅 시 인프라 비용(~$150/월)만 든다.
Langfuse 통합 — Python SDK로 Anthropic API 트레이싱
# pip install langfuse anthropic
import os
from langfuse import Langfuse
from langfuse.decorators import observe, langfuse_context
import anthropic
# Langfuse 초기화
langfuse = Langfuse(
public_key=os.environ["LANGFUSE_PUBLIC_KEY"],
secret_key=os.environ["LANGFUSE_SECRET_KEY"],
host="https://cloud.langfuse.com" # 셀프호스팅: 자체 URL
)
@observe() # 이 데코레이터로 함수 전체가 트레이스됨
def generate_code_review(code: str, user_id: str) -> str:
langfuse_context.update_current_observation(
user_id=user_id,
tags=["code-review", "production"]
)
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=2048,
messages=[{
"role": "user",
"content": f"다음 코드를 리뷰해줘:\n\n{code}"
}]
)
result = message.content[0].text
# 수동 점수 추가 (선택)
langfuse_context.score_current_observation(
name="completeness",
value=1.0,
comment="리뷰가 충분히 구체적임"
)
return result
# 호출 — 자동으로 Langfuse에 기록됨
review = generate_code_review(
code="def add(a, b): return a + b",
user_id="user_123"
)
# Langfuse 대시보드에서 트레이스, 토큰, 비용 확인
# https://cloud.langfuse.com
Langfuse는 LLM 호출 전체를 입력→출력→토큰→비용으로 트레이싱하며 팀 평가와 프롬프트 버전 관리까지 하나의 플랫폼에서 제공한다.
Helicone — 한 줄 코드로 AI 게이트웨이 + 옵저버빌리티
Helicone은 LangSmith, Langfuse와 다른 레이어에서 동작한다. SDK를 래핑하거나 데코레이터를 추가하는 대신, OpenAI API의 base URL 하나를 변경해 모든 요청이 Helicone 프록시를 통과하도록 만든다. 이 방식의 장점은 프레임워크와 완전히 무관하다는 것이다. LangChain이든 직접 SDK 호출이든 curl이든 동일하게 작동한다.
핵심 기능
AI 게이트웨이: OpenAI, Anthropic, Google, Azure OpenAI, Bedrock 등 100+ 프로바이더를 하나의 엔드포인트로 통합. 프로바이더 페일오버와 로드밸런싱 가능
시맨틱 캐싱: 의미가 유사한 요청을 캐시해 반복 비용 20~40% 절감. 코드 변경 없이 헤더 하나로 활성화
Rate Limiting: 사용자별, API 키별 요청 수 제한을 헤더로 설정
비용 추적: 모델별 토큰 비용을 실시간으로 집계해 대시보드 제공
프롬프트 템플릿: 프롬프트를 버전 관리하고 Helicone 대시보드에서 테스트 가능
단점: 트레이싱이 모델 호출 레이어에서만 이루어지기 때문에, 에이전트 체인 내부의 중간 단계(도구 호출, 메모리 조회 등)는 추적되지 않는다. 이런 수준의 가시성이 필요하면 Langfuse나 LangSmith를 함께 써야 한다. 프롬프트 평가(Evals) 기능도 없다.
Helicone 통합 — base URL 변경 한 줄로 모니터링 시작
# pip install anthropic helicone
import anthropic
import os
# Anthropic SDK — base_url 하나만 변경
client = anthropic.Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
base_url="https://anthropic.helicone.ai",
default_headers={
"Helicone-Auth": f"Bearer {os.environ['HELICONE_API_KEY']}",
# 선택: 사용자 및 세션 추적
"Helicone-User-Id": "user_123",
"Helicone-Session-Id": "session_abc",
# 선택: 캐싱 활성화 (동일 프롬프트 재사용 시 비용 절감)
"Helicone-Cache-Enabled": "true",
}
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Docker 멀티스테이지 빌드 예시 보여줘"}]
)
print(message.content[0].text)
# OpenAI SDK — 동일 방식
from openai import OpenAI
client_oai = OpenAI(
api_key=os.environ["OPENAI_API_KEY"],
base_url="https://oai.helicone.ai/v1",
default_headers={
"Helicone-Auth": f"Bearer {os.environ['HELICONE_API_KEY']}"
}
)
# Helicone 대시보드: https://helicone.ai/dashboard 에서 비용·지연·오류 확인
Helicone 캐싱 효과: 동일하거나 의미상 유사한 프롬프트를 반복 호출하는 앱(챗봇 FAQ, 코드 설명 등)에서 시맨틱 캐시가 효과적이다. Helicone이 공개한 사용자 데이터에 따르면 평균 20~40%의 요청이 캐시로 처리됐다. Helicone-Cache-Enabled: true 헤더 하나로 활성화된다.
가격 비교 — 트래픽 규모별 실제 비용
세 도구의 가격 구조는 집계 단위가 다르기 때문에 직접 비교가 어렵다. LangSmith는 트레이스, Langfuse는 이벤트, Helicone은 요청 수를 기준으로 한다. 아래는 '월 10만 LLM 호출, 평균 체인 깊이 5단계' 기준 추정치다.
비용 절감 팁: LangSmith를 쓴다면 LANGCHAIN_TRACING_SAMPLE_RATE=0.1로 트레이스를 10%만 수집해 비용을 90% 줄일 수 있다. Langfuse는 이벤트 기준 과금이라 span 수를 조절하면 된다. Helicone은 10분 캐시 TTL로 반복 호출을 줄여 LLM 자체 비용도 절감된다.
상황별 선택 가이드 — 어떤 도구를 골라야 하나
세 도구는 배타적이지 않다. 실제로 많은 팀이 Helicone을 게이트웨이로 두고, Langfuse로 깊은 트레이싱을 병행하는 방식을 사용한다.
실전 구성 — Claude API + Langfuse + Helicone 동시 사용
Helicone을 AI 게이트웨이로 두고 Langfuse로 애플리케이션 레벨 트레이싱을 병행하는 구성이다. Helicone이 모델 호출 레이어의 비용과 지연을 잡고, Langfuse가 앱 로직 전체의 흐름을 기록한다.
Claude API + Helicone 게이트웨이 + Langfuse 앱 트레이싱 동시 구성
# pip install anthropic langfuse
import anthropic
import os
from langfuse.decorators import observe, langfuse_context
# Helicone 프록시를 통한 Anthropic 클라이언트
client = anthropic.Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
base_url="https://anthropic.helicone.ai",
default_headers={
"Helicone-Auth": f"Bearer {os.environ['HELICONE_API_KEY']}",
"Helicone-Cache-Enabled": "true",
}
)
@observe(name="rag-pipeline") # Langfuse 트레이싱
def run_rag_pipeline(query: str, context_docs: list[str], user_id: str) -> str:
langfuse_context.update_current_observation(
user_id=user_id,
input={"query": query, "doc_count": len(context_docs)},
tags=["rag", "production"]
)
context = "\n\n".join(context_docs)
prompt = f"""다음 문서를 참고해서 질문에 답해줘.
문서:
{context}
질문: {query}"""
# Helicone 게이트웨이를 통해 호출 → 모델 레이어 비용/지연 추적
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=2048,
messages=[{"role": "user", "content": prompt}]
)
result = response.content[0].text
langfuse_context.update_current_observation(
output=result,
usage={"input_tokens": response.usage.input_tokens,
"output_tokens": response.usage.output_tokens}
)
return result
# Langfuse: 앱 흐름 추적 (어느 단계에서 실패했는지)
# Helicone: 모델 호출 비용·지연·캐시 히트 추적
answer = run_rag_pipeline(
query="Kubernetes에서 OOMKilled가 발생하는 원인과 해결법",
context_docs=["...k8s docs..."],
user_id="engineer_456"
)
Helicone이 모델 API 게이트웨이 레이어에서 비용·캐싱을 처리하고, Langfuse가 애플리케이션 체인 전체를 추적하는 구성이 프로덕션에서 가장 완전한 가시성을 제공한다.