
This page is the product-level overview. The [Agent Analytics SDK](/docs/sdks/agent-analytics/sdk) is the full developer reference, covering install, initialization, instrumenting sessions and tools, provider notes, edge runtimes, OTel ingestion, cost handling, and the full API.

The timeline below shows what your instrumentation produces. Click any event to inspect its shape.

{% agent-event-timeline /%}

## How setup works

Three things have to be true before data shows up in Amplitude:

1. **Your project has Agent Analytics enabled.** If it isn't, contact your CSM.
2. **You've instrumented your code.** The Amplitude AI SDK (Node and Python) covers most stacks. Runtimes the SDK doesn't bundle into can send events directly to the HTTP API. These runtimes include Cloudflare Workers, other edges, and unsupported languages such as Java, Go, and Ruby.
3. **You've decided what leaves your app.** Privacy mode controls whether prompt and response text reaches Amplitude.

## Choose an instrumentation path

| Path                                  | Use when                                                              | Where to go                                                                             |
| ------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| **Amplitude AI SDK (Node or Python)** | Most stacks                                                           | [SDK reference](/docs/sdks/agent-analytics/sdk)                                         |
| **HTTP API**                          | Runtimes the SDK doesn't support (Java, Go, Ruby, Cloudflare Workers) | [Instrument without the SDK](/docs/sdks/agent-analytics/sdk#instrument-without-the-sdk) |
| **OpenTelemetry**                     | Stacks already emitting OTel spans, or you want span-first observability | [Ingest OpenTelemetry spans](/docs/sdks/agent-analytics/sdk#ingest-opentelemetry-spans) — call `enable_otel()` / `enableOtel()` for the recommended span-first approach |

## Choose a privacy mode

| Mode                | What leaves your app                                             | Use when                             |
| ------------------- | ---------------------------------------------------------------- | ------------------------------------ |
| `full` (default)    | Prompt and response text, with PII redaction on by default       | Most products                        |
| `metadata_only`     | Tokens, latency, model, and cost (no text)                       | Sensitive or regulated data          |
| `customer_enriched` | Pre-scored summaries you send through `trackSessionEnrichment()` | You already have an evaluation stack |

Refer to [Choose a privacy mode](/docs/sdks/agent-analytics/sdk#choose-a-privacy-mode) for the configuration details and PII-redaction tunables.

## Verify your data

After events start arriving, your project's Live Events stream shows `[Agent] AI Response` events with `Session ID`, `Agent ID`, `Model`, `Provider`, `Latency Ms`, `Input/Output Tokens`, and `Cost USD` populated. If any of those fields are missing, walk through [Verify your data](/docs/sdks/agent-analytics/sdk#verify-your-data) in the SDK reference.

- **Local verification**: Before deploying, run `MockAmplitudeAI.summary()` to get a fill-rate report of all captured events. It checks the eight verification gates (identity, session, model, provider, latency, input tokens, output tokens, cost) and flags gaps before data reaches Amplitude.

After you confirm the data is flowing, go to [Analyze agent results](/docs/amplitude-ai/agent-analytics/results) for what Amplitude infers on top: turn-level signals, session rollups, and the evaluator results that drive the dashboards.
