# Why was gen_ai.system renamed to gen_ai.provider.name?

To fit a naming pattern OpenTelemetry adopted project-wide, not something specific to GenAI. A 2025 naming guideline said a system-identifying attribute should follow `{system}.{thing}.{property}` instead of a bare `.system` field, the same change that turned `db.system` into `db.system.name` and `rpc.system` into `rpc.system.name`. `gen_ai.provider.name` fits that shape and opens a `gen_ai.provider.*` namespace for fields the old flat attribute had no room for, like a future `gen_ai.provider.version`.

The new name is also more precise about what the value means: it's the client's own label for whichever backend served the call, openai, anthropic, or a self-hosted model, not a description of the system as a whole. OpenTelemetry made the change while every GenAI attribute still carried a development stability marker, since [a rename after the conventions are declared stable](/answers/instrumentation/are-genai-semantic-conventions-stable-enough-to-build-on) breaks every backend already keying dashboards off the old field name.

---

Sources:
- OpenTelemetry semantic-conventions PR #2046: Update GenAI conventions based on system-specific naming guidance: https://github.com/open-telemetry/semantic-conventions/pull/2046 (fetched 2026-09-15)
- OpenTelemetry semantic-conventions issue #1708: Add system-specific naming guidance: https://github.com/open-telemetry/semantic-conventions/issues/1708 (fetched 2026-09-15)

Source: https://tessary.ai/answers/otel-genai-conventions/why-was-gen-ai-system-renamed-to-gen-ai-provider-name
More on Otel genai conventions: https://tessary.ai/answers/otel-genai-conventions
From Tessary, agent reliability for AI agents in production: https://tessary.ai
