# Are LLM prompts and completions captured by OpenTelemetry's GenAI conventions by default?

No. Capturing what the model actually saw and said is opt-in: `gen_ai.input.messages` and `gen_ai.output.messages` both carry an explicit "Opt-In" requirement level in the spec, so a compliant instrumentation library ships with them off, and turning either one on is a decision you make rather than a default you inherit. The rest of a span, the operation name, the provider, the model, the token counts, is captured regardless.

The spec is direct about why: both attributes are flagged as likely to carry sensitive information, including user PII. How they get recorded once you enable them depends on where they land. On a span they're written as attributes and can fall back to a JSON string if the backend doesn't support structured values; on an event, structured form is required. Instrumentations are also allowed to filter or truncate the content before emitting it, so opt-in doesn't mean all-or-nothing once it's on. [Deciding what content leaves an agent's traces](/answers/instrumentation/who-decides-what-content-leaves-an-agents-traces) is instrumentation's job generally; message content is where that decision gets its own explicit switch in the GenAI spec.

---

Sources:
- OpenTelemetry GenAI semantic conventions: Events: https://github.com/open-telemetry/semantic-conventions-genai/blob/main/docs/gen-ai/gen-ai-events.md (fetched 2026-09-14)

Source: https://tessary.ai/answers/otel-genai-conventions/are-llm-prompts-and-completions-captured-by-default
More on Otel genai conventions: https://tessary.ai/answers/otel-genai-conventions
From Tessary, agent reliability for AI agents in production: https://tessary.ai
