You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While adding Agent Framework to the OpenTelemetry GenAI semantic-conventions reference scenarios, we switched the scenario to use native Agent Framework telemetry (no manual reference spans) so the coverage reflects what AF emits today.
Observed native coverage from agent-framework with OpenAIChatClient and sensitive telemetry enabled:
invoke_agent_internal
inference
execute_tool
The native telemetry is already useful, but compared with the GenAI semantic-conventions reference coverage we expected, these pieces are missing or not currently mapped:
No GenAI invoke_workflow span
Workflow execution emits native workflow spans such as workflow.build, workflow.run, executor.process, edge_group.process, and message.send.
These use workflow.*, executor.*, and message attributes, but do not produce gen_ai.operation.name=invoke_workflow with gen_ai.workflow.name, gen_ai.input.messages, and gen_ai.output.messages.
No gen_ai.client.inference.operation.details event/log
The reference repo has event coverage for inference operation details, but native AF telemetry did not emit this event.
Some request attributes appear only on the agent span, not the inference span
gen_ai.request.max_tokens, gen_ai.request.temperature, and gen_ai.request.top_p are present on the invoke_agent span.
The child chat/inference spans currently include gen_ai.request.choice.count and model/response/usage attributes, but not those request option attributes.
Server attributes are partial
Native inference currently reports server.address as Unknown against the local mock Responses endpoint and does not include server.port.
This came from running the GenAI semconv reference scenario against AF native telemetry in semantic-conventions-genai, using the local mock OpenAI Responses endpoint and OpenAIChatClient.
/plan Refresh the remaining native Python GenAI semantic-convention gap matrix against current main, preserving this issue's vNext timing and existing owner. Plan only the residual work; do not assume the original four observations are all still current.
Current main maps max_tokens, temperature and top_p through the shared span attribute extractor. OpenAIChatClient.service_url() is implemented by merged #9225 (fixing #9224). Workflow spans still use workflow.run/workflow.* naming, and presence of a server.port enum or URL parser is not proof that the correct attributes are exported on the relevant inference span.
Use the issue's reference scenario and open-telemetry/semantic-conventions-genai#325 as context, but first establish the exact semantic-convention versions/modes MAF currently supports and what the reference expects. Respect the existing latest-experimental opt-in. Do not silently rename stable spans, duplicate operations, enable new telemetry payloads or treat every evolving experimental field as mandatory.
Produce a bounded matrix for the original workflow operation, inference-operation-details event/log, inference request options and server address/port cases. For each, identify implemented/current gap/not applicable, the owning layer, the emitted shape and parentage, sensitivity/configuration gates and a focused regression scenario. Include streamed/nonstreamed success, failure and cancellation where the lifecycle differs. Verify actual emitted attributes with deterministic exporters and a mock provider rather than inferring coverage from constant names.
For any remaining invoke_workflow/event surface, compare mapping an existing span/event versus adding a new one, public compatibility and telemetry volume/cost, arbitrary typed workflow input/output serialization, redaction and exporter setup. Do not require workflow values to be chat messages or emit raw inputs/outputs by default.
Coordinate the middleware-span proposal in #8559, which already has a maintainer-requested detailed human design pending; do not decide that separate proposal here or post another request to its volunteers.
Return the residual implementation/contract decisions and smallest coherent test/documentation scope before recommending readiness. Keep vNext and the current assignee unchanged. No contributor assignment, release acceleration, blanket conformance claim or implementation approval is implied.
Activity
eavanvalkenburg commentedon Jun 19, 2026
Reference coverage PR in OTel semantic conventions: open-telemetry/semantic-conventions-genai#325
eavanvalkenburg commentedon Oct 28, 2026
/plan Refresh the remaining native Python GenAI semantic-convention gap matrix against current main, preserving this issue's vNext timing and existing owner. Plan only the residual work; do not assume the original four observations are all still current.
Current main maps max_tokens, temperature and top_p through the shared span attribute extractor. OpenAIChatClient.service_url() is implemented by merged #9225 (fixing #9224). Workflow spans still use workflow.run/workflow.* naming, and presence of a server.port enum or URL parser is not proof that the correct attributes are exported on the relevant inference span.
Use the issue's reference scenario and open-telemetry/semantic-conventions-genai#325 as context, but first establish the exact semantic-convention versions/modes MAF currently supports and what the reference expects. Respect the existing latest-experimental opt-in. Do not silently rename stable spans, duplicate operations, enable new telemetry payloads or treat every evolving experimental field as mandatory.
Produce a bounded matrix for the original workflow operation, inference-operation-details event/log, inference request options and server address/port cases. For each, identify implemented/current gap/not applicable, the owning layer, the emitted shape and parentage, sensitivity/configuration gates and a focused regression scenario. Include streamed/nonstreamed success, failure and cancellation where the lifecycle differs. Verify actual emitted attributes with deterministic exporters and a mock provider rather than inferring coverage from constant names.
For any remaining invoke_workflow/event surface, compare mapping an existing span/event versus adding a new one, public compatibility and telemetry volume/cost, arbitrary typed workflow input/output serialization, redaction and exporter setup. Do not require workflow values to be chat messages or emit raw inputs/outputs by default.
Coordinate the middleware-span proposal in #8559, which already has a maintainer-requested detailed human design pending; do not decide that separate proposal here or post another request to its volunteers.
Return the residual implementation/contract decisions and smallest coherent test/documentation scope before recommending readiness. Keep vNext and the current assignee unchanged. No contributor assignment, release acceleration, blanket conformance claim or implementation approval is implied.