TruLens 개요 — 이벤트와 트레이싱을 한 번에

TruLens 개요

LLM 앱을 만들다 보면 '뭔가 어색한데 왜?'라는 순간이 꼭 와요. TruLens는 감(비브)이 아니라 메트릭으로 에이전트를 평가하고 추적하게 해 주는 오픈소스 라이브러리예요. 에이전트가 어디서 실패하는지 찾고, 품질을 해치지 않고 비용을 줄이는 지점을 보여줘요.

특별한 점

  • 트레이싱이 OpenTelemetry 네이티브 — 트레이스가 어떤 OTLP 백엔드로도 이식 가능해요.
  • 평가는 실시간(trace가 쌓일 때) 또는 데이터셋에 대해 사후 실행 가능해요.
  • RAG Triad — Groundedness(근거), Context Relevance(문맥 관련성), Answer Relevance(답 관련성)를 평가해요.
  • 에이전트 관점: Tool Selection(도구 선택), Plan Adherence(계획 준수), Execution Efficiency(실행 효율)를 봐요.

사용 예시

@instrument 데코레이터로 어떤 앱이든 계측하고, TruApp으로 평가를 트레이스와 연결해요.

from trulens.core.otel.instrument import instrument
from trulens.otel.semconv.trace import SpanAttributes

@instrument(
    span_type=SpanAttributes.SpanType.RETRIEVAL,
    attributes={SpanAttributes.RETRIEVAL.RETRIEVED_CONTEXTS: "return"},
)
def retrieve(self, query: str) -> list:
    return self.vector_store.search(query)

참고로 TruLens는 원래 TruEra가 만들었고, 이후 Snowflake가 인수해 오픈소스로 계속 관리하고 있어요.

더 알아보기