Skip to content

OTEP: Agent Telemetry Semantic Conventions (ATSC)#4959

Closed
thegoo wants to merge 4 commits intoopen-telemetry:mainfrom
thegoo:atsc-agent-telemetry-semantic-conventions
Closed

OTEP: Agent Telemetry Semantic Conventions (ATSC)#4959
thegoo wants to merge 4 commits intoopen-telemetry:mainfrom
thegoo:atsc-agent-telemetry-semantic-conventions

Conversation

@thegoo
Copy link
Copy Markdown

@thegoo thegoo commented Mar 18, 2026

This PR proposes Agent Telemetry Semantic Conventions (ATSC) — a vendor-neutral semantic layer for AI agent observability that sits above OTel GenAI Semantic Conventions.

Every ATSC span is a valid OTel span ingestible by any OTLP receiver without custom plugins.

Draft spec and JSON Schema are available at ATSC for reference and community feedback.

Known v0.1.0 limitations before you fire:

  • Completed spans only. No buffering model — assembling start/end events into complete spans is on the implementor.
  • PII and sensitive data scrubbing is the responsibility of the telemetry generator. The spec does not define a redaction pipeline.

Originally posted on Reddit r/OpenTelemetry on 16 March 2026 for community feedback. @mhausenblas suggested submitting as an OTEP.

I am currently working on POC bridge adapter pattern to receive raw telemetry from source (e.g.: LangFuse), normalize to ATSC span structure, and emit spans via OTLP for compatible receivers. I will update with a link to the repo when that is completed.

Appreciate the discussion and opportunity to discuss this! Thanks!

@thegoo thegoo requested review from a team as code owners March 18, 2026 02:41
@linux-foundation-easycla
Copy link
Copy Markdown

linux-foundation-easycla Bot commented Mar 18, 2026

CLA Signed

The committers listed above are authorized under a signed CLA.


## Motivation

AI agent systems present observability requirements that general-purpose distributed tracing specifications do not address. The OpenTelemetry base specification defines spans, traces, metrics, and logs. The OTel GenAI Semantic Conventions define attributes for LLM calls. Neither covers what happens at the agent level.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The OTel GenAI Semantic Conventions

Maybe link to https://github.com/open-telemetry/semantic-conventions/tree/main/model/gen-ai or the published version?


AI agent systems present observability requirements that general-purpose distributed tracing specifications do not address. The OpenTelemetry base specification defines spans, traces, metrics, and logs. The OTel GenAI Semantic Conventions define attributes for LLM calls. Neither covers what happens at the agent level.

Current gaps include:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these gaps something that the OTel GenAI semantic convention group wants to cover in the future, or folks decided that these are out of scope?


Without a shared standard, every observability platform (Langfuse, LangSmith, Arize Phoenix) defines its own schema. Every agent framework (LangGraph, Microsoft Agent Framework, AutoGen, Semantic Kernel) emits incompatible telemetry shapes. Enterprises running multiple frameworks and multiple observability backends are forced to maintain bespoke translation layers.

This proposal defines Agent Telemetry Semantic Conventions (ATSC) — a vendor-neutral semantic layer that sits above OTel GenAI Semantic Conventions in the same way that GenAI SemConv sits above the OTel base specification.
Copy link
Copy Markdown
Member

@reyang reyang Mar 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we normally call such thing "Semantic Conventions for Xyz" rather than "Xyz Telemetry Semantic Conventions". Take database for example, we call it https://github.com/open-telemetry/semantic-conventions/tree/main/docs/db#semantic-conventions-for-database-calls-and-systems

| `human.override` | INTERNAL | Human modified or overrode agent output. |
| `guardrail.check` | INTERNAL | A guardrail evaluated as a discrete operation. |
| `evaluation.run` | INTERNAL | An evaluation or scoring operation. |
| `infra.cache` | CLIENT | A cache read or write operation. |
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this CLIENT? What's the criteria when deciding what SpanKind should be used?
Do we follow https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/api.md#spankind or we need to update the SpanKind definition or provide some supplementary guideline?

@trask
Copy link
Copy Markdown
Member

trask commented Mar 18, 2026

hi @thegoo!

In case you haven't looked at the GenAI Semantic Conventions recently, I believe these things in your proposal already exist today:

  • Agent invocation/creation (invoke_agent, create_agent, gen_ai.agent.*)
  • Tool execution (execute_tool, gen_ai.tool.*)
  • MCP calls (mcp.client/mcp.server spans)
  • Retrieval/RAG (gen_ai.retrieval.client, gen_ai.data_source.id)
  • Conversation tracking (gen_ai.conversation.id)
  • Token usage metrics (gen_ai.client.token.usage)
  • Evaluation (gen_ai.evaluation.* attributes and gen_ai.evaluation.result event)
  • Embeddings (gen_ai.embeddings.client span)

And I think most(?) of the remaining things in your proposal have open discussions (and open PRs in two cases):

It would be great if you could review the existing work and the open proposals and come to join our discussions in the GenAI SemConv SIG which meets Tuesdays 9am Pacific (except for next week due to KubeCon)!

Copy link
Copy Markdown
Member

@reyang reyang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to get a solid answer here #4959 (comment)

@thegoo thegoo force-pushed the atsc-agent-telemetry-semantic-conventions branch from 7fb7b7e to 5bf9b78 Compare March 18, 2026 14:54

Current gaps include:

- No standard representation for agent reasoning cycles, tool invocations, or multi-agent handoffs
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@thegoo
Copy link
Copy Markdown
Author

thegoo commented Mar 19, 2026

Hey @trask! Thank you for taking the time to reply and map that out. Appreciate the feedback. I have some homework to do. I will review the existing GenAI SemConv and open PRs to get a lay of the land.

Noted on KubeCon next week. Will plan to attend the following Tuesday.

Thanks again. Talk soon.

@lmolkova
Copy link
Copy Markdown
Member

lmolkova commented Apr 1, 2026

@thegoo thanks for the contribution! Please let us know if you find any gaps in the existing / proposed GenAI conventions. https://github.com/open-telemetry/semantic-conventions would be the right place to create any follow up issues or PRs.

I'm going to close this one, but looking forward to more discussions in semantic conventions.

@lmolkova lmolkova closed this Apr 1, 2026
@thegoo
Copy link
Copy Markdown
Author

thegoo commented Apr 1, 2026

@lmolkova - thank you! Will do. I have yet to finish reviewing, been tied up. I will post feedback over there. Appreciate the collaboration and talk soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants