---
title: "Agent Tracing"
description: "Monitor agents with token usage, latency, tool execution, and error tracking."
url: https://docs.sentry.io/platforms/javascript/guides/pi-durable/agent-tracing/
---

# Set Up Agent Tracing for Pi Durable

With [Sentry Agent Tracing](https://docs.sentry.io/product/agents/dashboards.md), you can monitor and debug your AI systems with full-stack context. You'll be able to track key insights like token usage, latency, tool usage, and error rates — and group multi-turn chats in [Conversations](https://docs.sentry.io/product/agents/conversations.md). Agent Tracing data is fully connected to your other Sentry data like logs, errors, and traces.

## [Supported Instrumentation](https://docs.sentry.io/platforms/javascript/guides/pi-durable/agent-tracing.md#supported-instrumentation)

As of SDK version `11.0.0`, Sentry auto-instruments the most popular AI SDKs and frameworks out of the box — no manual setup is required. Just enable [tracing](https://docs.sentry.io/platforms/javascript/guides/pi-durable/tracing.md), then pick your AI stack below. Each integration page has the details.

[![cloudflare icon](https://docs.sentry.io/_next/static/media/cloudflare.7e288bf9.svg)](https://docs.sentry.io/platforms/javascript/guides/cloudflare/agent-tracing/workers-ai.md)

[Workers AI](https://docs.sentry.io/platforms/javascript/guides/cloudflare/agent-tracing/workers-ai.md)

[![cloudflare icon](https://docs.sentry.io/_next/static/media/cloudflare.7e288bf9.svg)](https://docs.sentry.io/platforms/javascript/guides/cloudflare/agent-tracing/agents-sdk.md)

[Agents SDK](https://docs.sentry.io/platforms/javascript/guides/cloudflare/agent-tracing/agents-sdk.md)

[![mastra icon](https://docs.sentry.io/_next/static/media/mastra.0ffd9091.svg)](https://docs.sentry.io/platforms/javascript/guides/mastra.md)

[Mastra](https://docs.sentry.io/platforms/javascript/guides/mastra.md)

[![eve icon](https://docs.sentry.io/_next/static/media/eve.1fd15661.svg)](https://docs.sentry.io/platforms/javascript/guides/eve.md)

[Eve](https://docs.sentry.io/platforms/javascript/guides/eve.md)

[![flue icon](https://docs.sentry.io/_next/static/media/flue.066f2fe9.svg)](https://docs.sentry.io/platforms/javascript/guides/flue.md)

[Flue](https://docs.sentry.io/platforms/javascript/guides/flue.md)

[![pi-durable icon](https://docs.sentry.io/_next/static/media/pi-durable.a561f483.svg)](https://docs.sentry.io/platforms/javascript/guides/pi-durable.md)

[Pi Durable](https://docs.sentry.io/platforms/javascript/guides/pi-durable.md)

## [Tracking Conversations](https://docs.sentry.io/platforms/javascript/guides/pi-durable/agent-tracing.md#tracking-conversations)

[Conversations](https://docs.sentry.io/product/agents/conversations.md) groups multi-turn AI activity into a single replay of messages and tool calls. Use `setConversationId()` so every AI span in a chat session shares the same `gen_ai.conversation.id`.

Some integrations infer a conversation ID automatically. For everything else (including Workers AI), set it yourself at the start of **every request or operation that makes AI calls**, before those calls run. Reuse the same session ID across messages in the chat. The ID is applied to AI-related spans on the current isolation scope (which is typically request-scoped). Pass `null` to unset it.

```javascript
Sentry.setConversationId("conv_abc123");
```

### [Identifying Users in Conversations](https://docs.sentry.io/platforms/javascript/guides/pi-durable/agent-tracing.md#identifying-users-in-conversations)

The [Conversations](https://docs.sentry.io/product/agents/conversations.md) view includes a **User** column. To populate it, call `setUser` once per request or session, before any AI calls:

```javascript
Sentry.setUser({
  id: "user_123",
  email: "jane@example.com",
  username: "jane",
});
```

Any of `id`, `email`, or `username` is sufficient — the Conversations tab displays whichever fields are present. See the [setUser API reference](https://docs.sentry.io/platforms/javascript/guides/pi-durable/configuration/apis.md#setUser) for the full list of supported fields.

## [Options](https://docs.sentry.io/platforms/javascript/guides/pi-durable/agent-tracing.md#options)

### [Privacy Controls](https://docs.sentry.io/platforms/javascript/guides/pi-durable/agent-tracing.md#privacy-controls)

The SDK records generative AI inputs and outputs by default. To turn them off:

```javascript
Sentry.init({
  dsn: "https://<key>@o<orgId>.ingest.sentry.io/<projectId>",
  dataCollection: {
    genAI: { inputs: false, outputs: false },
  },
});
```

You can also set `recordInputs` / `recordOutputs` on a specific AI integration. See each integration page for the API that applies on your platform.

### [Streaming Gen AI Spans](https://docs.sentry.io/platforms/javascript/guides/pi-durable/agent-tracing.md#streaming-gen-ai-spans)

From SDK `10.61.0`, `gen_ai` spans are sent as standalone envelope items (avoids large-payload drops; required for [Conversations](https://docs.sentry.io/product/agents/conversations.md)).

## [Manual Instrumentation](https://docs.sentry.io/platforms/javascript/guides/pi-durable/agent-tracing.md#manual-instrumentation)

You can also instrument agent spans yourself. See [manual instrumentation](https://docs.sentry.io/platforms/javascript/guides/pi-durable/agent-tracing/manual-instrumentation.md).

## [MCP Server Monitoring](https://docs.sentry.io/platforms/javascript/guides/pi-durable/agent-tracing.md#mcp-server-monitoring)

If you're building MCP (Model Context Protocol) servers, Sentry can also track tool executions, prompt retrievals, and resource access. See [MCP Monitoring](https://docs.sentry.io/platforms/javascript/guides/pi-durable/mcp-monitoring.md) for setup instructions.

## Pages in this section

- [Manual Instrumentation](https://docs.sentry.io/platforms/javascript/guides/pi-durable/agent-tracing/manual-instrumentation.md)
