2.10New alignment tools: score a judge against a ground-truth benchmark, and find where judge models disagree →
Evals + tracing for AI agents

Evaluate and trace
AI agents.
Move from vibes to metrics.

TruLens finds where your agent fails and where you can cut cost without losing quality. Open source, OpenTelemetry-native.

Adopted by AI teams at
The problem

Agents fail differently than normal software.
You need traces and evals to find out why.

Trace agent actions.

Every span. Understood.

Latency, inputs, outputs, tokens and cost, recorded per step, so a bad answer has a traceable cause.

Trace Details Support Agent / v1-passthrough / record c17f0a94-6d2e-4f31-9a1b-7e5c02d84bb3
Scores on every step

Every score, explained.

Judges explain the score, so a low score points to exactly what went wrong.

Feedback Results

Metrics (click to learn more)

Benchmarked judges

Don't take our word for it.

TruLens judges are best in class when graded against human annotations, out of the box.

95%
Agent errors caught with Agent GPA on TRAIL/GAIA
267 of 281 human-annotated errors, against 55% for the baseline trace judge, over TRAIL and GAIA agent traces. arXiv:2510.08847 ↗
0.81
Groundedness F1 on LLM-AggreFact
Ahead of a fine-tuned, proprietary model, Bespoke-MiniCheck-7B, on F1, precision and recall, over an 11,000-example LLM-AggreFact holdout. RAG triad benchmarks ↗
0.93
Context relevance NDCG@5 via AIMultiple
First of five tools on three of four ranking metrics benchmarked, NDCG@5, Spearman ρ and MRR; ahead of WandB Weave, RAGAS, DeepEval and UpTrain. AIMultiple, 23 March 2026 ↗
4.2:1
Context relevance adversarial win-loss via AIMultiple
Scored the correct passage over a near-copy with one fact swapped 4.2 times for every reversal, against 3.3:1 for WandB Weave, the next highest scoring tool. AIMultiple, 23 March 2026 ↗
Customize

Then tune them to your domain.

Start with state of the art judges, align judges to your domain with your private data. Add a rubric, examples, adjust the score range with the plumbing done for you.

from trulens.core import Metric, Selector

f_relevance = Metric(
    implementation=provider.relevance_with_cot_reasons,
    name="Answer Relevance",
    selectors={
        "prompt": Selector.select_record_input(),
        "response": Selector.select_record_output(),
    },
)
Pick a winner

Compare versions.
Ship the frontier.

One tool call with the wrong arguments put the wrong policy in context and a wrong answer in front of a customer. Fixing it moved correctness 0.27 to 0.90. Additional experimentation unlocks further improvement and helps you find the quality/cost frontier.

Leaderboardclick a column to sort · untick a version to drop it from the chart
Compareavg of metric values by app version
Use cases

What TruLens evaluates for you.

Agents

Did it pick the right tool and follow its plan?

  • Tool Selection
  • Plan Adherence
  • Execution Efficiency

RAG

Is the answer supported by what was retrieved?

  • Groundedness
  • Context Relevance
  • Answer Relevance

MCP apps

Are your MCP servers returning usable results?

  • Tool Calling
  • Tool Quality
  • MCP span tracing

Summarization

Did it keep the substance and drop the noise?

  • Comprehensiveness
  • Groundedness
  • Conciseness
Instrument any app

OpenTelemetry In.
Traces Out.

Instrument any app in plain python, or auto-instrument your favorite framework.

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)
When evals run

Live, or over a dataset.

from trulens.apps.app import TruApp

tru_rag = TruApp(
    rag,
    app_name="SupportAgent",
    app_version="v3",
    feedbacks=[f_groundedness, f_answer_relevance, f_context_relevance],
)

# recording a trace kicks off evaluation computation
with tru_rag as recording:
    rag.query("Which policy covers this claim?")

Recording a trace starts evaluation; a run replays a dataset. Same metrics either way, and the eval spans land in the trace, scores and leaderboard views above.

Metrics

The breadth of evals
agentic apps actually need.

Agentic

  • Tool Selection
  • Tool Calling
  • Tool Quality
  • Plan Adherence
  • Plan Quality
  • Execution Efficiency
  • Logical Consistency

Retrieval & RAG

  • Context Relevance
  • Groundedness
  • Answer Relevance
  • Comprehensiveness

Safety

  • Harmfulness
  • Toxicity
  • Maliciousness
  • Stereotyping

Quality

  • Coherence
  • Conciseness
  • Sentiment
  • Language match

Groundtruth

  • Agreement
  • Ranking (NDCG, MRR)
  • Precision / Recall

Custom

  • Any Python function
  • Any LLM-as-judge prompt
  • Any span attribute
Integrations

Bring your own stack.

No rewrite, no lock-in. TruLens traces the app you built, judges with the model you chose, and writes to the database you run.

Frameworks & agentsInstrumented, span by span

LangChain LangGraph LlamaIndex Model Context Protocol OpenAI Agents SDK

Models & judgesSwap judges without rewriting an eval

OpenAI Anthropic Google Gemini Azure OpenAI AWS Bedrock Snowflake Cortex Hugging Face LiteLLM Ollama

RetrievalTraced and scored for relevance

Chroma Pinecone Milvus Weaviate Qdrant MongoDB Atlas FAISS

Logging & platformsWhere the traces land

Snowflake MLflow Datadog PostgreSQL SQLite
Get started

Get Started.

Quickstarts for LangChain, LangGraph, LlamaIndex and custom apps.

Why a colossal squid

The largest eye in nature,
with its own headlights.

A colossal squid's eyeball is the size of a soccer ball, and it carries light organs that illuminate whatever it looks at. That is the job here: make the dark parts of your agent visible, then measure them.

Shepherded by Snowflake

Originally created by TruEra and used by thousands of developers. Since the acquisition, Snowflake actively maintains TruLens in open source.