본문

코드를 이해하는 AI 에이전트, 그 다음 단계: LLM Observability (LangSmith vs LangFuse)

지난 글에서 사내 고유 환경(Proframe)을 위한 코딩 에이전트 구축 시, RAG 파이프라인에서 데이터 전처리가 얼마나 중요한지 공유했습니다. AWS Glue와 OpenSearch를 활용해 검색 품질을 높인 덕분에 에이전트는 이제 제법 쓸만한 답변을 내놓습니다.

하지만 프로덕션 도입을 앞두고 새로운 고민이 생겼습니다. "에이전트가 왜 그런 답변을 했는지, 비용은 얼마나 드는지, 성능은 유지되고 있는지 어떻게 알 수 있을까?"

 

단순한 로그만으로는 LLM의 복잡한 추론 과정(Chain)을 추적하기 어렵습니다. 이것이 바로 LLM Observability(관측 가능성) 도구가 필요한 이유입니다. 이번 글에서는 대표적인 두 도구, LangSmith와 LangFuse를 비교하고 핵심 활용 방안을 정리합니다.


1. LangSmith vs LangFuse: 핵심 비교

두 도구 모두 훌륭한 트레이싱(Tracing) 기능을 제공하지만, 지향점과 운영 방식에 차이가 있습니다.

특징 LangSmith (by LangChain) LangFuse
생태계 통합 LangChain 네이티브
LangChain 사용 시 코드 한 줄로 통합 완료
프레임워크 중립적
LangChain, LlamaIndex, 일반 API 호출 모두 유연하게 지원
배포 방식 주로 SaaS 중심
(Self-hosting은 엔터프라이즈 한정적)
오픈소스 중심
SaaS와 Self-hosting(Docker 간편 배포) 모두 자유로움
강점 세련된 UI/UX, 강력한 평가(Evaluation) 및 데이터셋 관리 기능, LangChain 신기능의 빠른 지원 투명한 가격 정책(혹은 무료 Self-hosting), 빠른 속도, 특정 벤더 락인(Lock-in) 없는 유연함
추천 대상 LangChain을 하드하게 사용하며, SaaS의 편리함과 강력한 평가 도구가 필요한 조직 프레임워크 제약 없이 유연한 구성이 필요하거나, 데이터 보안/비용 이슈로 자체 호스팅을 선호하는 조직

 

저희 팀의 선택: LangFuse (Self-Hosted on AWS)

저희는 사내 폐쇄망 환경 특성과 장기적인 비용 통제를 고려하여, AWS ECS 위에 LangFuse를 자체 호스팅하는 방식을 선택했습니다. 프레임워크 중립적이라 향후 LangChain 외 다른 도구를 도입하더라도 유연하게 대응할 수 있다는 점도 주효했습니다.

 


 

2. Observability 핵심 활용 방안 (feat. '맥락'을 이해하는 AI 코딩 Agent 구축 기술)

도구 도입 자체가 목적이 아닙니다. 저희는 다음 세 가지 핵심 목표를 위해 Observability를 활용합니다.

 

A. 트레이싱(Tracing)을 통한 '할루시네이션' 원인 분석

에이전트가 없는 레거시 함수를 만들어내거나 잘못된 설명을 할 때가 있습니다. 이때 트레이스 상세 화면을 통해 전체 실행 흐름을 역추적합니다.

  • Retriever 단계 확인: OpenSearch가 애초에 엉뚱한 레거시 코드 청크를 가져왔는가? (→ RAG 검색 로직 개선 필요)
  • LLM 프롬프트 확인: 검색된 맥락은 맞았으나, LLM에게 전달된 최종 프롬프트가 모호했는가? (→ 프롬프트 엔지니어링 개선 필요)
  • 이 과정을 통해 막연한 추측이 아닌, 데이터 기반의 디버깅이 가능해집니다.

B. 비용 및 레이턴시(Latency) 병목 구간 식별

"답변이 너무 느려요"라는 피드백이 올 때, 어느 구간이 문제인지 파악해야 합니다.

  • Observability 대시보드에서 실행 단계별 소요 시간을 시각화합니다.
  • OpenSearch 검색이 느린지, Bedrock(LLM) 생성이 느린지, 혹은 특정 복잡한 Chain 단계에서 병목이 발생하는지 식별하고 최적화합니다. 또한, 토큰 사용량을 추적하여 과도한 비용이 발생하는 쿼리 패턴을 감지합니다.

C. 데이터셋 기반의 정량적 평가(Evaluation) 체계 구축

가장 중요한 단계입니다. 에이전트를 업데이트했을 때 성능이 나아졌는지 어떻게 확신할까요?

  • 골든 데이터셋 구축: 개발자들이 자주 묻는 질문과 모범 답안(검색되어야 할 코드 청크 ID 포함)을 LangFuse 내 데이터셋으로 관리합니다.
  • 자동 평가 실행: 파이프라인 변경 시, 이 데이터셋을 대상으로 테스트를 실행하고 '검색 정확도(Recall/Precision)'와 '답변 적절성' 점수를 자동으로 산출하여 배포 여부를 결정합니다.

3. AWS 아키텍처 구성도 (LangFuse Self-Hosted)

기존 RAG 파이프라인에 Observability 계층을 추가한 구성도입니다. 에이전트 애플리케이션은 메인 로직을 수행하면서, 비동기(Asynchronous) 방식으로 트레이스 데이터를 LangFuse 서버로 전송하여 본래 성능에 영향을 주지 않도록 구성했습니다.

[구성도 예시] LLM Application with Observability using self-hosted LangFuse

 

공유

댓글