이 페이지에서

For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.

Send Pydantic AI traces to Agent Analytics

이 페이지는 아직 귀하의 언어로 번역되지 않았습니다. 현재 작업 중이므로 곧 다시 확인해 주십시오.

Pydantic AI emits OpenTelemetry GenAI spans through its native instrumentation. Point that exporter at Amplitude. You don't need the Amplitude AI SDK in the agent process.

This page covers pydantic-ai 2.63.0 and Instrumentation(). The OpenInference Pydantic instrumentor is a fallback, not this page. Amplitude stores the spans you export. Scrub personal data before it leaves your infrastructure. Refer to Agent Analytics privacy modes.

Paste this prompt into your AI coding agent, such as Cursor, Claude Code, Windsurf, GitHub Copilot, or Codex.

text
Connect this Pydantic AI agent to Amplitude Agent Analytics with native OpenTelemetry.

Fetch https://raw.githubusercontent.com/amplitude/Amplitude-AI-Node/main/docs/integrations/pydantic-ai.md
and follow "Part 2: Coding agent procedure".
If @amplitude/ai is installed, the same file is under node_modules/@amplitude/ai/docs/integrations/.
Also follow https://raw.githubusercontent.com/amplitude/Amplitude-AI-Node/main/docs/integrations/privacy.md
and scrub content before export.
Follow links in the guide. If your source isn't listed, start at https://raw.githubusercontent.com/amplitude/Amplitude-AI-Node/main/docs/integrations/README.md

Review the changes, then verify with the steps in Get started.

What this means for you

  • You run: The Pydantic AI process, with its OpenTelemetry exporter pointed at Amplitude.
  • You need: pydantic-ai==2.63.0, your Amplitude project API key, and a stable conversation id and product-analytics user ID on every turn.
  • Protocol: OTLP over HTTP. Amplitude accepts protobuf and JSON. Amplitude doesn't accept gRPC.
  • Privacy: Amplitude doesn't scrub content after receipt. include_content=False keeps the session, user, agent, tool name, model, and token counts. Message text and tool arguments don't arrive. Mask or drop content attributes before export when content is on.

Export

Set these variables in the agent process. In Python, encode the space in the header value as %20. Leave Authorization= as written.

bash
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://api.amplitude.com/otlp/v1/traces
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer%20<project API key>"
OTEL_SERVICE_NAME=order-support

EU data residency uses https://api.eu.amplitude.com/otlp/v1/traces.

Add Instrumentation() to the agent's capabilities. A span processor sets user.id, session.id, and gen_ai.agent.id on every span. Pass the same conversation_id on every agent.run, and pass message_history from the previous result.

Identity

What carries over

A tool-loop continuation repeats the earlier user text inside gen_ai.input.messages. Amplitude doesn't emit that earlier user message again. Tool output is [Agent] Tool Output.

Session close

[Agent] Session End is optional and recommended. A native Pydantic AI export doesn't send it. Amplitude closes the session after 30 minutes without a qualifying agent event by default, and 24 hours from the session start when no per-session override is set. The first close is the one that counts. Enrichment, including the Session Record and content-based signals, runs once after that close. The OpenTelemetry translator doesn't read an idle-timeout attribute from a span. Refer to How sessions close.

Get started

Follow the Pydantic AI integration guide. Send two turns with the same session id, then confirm in Live Events:

  1. Session ID is session.id, not a trace ID.
  2. User ID is the product-analytics user, not unknown.
  3. Agent ID is gen_ai.agent.id.
  4. The turn shows User Message text, the tool call, and AI Response text, with the model name and both token counts.
  5. The second turn doesn't duplicate the first user message.

Guide last verified on October 28, 2026, against pydantic-ai 2.63.0. Pydantic AI is a trademark of its owner. Amplitude isn't affiliated with or endorsed by that owner.

이 내용이 도움이 되었나요?