How much of the conversation should a trace contain?
Start with none of it. Structure (steps, names, timings, tokens, cost and error levels) answers most operational questions and is far less to hand a third party. OpenTelemetry's GenAI conventions agree: the attributes carrying messages, instructions and tool content are Opt-In and flagged as likely to hold personal data. Captured content needs secrets replaced before export, since tool arguments are where keys end up; Langfuse's masking hooks run inside your application. And treat such traces like the conversations themselves: Langfuse can delete a trace, a batch or a whole session.
Where do OpenTelemetry's GenAI semantic conventions fit?
They are the emerging shared vocabulary for agent traces, still marked Development, so treat them as the shape of your data rather than a frozen contract. They define spans for model calls, agents (create_agent, invoke_agent, invoke_workflow) and tools (execute_tool), attributes such as gen_ai.usage.input_tokens and gen_ai.conversation.id, metrics, events and MCP. Since semantic conventions release 1.42 they live in their own repository, with Development status throughout when we checked on 20 October 2026.
OpenTelemetry's post on AI agent observability (March 2025) describes instrumentation built into frameworks or shipped as separate libraries such as Traceloop's OpenLLMetry. Langfuse receives OTLP and maps GenAI attributes to its data model; Datadog says its agent product supports the conventions natively (December 2025). Emit OpenTelemetry-shaped spans to stay portable, and pin the version, because names can still change.