> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mutagent.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Traces

> Helix judges your agent against the runs it already logs. Here's what counts as a trace and where it reads from.

Helix scores your agent against **real traces** — the runs your agent already produces in
development or production. It reads what you already have; you don't add instrumentation for Helix.

## Supported sources

<CardGroup cols={2}>
  <Card title="Langfuse" icon="chart-line">
    Read traces from a Langfuse project.
  </Card>

  <Card title="OpenTelemetry" icon="signal">
    Any OTel-compatible trace export.
  </Card>

  <Card title="Local JSONL" icon="file-lines">
    A file of runs on disk — no service required.
  </Card>

  <Card title="Session transcripts" icon="message">
    Your **Claude Code** or **Codex** session transcripts, as-is.
  </Card>
</CardGroup>

If you log to something that isn't listed, the local JSONL path is the escape hatch — export a batch
of runs to a file and point Helix at it.

## What a trace needs to be useful

A trace is one run of your agent: the input, what the agent did, and the output. The more of the run
that's captured — tool calls, intermediate steps, the final result — the more precisely the evaluator
can judge and the diagnostics can root-cause. A bare input/output pair still works; a full trajectory
works better.

<Info>
  **No traces yet?** You can still start. Run [Spec](/helix/lifecycle/spec) and
  [Build](/helix/lifecycle/build) to create the agent; Evaluate and Diagnose become useful the moment
  it starts logging runs.
</Info>

## Where your data goes

Your traces stay on your machine — Helix reads them locally and does not upload them. When the
evaluator judges, it reasons on your own coding agent's model, so there's no separate provider key
and no extra inference bill from us.
