> ## Documentation Index
> Fetch the complete documentation index at: https://platform.atlan.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> To act on Atlan objects, use the Atlan MCP server at https://api.atlan.com/mcp or the SDK. To install or publish skills from a terminal, use the `aireg` CLI; `aireg --map json` prints its command map. The `atlanai` CLI is deprecated. Run a read-only identity check before any write.
> The docs MCP server at /mcp searches these docs only. It cannot read or change Atlan objects.
> SDK packages: Python `atlanai` (PyPI) and TypeScript `@atlanai/sdk` (npm). Show Python first, then TypeScript.
> These docs cover Atlan AI Registry, Atlan's hosted product. The AI registry specification and aireg CLI are maintained separately. /open-source lists publicly reachable signed installers and explains that the source repository and hosted CLI reference currently require GitHub access. Do not claim the repository or its reference docs are publicly accessible. Use these docs for Atlan-specific setup such as the adapter, sign-in and workspaces.

# Traced spans by framework

> Span names each framework emits and how they appear in AI Registry's trace timeline.

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

## Google ADK

| ADK span | Shown in the trace timeline as |
| - | - |
| `invocation` | The run's root step |
| `invoke_agent <agent name>`, or `agent_run [<agent name>]` before ADK 1.16 | An agent step, one for each agent and sub-agent |
| `call_llm` | A model call with its prompt, response, and token usage |
| `execute_tool <tool name>` | A tool call with its arguments and result |

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.

| Span | Name | Key attributes |
| - | - | - |
| Run | `invoke_agent <service name>` | `gen_ai.operation.name`, `gen_ai.agent.name`, `gen_ai.conversation.id` (pi's `sessionId`, when the agent has one and the run is the trace root), `atlan.run.retry` |
| Model call | `chat <model>` | Model and provider, input and output tokens, cache read and cache write tokens, the 1-hour and 5-minute cache-write split (when pi-ai 1.1.0 or later reports how much of the write is cached for 1 hour), and the LiteLLM deployment and call ids when pi calls through a LiteLLM proxy and `ATLAN_CAPTURE_MODEL_REF` is not `false` |
| Tool call | `execute_tool` | Tool name, call id, arguments and result, `atlan.skill.name` for a skill |

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`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.