Skip to content

Update open-telemetry/semantic-conventions-genai to latest#7642

Draft
github-actions[bot] wants to merge 1 commit into
mainfrom
update-otel-genai-to-latest
Draft

Update open-telemetry/semantic-conventions-genai to latest#7642
github-actions[bot] wants to merge 1 commit into
mainfrom
update-otel-genai-to-latest

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Integrates merged upstream changes from open-telemetry/semantic-conventions-genai at commit 2e994c6d59a93bb4fc1752c5378eedb9b8e14d6b (scanned 2026-07-22).

No published GenAI release exists yet (GitHub Releases returns 404 for open-telemetry/semantic-conventions-genai). This draft PR tracks all convention changes ahead of the implemented version (v1.41) until a release is published.


Release Signal Confidence

Release detection confidence: none. No published GitHub Release exists for open-telemetry/semantic-conventions-genai. The scanned state is identified by upstream commit SHA 2e994c6d59a93bb4fc1752c5378eedb9b8e14d6b and scan date 2026-07-22. The workflow will flip this PR to Ready for Review when a release is published and its resolved commit matches the recorded upstream-scan-ref.


Changes Table

All upstream changelog fragments at the scanned commit, classified by actionability:

Fragment Description Area Status Notes
#99 Add moonshot_ai to gen_ai.provider.name well-known values gen-ai 🟢 Tracked, no code No provider package in this repo; well-known value is in upstream registry only
#107 Mark gen_ai.agent.name sampling-relevant on create_agent, invoke_agent, etc. gen-ai/agent 🟢 Tracked, deferred No create_agent span instrumented in this repo
#126 Add gen_ai.workflow.duration metric gen-ai 🟢 Tracked, deferred No workflow span instrumentation
#136 Add gen_ai.tool.call.arguments/result opt-in attrs to MCP server span mcp 🟢 Out of scope MCP server spans are out of scope for this repo
#140 Add GenAI memory operation span gen-ai 🟢 Tracked, deferred No memory instrumentation in this repo
#142 Add document modality value to message JSON schemas gen-ai ✅ Implemented DeriveModalityFromMediaType now returns "document" for application/* media types
#162 Add gen_ai.conversation.compacted on inference spans gen-ai 🟢 Tracked, deferred No conversation compaction detection; no emission site
#179 Add gen_ai.prompt.version and gen_ai.prompt.variable gen-ai 🟢 Tracked, deferred No prompt tracking in this repo
#201 Add gen_ai.invoke_agent.duration and gen_ai.execute_tool.duration metrics gen-ai/agent 🟢 Tracked, deferred No per-invocation duration metrics yet
#211 Clarify billed vs consumed token counts for input_tokens/output_tokens gen-ai 🟢 Doc-only No code change needed
#212 Generalize gen_ai.provider.name description gen-ai 🟢 Doc-only No code change needed
#214 Relax gen_ai.provider.name on gen_ai.client.operation.duration to conditionally required gen-ai 🟢 Already aligned Already conditionally emitted
#216 Clarify GenAI span SHOULD cover retries gen-ai 🟢 Doc-only No code change needed
#217 breaking gen_ai.request.top_k type doubleint, scoped to decoding gen-ai 🟢 Already aligned ChatOptions.TopK is int?; no change needed
#217 clarification Clarify gen_ai.request.top_k semantics (decoding, not OpenAI top_logprobs) gen-ai 🟢 Doc-only No code change needed
#219 Clarify gen_ai.conversation.id should not use fallback values gen-ai 🟢 Doc-only Code already only emits when ConversationId is set
#220 Clarify MCP context propagation (traceparent, etc.) mcp 🟢 Out of scope MCP context propagation is out of scope
#242 Clarify gen_ai.agent.id stability; remove from internal agent spans gen-ai/agent 🟢 Not applicable gen_ai.agent.id is not emitted on internal spans in this repo
#257 Limit gen_ai.system_instructions parts to text only gen-ai 🟢 Already aligned System instructions are serialized as text-only OtelGenericPart
#258 Add gen_ai.request.reasoning.level attribute gen-ai ✅ Implemented New constant added; emitted from ChatOptions.Reasoning.Effort (mapped to lowercase string)
#289 Remove gen_ai.provider.name required from invoke_agent internal span gen-ai/agent 🟢 Not applicable Not emitted on internal invoke_agent spans
#321 Clarify gen_ai.invoke_agent.duration is in-proc gen-ai/agent 🟢 Tracked, deferred No such metric
#322 Align invoke_agent/execute_tool attrs; remove gen_ai.agent.version from internal; mark sampling-relevant gen-ai/agent 🟢 Tracked, deferred No version/sampling-relevant attrs emitted on these spans
#330 Move JSON schema/type metadata to Weaver templates gen-ai 🟢 Internal tooling No dotnet code change needed
#336 Add gen_ai.invoke_agent.inference_calls and gen_ai.invoke_agent.tool_calls metrics gen-ai/agent 🟢 Tracked, deferred No per-invocation call-count metrics yet
#361 Fix gen_ai.system_instructions reference scenarios gen-ai 🟢 Doc-only Related to #257; no additional code change
#97 Add plan operation for GenAI agent planning spans gen-ai/agent 🟢 Tracked, deferred No agent planning spans in this repo

Implemented Changes

gen_ai.request.reasoning.level (upstream PR #258)

New attribute recording the reasoning/thinking effort level. Added OpenTelemetryConsts.GenAI.Request.ReasoningLevel constant and emission in OpenTelemetryChatClient when ChatOptions.Reasoning.Effort is set, mapped to lowercase string values ("low", "medium", "high", "none", "extrahigh").

document modality for application/* content parts (upstream PR #142)

The message JSON schemas now include document as a valid Modality value alongside image, audio, and video. Updated OtelMessageSerializer.DeriveModalityFromMediaType to return "document" for application/* media types (e.g. application/pdf).

Version doc-comment migration

Migrated all OpenTelemetry* instrumentation client doc comments from the legacy wording "Semantic Conventions for Generative AI systems v1.41" to "GenAI Semantic Conventions v1.41", reflecting that the conventions now live in the standalone open-telemetry/semantic-conventions-genai repo.


Deferred Items (tracked, not yet coded)

The following upstream changes are tracked but deferred because no current emission site exists in this repo:


# meai-otel-genai-worker:state:begin
upstream-repo: open-telemetry/semantic-conventions-genai
upstream-scan-ref: 2e994c6d59a93bb4fc1752c5378eedb9b8e14d6b
upstream-scan-date: 2026-07-22T09:17:18Z
upstream-release: none
core-semconv-dependency: v1.43.0
dotnet-extensions-implemented-version: v1.41
feedback-processed-through: 2026-07-22T09:17:18Z
# meai-otel-genai-worker:state:end

Generated by MEAI: Otel GenAI Worker · 90.1 AIC · ⌖ 7.55 AIC · ⊞ 14.7K ·

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot added area-ai Microsoft.Extensions.AI libraries automation Issues and pull requests created through automation labels Jul 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor Author

Automation took over this PR

This run adopted the bootstrapped draft PR #7642 and added the machine-readable meai-otel-genai-worker:state tracking block to its body. Future runs will classify this PR as ours and maintain it automatically.

What was validated this run

  • Build and tests pass against upstream scan SHA c26a2c21d1ee70d5231bd440c7b48d3c94ee506a.
  • All 27 upstream changelog fragments at the scanned commit have been classified.
  • Two actionable changes are implemented on the branch:
  • Doc-comment wording migrated to GenAI Semantic Conventions v1.41.
  • Remaining changes are deferred (no emission site exists in this repo yet).

Release signal

No GitHub Release published for open-telemetry/semantic-conventions-genai yet (404). This PR remains draft until a release is published and its resolved commit matches the recorded upstream-scan-ref.

Warning

Firewall blocked 2 domains

The following domains were blocked by the firewall during workflow execution:

  • winprotocoldocsbhdugrdyduf5h2e4.b02.azurefd.net
  • www.bondcap.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "winprotocoldocsbhdugrdyduf5h2e4.b02.azurefd.net"
    - "www.bondcap.com"

See Network Configuration for more information.

Generated by MEAI: Otel GenAI Worker · 94.4 AIC · ⌖ 7.81 AIC · ⊞ 14.7K ·

@github-actions

Copy link
Copy Markdown
Contributor Author

Daily scan update — 2026-07-22

Scanned upstream commit: 2e994c6d59a93bb4fc1752c5378eedb9b8e14d6b
Previous recorded commit: 150760c6252a4bb63c49c9915bad11997d316a15

No convention changes in this delta. The single new upstream commit (#391) is a Renovate bot Python reference-implementation dependency bump — it touches only reference/*/pyproject.toml and reference/*/uv.lock files, with zero changes to changelog.d/, model/, docs/, or any convention spec.

The PR body tracking block has been refreshed to the new upstream SHA. No code changes were needed; all previously integrated and deferred items remain current.

Generated by MEAI: Otel GenAI Worker · 90.1 AIC · ⌖ 7.55 AIC · ⊞ 14.7K ·

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-ai Microsoft.Extensions.AI libraries automation Issues and pull requests created through automation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants