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

# Introduction

> Capture every step your AI agent takes so you can debug, evaluate, and optimize

Your agent makes dozens of decisions every run -- retrieving context, calling models, executing tools, generating responses. Without observability, failures are invisible, regressions go unnoticed, and optimization is guesswork.

ZeroEval Tracing captures the full execution graph of your AI system so you can:

* **Debug** failed runs by inspecting the exact inputs, outputs, and errors at every step
* **Evaluate** output quality at scale with [calibrated judges](/judges/introduction) that score your traces automatically
* **Optimize** prompts and models by comparing versions against real production data with [prompt optimization](/autotune/introduction)
* **Monitor** cost, latency, and error rates across sessions, traces, and spans

## How it works

<Steps>
  <Step title="Instrument your code">
    Add a few lines to your application. The SDK automatically captures LLM
    calls, or you can create custom spans for any operation.
  </Step>

  <Step title="Traces flow into ZeroEval">
    Every agent run becomes a trace -- a tree of spans showing what happened, in
    what order, with full inputs and outputs.
  </Step>

  <Step title="Organize with sessions and tags">
    Group related traces into sessions and tag them with metadata for filtering.
    Attach [human feedback](/feedback/human-feedback) or let [judges](/judges/introduction) evaluate outputs automatically.
  </Step>

  <Step title="Unlock the feedback loop">
    Use your traced data to run judges, optimize prompts, and build evaluations
    \-- all from the same production data.
  </Step>
</Steps>

## Get started

Create an API key from [Settings → API Keys](https://app.zeroeval.com/settings?section=api-keys), then pick your integration path:

<CardGroup cols={2}>
  <Card title="Python SDK" icon="python" href="/tracing/sdks/python/setup">
    Decorators and context managers for Python apps. Auto-instruments OpenAI,
    LangChain, Claude Agent SDK, Gemini, and more.
  </Card>

  <Card title="TypeScript SDK" icon="js" href="/tracing/sdks/typescript/setup">
    Wrapper functions for Node.js and Bun. Auto-instruments OpenAI, Vercel AI
    SDK, and Claude Agent SDK.
  </Card>

  <Card title="REST API" icon="code" href="/tracing/api-reference">
    Send spans, traces, and sessions directly over HTTP from any language.
  </Card>

  <Card title="OpenTelemetry" icon="tower-broadcast" href="/tracing/opentelemetry">
    Route OTLP traces from any OpenTelemetry-instrumented app to ZeroEval.
  </Card>
</CardGroup>

<Tip>
  Using Cursor, Claude Code, or another coding agent? The [`zeroeval-install`
  skill](/integrations/skills) can handle SDK setup, first trace, and prompt
  migration for you.
</Tip>

<Note>
  Need source-side PII redaction for ingested span payloads? ZeroEval supports
  opt-in redaction of `input_data` and `output_data` in both SDKs. See [PII
  redaction](/tracing/pii-redaction).
</Note>
