# See What Your Agent Did

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [agentic-data-plane-full.txt](https://docs.redpanda.com/agentic-data-plane-full.txt)

---
title: See What Your Agent Did
latest-operator-version: v26.1.5
latest-console-tag: v3.7.4
latest-connect-version: 4.96.1
latest-redpanda-tag: v26.1.10
docname: transcripts
page-component-name: agentic-data-plane
page-version: master
page-component-version: master
page-component-title: Agentic Data Plane
page-relative-src-path: transcripts.adoc
page-edit-url: https://github.com/redpanda-data/adp-docs/edit/main/modules/monitor/pages/transcripts.adoc
description: Open a transcript in ADP, read the conversation turn by turn, and investigate errors, costs, and performance.
page-topic-type: how-to
personas: agent_builder, domain_evaluator, platform_engineer, security_compliance_lead
learning-objective-1: Open a transcript from an agent's Transcripts tab
learning-objective-2: Read a transcript as a turn-by-turn conversation, including tool calls and token usage
learning-objective-3: Investigate errors, slow turns, and cost anomalies from the transcript detail view
page-git-created-date: "2026-05-28"
page-git-modified-date: "2026-06-10"
---

<!-- Source: https://docs.redpanda.com/agentic-data-plane/monitor/transcripts.md -->

Use an agent’s transcripts to read a complete record of each conversation, turn by turn. Each transcript captures the conversation between the user, the agent, any LLM calls, and any tools it invoked, along with token usage, latency, estimated cost, and any errors.

For conceptual background on the underlying OpenTelemetry data model, see [How Observability Works](https://docs.redpanda.com/agentic-data-plane/monitor/concepts/).

After reading this page, you will be able to:

-   Open a transcript from an agent’s Transcripts tab

-   Read a transcript as a turn-by-turn conversation, including tool calls and token usage

-   Investigate errors, slow turns, and cost anomalies from the transcript detail view


## [](#prerequisites)Prerequisites

-   A [running agent](https://docs.redpanda.com/agentic-data-plane/connect/create-agent/) with at least one execution.

-   The [TranscriptReader role](https://docs.redpanda.com/agentic-data-plane/control/permissions-reference/#transcript-permissions) (or Admin). Transcript reads are not part of the default Reader or Writer roles.


## [](#open-an-agents-transcripts)Open an agent’s transcripts

1.  Open **Agents** in the sidebar and select the agent.

2.  Open the **Transcripts** tab.


The tab lists the agent’s recent conversations, one row per conversation.

## [](#read-the-transcripts-list)Read the transcripts list

Each row represents one conversation. Columns include:

-   `Conversation`: The conversation ID, with the conversation title when one exists.

-   `Started`: When the conversation began.

-   `Duration`: End-to-end wall-clock time.

-   `Turns`: Number of turns in the conversation.

-   `Status`: `Completed`, `Error`, or `Running`.

-   `Tokens`: Total tokens across the conversation.


A transcript marked _reconstructed_ is one in which some turns were rebuilt from LLM message context after the original spans were evicted from `redpanda.otel_traces`. See [Reconstructed transcript history](https://docs.redpanda.com/agentic-data-plane/monitor/concepts/#history-reconstruction) for what that means.

### [](#filter-the-list)Filter the list

-   Use the search box to match against a conversation ID or title.

-   Use the status dropdown to narrow the list to `Completed`, `Error`, or `Running` conversations.


The list loads in pages. Click **Load more** to fetch older conversations, and use the refresh control to pick up new ones.

## [](#open-a-transcript)Open a transcript

Click any row to open the conversation detail view. The view has two parts: a summary header and the conversation.

### [](#summary-header)Summary header

The summary header reports:

-   The conversation ID and a status badge (`Completed`, `Error`, or `Running`).

-   The start time, end-to-end duration, and turn count.

-   A total-tokens chip.

-   A **Chat** / **Detailed** view toggle. Chat shows the user-visible exchange; Detailed adds per-turn metadata such as latency, token splits, and tool calls.


If the conversation ended with a top-level error, an error banner appears below the header with the code and message.

### [](#read-the-conversation)Read the conversation

Turns are listed in order by role:

-   **SYSTEM**: The system prompt and any priming instructions.

-   **USER**: A user message that started or continued the conversation.

-   **ASSISTANT**: A response from the LLM. In the Detailed view, shows input/output token counts and latency. If the assistant turn called a tool, its tool calls are nested underneath.

-   **TOOL**: A tool invocation. Shows the tool name, the arguments passed, the result, and the latency of the call.


Any turn may carry the `is_reconstructed` marker. Reconstructed turns preserve role order and the high-level content of the conversation but do not carry per-turn token counts, latency, or tool-call arguments. See [Reconstructed transcript history](https://docs.redpanda.com/agentic-data-plane/monitor/concepts/#history-reconstruction) for the mechanics.

### [](#errors)Errors

An errored transcript shows `TranscriptStatus.ERROR` in the summary header. The specific failure appears on the turn that raised it, with:

-   **Code**: `TranscriptError.code` (for example, a provider error code or `INVALID_ARGUMENT`)

-   **Message**: A short description from the LLM provider, the tool, or the agent runtime


If the failure happened during a tool call, the error is attached to the TOOL turn; if it was an LLM call, it’s on the ASSISTANT turn; if neither, it’s on the trace root.

## [](#common-investigation-tasks)Common investigation tasks

### [](#debug-errors)Debug errors

1.  Set the status dropdown to `Error`.

2.  Open the failing transcript and scroll to the turn carrying the error code.

3.  Read the immediately preceding turns (tool arguments, assistant output) for root cause.


### [](#investigate-performance-issues)Investigate performance issues

1.  Sort the list visually by the `Duration` column to spot slow conversations.

2.  Open a slow transcript, switch to the **Detailed** view, and scan the per-turn latency to find the bottleneck turn.

3.  For tool-bound bottlenecks, expand the tool call to see arguments and result size: a large result often correlates with slow tool execution.


### [](#analyze-tool-usage)Analyze tool usage

Open a transcript in the **Detailed** view to read each tool call: arguments in, results out, latency, and a status pill. Tool calls are nested under the assistant turn that made them.

### [](#monitor-llm-interactions-and-cost)Monitor LLM interactions and cost

The transcript shows token usage per turn. For spend analysis across agents, models, and users, open **Cost & Usage** under **Governance** in the sidebar (see [View cost and usage](https://docs.redpanda.com/agentic-data-plane/gateway/configure-provider/#view-cost-and-usage)), or use breakdown queries through `SpendingService`; per-transcript `estimated_cost_usd` is also available through the Transcripts API.

## [](#limitations)Limitations

-   The list loads in pages from most recent backward. If the conversation you need is old, keep loading more pages or search by its conversation ID.

-   Reconstructed turns do not carry token counts, latency, or tool-call arguments for the reconstructed range. For byte-level fidelity, lower the ingestion lag or extend `redpanda.otel_traces` retention (see [How Redpanda stores trace data](https://docs.redpanda.com/agentic-data-plane/monitor/concepts/#opentelemetry-traces-topic)).

-   Estimated USD cost is only populated for models covered by the pricing table.


## [](#troubleshooting)Troubleshooting

### [](#transcript-stuck-in-running)Transcript stuck in RUNNING

A transcript stays in `RUNNING` until the root span closes. Common causes:

-   The agent or MCP server is still executing (this is normal: Wait, or open a newer transcript).

-   The root span never flushed because the process was killed mid-execution. Expect this to resolve once the OTLP ingestion lag clears; if it doesn’t after several minutes, the trace is likely orphaned.


### [](#usd-cost-shows-0)USD cost shows 0

`TranscriptUsage.estimated_cost_usd` is populated by the cost-reporting pipeline from the `gen_ai.usage.*` attributes on each LLM-call span combined with a per-model pricing table. For the full list of cost-bearing attributes (including the explicit USD-cost fields), see [Key attributes by layer](https://docs.redpanda.com/agentic-data-plane/monitor/concepts/#key-attributes-by-layer).

If cost is `0` for a transcript that clearly used tokens, check:

-   The model is in the pricing table. To use a custom rate (negotiated contract, internal chargeback), see [Override per-model pricing](https://docs.redpanda.com/agentic-data-plane/control/budgets/#override-per-model-pricing).

-   The cost-reporting pipeline is enabled on your environment.

-   The LLM-call spans carry the `gen_ai.usage.*` attributes the pipeline reads: Either the token-count inputs (`gen_ai.usage.input_tokens`, `gen_ai.usage.output_tokens`) or the explicit USD-cost fields listed on the concepts page.


> 📝 **NOTE**
>
> Cache-write tokens (Anthropic 4.x, OpenAI 4.x prompt caches) are attributed to the **CACHED** bucket on streaming and non-streaming responses alike. If a transcript shows zero cache cost on a request that clearly populated a prompt cache, check that the upstream actually wrote to the cache (the response includes a non-zero `cache_creation_input_tokens` or equivalent token-count field) before treating it as a discrepancy.

### [](#all-turns-marked-reconstructed)All turns marked reconstructed

Reconstruction happens when the original spans have been evicted from `redpanda.otel_traces`. Causes:

-   Retention on `redpanda.otel_traces` is aggressive relative to how long the conversation has been running.

-   OTLP ingestion fell behind and the span was dropped before it reached the topic.


For long-running conversations, accept some reconstruction; for short conversations whose turns are all reconstructed, investigate ingestion and retention.

### [](#transcript-missing-entirely)Transcript missing entirely

-   Confirm the agent or MCP server actually ran: Check its logs and the corresponding session or task topic.

-   Confirm your user holds the TranscriptReader role (or Admin). Transcript reads require the `dataplane_adp_transcript_get` and `dataplane_adp_transcript_list` permissions, which are not part of the default Reader or Writer roles. See [Transcript permissions](https://docs.redpanda.com/agentic-data-plane/control/permissions-reference/#transcript-permissions).

-   Confirm the feature flag enabling Transcripts is on for your environment.


## [](#next-steps)Next steps

-   [Monitor Agent Activity](https://docs.redpanda.com/agentic-data-plane/monitor/monitor-agents/)

-   [Test an MCP Server’s Tools with the Inspector](https://docs.redpanda.com/agentic-data-plane/connect/test-tools/)

-   [Troubleshoot Agents](https://docs.redpanda.com/agentic-data-plane/monitor/troubleshoot-ai-agents/)