{"source":"semconv","version":"1.44.0","attribute":{"id":"gen_ai.output.messages","type":"any","stability":"development","brief":"Messages returned by the model where each message represents a specific model response (choice, candidate).","note":"Instrumentations MUST follow [Output messages JSON schema](https://github.com/open-telemetry/semantic-conventions/blob/v1.41.0/docs/gen-ai/gen-ai-output-messages.json)\n\nEach message represents a single output choice/candidate generated by\nthe model. Each message corresponds to exactly one generation\n(choice/candidate) and vice versa - one choice cannot be split across\nmultiple messages or one message cannot contain parts from multiple choices.\n\nWhen the attribute is recorded on events, it MUST be recorded in structured\nform. When recorded on spans, it MAY be recorded as a JSON string if structured\nformat is not supported and SHOULD be recorded in structured form otherwise.\n\nInstrumentations MAY provide a way for users to filter or truncate\noutput messages.\n\n> [!Warning]\n> This attribute is likely to contain sensitive information including user/PII data.\n\nSee [Recording content on attributes](https://github.com/open-telemetry/semantic-conventions/blob/v1.41.0/docs/gen-ai/gen-ai-spans.md#recording-content-on-attributes)\nsection for more details.","examples":["[\n  {\n    \"role\": \"assistant\",\n    \"parts\": [\n      {\n        \"type\": \"text\",\n        \"content\": \"The weather in Paris is currently rainy with a temperature of 57°F.\"\n      }\n    ],\n    \"finish_reason\": \"stop\"\n  }\n]\n"],"deprecated":{"reason":"uncategorized","note":"Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai)."},"namespace":"gen_ai","definedIn":"model/gen-ai/deprecated/registry-deprecated.yaml","usedBy":[{"groupId":"attributes.gen_ai.inference.client","groupType":"attribute_group","requirementLevel":"opt_in"},{"groupId":"attributes.gen_ai.inference.openai_based","groupType":"attribute_group","requirementLevel":"opt_in"},{"groupId":"attributes.gen_ai.invoke_agent.client","groupType":"attribute_group","requirementLevel":"opt_in"},{"groupId":"attributes.gen_ai.invoke_agent.common","groupType":"attribute_group","requirementLevel":"opt_in"},{"groupId":"attributes.gen_ai.invoke_agent.internal","groupType":"attribute_group","requirementLevel":"opt_in"},{"groupId":"event.gen_ai.client.inference.operation.details","groupType":"event","signalName":"gen_ai.client.inference.operation.details","requirementLevel":"opt_in"},{"groupId":"span.anthropic.inference.client","groupType":"span","requirementLevel":"opt_in"},{"groupId":"span.aws.bedrock.client","groupType":"span","requirementLevel":"opt_in"},{"groupId":"span.azure.ai.inference.client","groupType":"span","requirementLevel":"opt_in"},{"groupId":"span.gen_ai.inference.client","groupType":"span","requirementLevel":"opt_in"},{"groupId":"span.gen_ai.invoke_agent.client","groupType":"span","requirementLevel":"opt_in"},{"groupId":"span.gen_ai.invoke_agent.internal","groupType":"span","requirementLevel":"opt_in"},{"groupId":"span.gen_ai.invoke_workflow.internal","groupType":"span","requirementLevel":"opt_in"},{"groupId":"span.openai.inference.client","groupType":"span","requirementLevel":"opt_in"}]},"history":[{"version":"1.37.0","publishedAt":"2025-08-25T23:38:36Z","kind":"first-seen","detail":"Added as development.","severity":"informational"},{"version":"1.42.0","publishedAt":"2026-06-12T21:03:17Z","kind":"deprecated","detail":"Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).","severity":"notable"}],"replaces":[]}