Skip to main content
Claude Managed Agents runs the agent loop for you. Its telemetry arrives as OpenTelemetry spans that a Claude Console telemetry destination sends to an OTLP endpoint you choose. EvalGate imports those spans offline into the same evalgate.agent-run.v2 runs as Claude Code, so a view or report can compare the two.
This profile is Experimental. It is written from Anthropic’s beta span reference and tested against a synthetic capture, not a real one. Span names and attributes can change during the beta. It ships in the TypeScript 4.0.0 source candidate of @evalgate/sdk, which is not published yet. EvalGate has no hosted intake for these spans yet: you run the Collector and the import.

1. Run a Collector that writes spans to a file

The destination needs an OTLP/HTTP endpoint that Anthropic can reach over HTTPS. Put an OpenTelemetry Collector with the file exporter behind it:
Protect the endpoint with a header you choose, and terminate TLS in front of it. EvalGate never sees this endpoint or its header.

2. Add a telemetry destination in the Claude Console

Follow Anthropic’s OpenTelemetry setup and set:
  • Base URL: your Collector’s HTTPS address. The Console adds /v1/traces.
  • Content mode: keep Metadata only, the default. Full content sends messages, system instructions, tool arguments and tool results. EvalGate drops them at import either way, but they still reach your Collector.
  • Workspaces: choose Selected and pick only the workspaces that run managed agents. A destination receives every span from the workspaces it covers, including plain Messages API requests.
If you run agents in your own sandbox (self-hosted environments), Anthropic states that self-hosted mode is not eligible for zero data retention or HIPAA. That is a property of the sandbox choice, not of this import.

3. Import the spans

One run is written per Managed Agents session (anthropic.session.id). Delivery is at least once, so a span delivered twice is counted once. Use --runtime-hosting self_hosted and --sandbox-provider <id> when the session ran in your own sandbox; EvalGate never infers either from the spans.

What the run contains

These stay n/a with reason not_exported, never 0: file reads and edits, subagent tokens and depth, time waiting on a person, prompts and permission prompts, refusals, compactions and the 5-minute and 1-hour cache-write split. Outcome-evaluation (grader) tokens are not counted yet, and the grader’s verdict does not set the run’s outcome. Spans without a session, such as anthropic.messages.create from the Messages API, are counted as ignored and never become runs. The organization id is kept only as a salted digest. user.id, the workspace id, agent names and descriptions, MCP server names and URLs are dropped. Every number is self-reported by Anthropic’s telemetry and is not verified against billing data. To compare runs, continue with cost of quality for coding agents.