Skip to main content

Provider-Native Trace Links

Provider-native trace links are deep links to external trace UIs — such as LangSmith, the OpenAI tracing dashboard, or Google Cloud Trace — that let you jump directly from Pavri to the provider's view of the same execution.

When your agent runs on a framework that has its own tracing system, Pavri captures a reference to that external trace. This reference includes:

  • artifact_id — a unique identifier for the trace link
  • url — the deep link to the external trace UI
  • provider — which tracing system the link points to
  • session linkage — the Pavri session and agent IDs that own this trace
  • status — whether the link is active, verified, or stale

Trace links are not copies of the external trace data. They are pointers that let operators navigate between Pavri and the provider's native tooling.

Supported Providers

ProviderFrameworkNotes
LangSmithLangGraph / LangChainTrace runs in LangSmith UI
OpenAIOpenAI Agents SDKOpenAI's native OTel tracing
AnthropicClaude SDKLimited native tracing; link support planned
GoogleGoogle ADKGoogle Cloud Trace integration
AutoGenAutoGenAutoGen's logging-based trace output
OTelAnyGeneric OpenTelemetry trace ID linkage
CustomAnyUser-provided trace URLs

How Capture Works

During tool execution and other instrumented operations, SDK plugins call the trace link collector to record external trace references. The capture happens as part of the plugin's hook execution — no additional user code is needed.

The planned flow:

  1. The framework plugin detects an active external trace (for example, a LangSmith run ID or an OpenAI trace ID).
  2. The plugin calls the trace link collector with the provider, URL, and artifact ID.
  3. The collector associates the link with the current session and agent.
  4. The link is forwarded to the Pavri backend as part of the session's telemetry.

What's Stored

Each trace link record contains:

FieldDescription
artifact_idUnique identifier for this trace link
urlDeep link to the external trace UI
providerTrace provider enum (e.g., langsmith, openai, google)
session_idPavri session that owns the trace
agent_idPavri agent that produced the trace
statusLifecycle status: active, verified, or stale
captured_atTimestamp when the link was captured

Viewing in the Dashboard

Trace links for a session are visible at:

/sessions/[sessionId]/traces

The trace view shows each captured link with its provider, status, and a clickable URL that opens the external trace UI in a new tab.

Status Lifecycle

Trace links have a three-state lifecycle:

StatusMeaning
activeThe link was captured during execution. The external trace may still be in progress.
verifiedThe Pavri backend has confirmed the external URL is reachable.
staleThe external trace has expired, been deleted, or is no longer reachable.

Links start as active at capture time. The backend periodically checks link reachability and promotes them to verified or marks them stale.

Retention

Trace links are retained for 90 days, matching the session retention window. When a session ages out of retention, its trace links are removed as well.

Per-Framework Provider Mapping

Each framework plugin maps to a default trace provider:

FrameworkDefault Trace ProviderExternal UI
LangGraph / LangChainlangsmithLangSmith trace viewer
OpenAI Agents SDKopenaiOpenAI dashboard traces
Claude SDKanthropicLimited; Anthropic does not expose a full trace UI
Google ADKgoogleGoogle Cloud Trace
AutoGenautogenAutoGen logging output
CrewAIotelGeneric OTel (via AgentOps or Langtrace)

What's Deferred

  • Backend link-reachability verification loop (links start as active; promotion to verified or stale is not yet automated).
  • TypeScript SDK trace-link capture parity (Phase 2).
  • Advanced trace analytics beyond the per-session trace view.