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

Draft pending the first release of
open-telemetry/semantic-conventions-genai.
Both conventions are Development stability and unreleased. Merge once they ship in a tagged release.

Release tagging confidence: low — GitHub latest-release API returned 404; no releases published yet. No CHANGELOG release headers or schema URL published either (repo README.md ## Schema URL is TODO).

What this PR implements

Area Convention Upstream Compensating change
gen-ai Doc-comment wording migration (migration) Updated all matched OpenTelemetry* files to "GenAI Semantic Conventions v1.41".
gen-ai gen_ai.request.reasoning.level #258 Added constant + emission from ReasoningEffort in OpenTelemetryChatClient; tests augmented.
gen-ai document modality in message schema #142 OtelMessageSerializer: application/* MIME maps to modality "document"; tests augmented.
gen-ai gen_ai.request.top_k type doubleint #217 ✅ Already aligned: ChatOptions.TopK is int?.

Validation: build clean (net8.0 / net9.0 / net10.0, 0 warnings); all tests pass. No public API surface change.

Upstream scan tracking

Legend: 🔴 implemented here · ✅ already aligned · 🟡 deferred · 🟢 not applicable

Scanned: c739977 (main, 2026-07-31)

Merged upstream changes (Unreleased)

Upstream PR Area Change Status
#97 gen-ai plan operation for agent planning spans 🟡
#99 gen-ai Add moonshot_ai to gen_ai.provider.name values 🟢
#107 gen-ai Mark gen_ai.agent.name sampling-relevant on agent spans 🟢
#126 gen-ai Add gen_ai.workflow.duration metric 🟡
#136 mcp tool.call.arguments / tool.call.result on MCP server span 🟢
#140 gen-ai GenAI memory operation span and attributes 🟡
#142 gen-ai document modality in message schema 🔴
#162 gen-ai gen_ai.conversation.compacted on inference spans 🟡
#179 gen-ai gen_ai.prompt.version and gen_ai.prompt.variable 🟡
#201 gen-ai gen_ai.invoke_agent.duration / gen_ai.execute_tool.duration metrics 🟡
#211 gen-ai Clarify billed vs consumed token counts 🟢
#212 gen-ai Generalize gen_ai.provider.name description 🟢
#214 gen-ai Relax gen_ai.provider.name requirement on duration metric 🟢
#216 gen-ai Clarify span covers duration including retries 🟢
#217 gen-ai gen_ai.request.top_k type doubleint
#219 gen-ai Clarify gen_ai.conversation.id must not use fallback values 🟢
#220 mcp MCP context propagation clarification 🟢
#242 gen-ai Clarify gen_ai.agent.id scope; remove from internal spans 🟢
#257 gen-ai Limit gen_ai.system_instructions part types to text
#258 gen-ai Add gen_ai.request.reasoning.level 🔴
#289 gen-ai Remove gen_ai.provider.name from invoke_agent internal span 🟢
#321 gen-ai Clarify gen_ai.invoke_agent.duration is in-proc 🟢
#322 gen-ai Align invoke_agent / execute_tool span attributes
#330 gen-ai JSON serialization schema via Weaver templates 🟢
#336 gen-ai gen_ai.invoke_agent.inference_calls / invoke_agent.tool_calls metrics 🟡
#344/#396 gen-ai Make gen_ai.retrieval.documents id/score optional (nullable) 🟢
#361 gen-ai Fix gen_ai.system_instructions reference scenarios 🟢
#372 gen-ai Add gen_ai.request.previous_response.id 🟡
#405 tooling Include markdown snippets in consistency check 🟢
#414 tooling Update Renovate config to extend best practices 🟢

Deferred items: no ChatOptions property exists yet for previous_response.id, conversation.compacted, or prompt name/version; no metrics infrastructure in FunctionInvocationProcessor; no workflow/memory/planning clients. gen_ai.retrieval.documents is not currently emitted.

In-flight upstream PRs (open)

#197 modality/cache/phase token usage breakdowns (🟡 watch) · #215 gen_ai.client.operation.duration scope clarification (🟢) · #270 gen_ai.main_agent entity (🟡 watch) · #341 rename workflow.durationinvoke_workflow.duration (🟡) · #351 remove inference from agentic reference (🟢) · #354 workflow span criteria (🟢) · #355 gen_ai.root_operation.name (🟡 watch) · #374 usage metrics by modality / reasoning / cache (🟡 watch) · #385 gen_ai.main_agent.name (🟡 watch) · #400 Weaver 0.25.0 tooling (🟢) · #404 MCP server status: do not set to errors for client errors (🟢)

Tracking state

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

Generated by MEAI: Otel GenAI Worker · ⌖

Generated by MEAI: Otel GenAI Worker · 112.3 AIC · ⌖ 10.8 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 ·

@github-actions

Copy link
Copy Markdown
Contributor Author

Generated by MEAI: Otel GenAI Worker · 137.1 AIC · ⌖ 6.36 AIC · ⊞ 14.7K ·

@github-actions

Copy link
Copy Markdown
Contributor Author

Adoption summary (MEAI: Otel GenAI Worker — 2026-07-25)

This run adopted this PR into the automated tracking workflow. The PR was originally bootstrapped manually; the full changes-table and machine-readable tracking block have now been written into the description.

Upstream scanned: 74fd2e0f (2026-07-25)
No new releases exist for open-telemetry/semantic-conventions-genai (404 on GitHub latest release).

Implemented in this PR

  • 🟢 gen_ai.request.reasoning.level — new attribute emitted from ChatOptions.Reasoning.Effort (🆕 constant OpenTelemetryConsts.GenAI.Request.ReasoningLevel)
  • 🟢 document modality — OtelMessageSerializer now maps application/ MIME types to "document" in the message JSON
  • 🟢 Doc comment wording migration — all 6 OpenTelemetry* files updated to "GenAI Semantic Conventions v1.41"

Deferred (tracked, not yet coded)

11 items deferred: agent framework spans/metrics (plan, agent invocation metrics, invoke_agent/execute_tool duration metrics, inference/tool-call counters), workflow duration metric, memory spans, MCP tool-call attributes, compacted conversation, prompt version/variable tracking, and gen_ai.request.previous_response.id. See changes table in PR description.

No code changes needed this run — existing commit covers all actionable items. Watermark advanced to 2026-07-25T09:08:00Z.

Generated by MEAI: Otel GenAI Worker · 151.4 AIC · ⌖ 6.47 AIC · ⊞ 14.7K ·

@github-actions

Copy link
Copy Markdown
Contributor Author

MEAI: Otel GenAI Worker — scan complete (2026-07-26)

Scanned upstream 64cfaa6 (main HEAD).

This run adopted the bootstrapped PR (no prior tracking block) and wrote the full tracking state into the PR body.

Already implemented on this branch (prior commit):

  • 🔴 gen_ai.request.reasoning.level — constant + emission from ReasoningEffort (#258)
  • 🔴 document modality in message serialization (#142)
  • ✅ Doc-comment wording migrated to "GenAI Semantic Conventions v1.41" across all matched files

Already aligned (no change needed):

  • gen_ai.request.top_k already int (#217)
  • gen_ai.system_instructions already text-only (#257)
  • execute_tool sampling-relevant attributes already in span initial tags (#322)

Deferred (no emission sites yet): previous_response.id (no ChatOptions property), conversation.compacted (no abstraction property), prompt.version / prompt.variable (no abstraction properties), agent metrics (invoke_agent.duration, execute_tool.duration, inference_calls, tool_calls — no metric infrastructure in function-invocation path), workflow/memory/planning clients.

Build: clean · Tests: all pass · No public API change.

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 · 282.4 AIC · ⌖ 7.63 AIC · ⊞ 14.7K ·

@github-actions

Copy link
Copy Markdown
Contributor Author

Incremental scan update — upstream advanced from 64cfaa6 to 434c91d (2026-07-29).

New upstream commits:

  • 3cfb9e6#396: Make retrieval document id and score optional → 🟢 Not applicable (no retrieval client in Microsoft.Extensions.AI)
  • 799e014, 434c91d — Reference implementation and Weaver tooling dependency updates (no convention changes)

No code changes are needed. PR description updated to record the new scan ref.

Generated by MEAI: Otel GenAI Worker · 77.9 AIC · ⌖ 3.98 AIC · ⊞ 14.7K ·

@github-actions

Copy link
Copy Markdown
Contributor Author

Upstream scan update — 2026-07-30

Scanned 434c91d (4 commits ahead of previous scan 64cfaa6).

New upstream changes since last scan

Upstream PR Area Change Action
#344/#396 gen-ai Make gen_ai.retrieval.documents id/score optional (nullable) 🟢 No action — gen_ai.retrieval.documents is not currently emitted by dotnet/extensions
#405 tooling Include markdown snippets in CI consistency check 🟢 Tooling only — no convention changes
#407, #412 tooling Dependency updates (Weaver v0.25.1) 🟢 Tooling only — no convention changes

No code changes required — all new upstream changes are either tooling updates or affect an attribute not yet emitted by this library. PR description and tracking block refreshed to the new scan ref.

Generated by MEAI: Otel GenAI Worker · 86.8 AIC · ⌖ 7.61 AIC · ⊞ 14.7K ·

@github-actions

Copy link
Copy Markdown
Contributor Author

Daily scan update — 2026-07-31

Scanned upstream c739977 (the latest commit on main).

Delta vs previous scan (434c91d): one commit — #414 "Change Renovate config to extend best practices" — which touches only .github/renovate.json5. Zero convention changes (no new changelog fragments, no model/ or docs/ changes).

No code changes needed in this run. PR body and tracking block refreshed to advance upstream-scan-ref to the new SHA and update feedback-processed-through watermark. All previously deferred items remain unchanged.

Generated by MEAI: Otel GenAI Worker · 112.3 AIC · ⌖ 10.8 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.

1 participant