Skip to main content
Each framework records its runs as OpenTelemetry spans. AI Registry maps those spans to the trace timeline shown in Full trace.

Google ADK

ADK’s own generate_content span under each call_llm, from ADK 1.24, repeats the same usage. AI Registry counts that usage once, on call_llm, and leaves the repeated span out of the timeline, as it does the execute_tool (merged) span that ADK opens around parallel tool calls. Model reasoning parts appear as thinking.

pi

Each prompt() or continue() call is one run. Span names and attributes follow the OpenTelemetry GenAI conventions. Input tokens are sent with the cached part included, as the GenAI conventions define them, and cache reads and writes are sent separately, so AI Registry prices cached tokens once. A run that pi ends with an error or an abort, or whose call throws, is marked as failed. A continue() with no active span is recorded as a child of the same agent’s last prompt() run. When that agent’s previous run failed, it also carries atlan.run.retry set to true.