Merged
Conversation
Dependency ReviewThe following issues were found:
License Issuesuv.lock
OpenSSF Scorecard
Scanned Files
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates observability extensions to emit A365’s versioned gen_ai.input.messages / gen_ai.output.messages structure (including tool-call message parts), and adds end-to-end integration tests to validate a single-trace span hierarchy across invoke → inference/chat → tool execution.
Changes:
- Add LangChain message mapping to A365 versioned message format and update LangChain span attribute extraction to use it.
- Add AgentFramework message mapping (via span enricher) to A365 versioned message format and expand pipeline/message-format integration tests.
- Add
langchain-openaito dev dependencies and update lockfile accordingly.
Reviewed changes
Copilot reviewed 14 out of 15 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| uv.lock | Adds langchain-openai and its dependency graph updates (e.g., tiktoken, regex, updated langchain-core). |
| pyproject.toml | Adds langchain-openai to workspace dev dependencies. |
| libraries/microsoft-agents-a365-observability-extensions-langchain/.../utils.py | Switches LangChain message attribute extraction to emit A365 versioned message JSON via new mapper. |
| libraries/microsoft-agents-a365-observability-extensions-langchain/.../message_mapper.py | New LangChain → A365 versioned message mapper (roles/parts/tool calls). |
| libraries/microsoft-agents-a365-observability-extensions-agentframework/.../trace_instrumentor.py | Updates instrumentor _instruments minimum to agent-framework-azure-ai >= 1.0.0rc1. |
| libraries/microsoft-agents-a365-observability-extensions-agentframework/.../span_processor.py | Clarifies that mutation happens via export-time enricher due to ReadableSpan immutability. |
| libraries/microsoft-agents-a365-observability-extensions-agentframework/.../span_enricher.py | Adds versioned message mapping for invoke/chat spans; keeps tool attribute normalization for execute_tool spans. |
| libraries/microsoft-agents-a365-observability-extensions-agentframework/.../message_mapper.py | New AgentFramework span-tag messages → A365 versioned message mapper. |
| tests/observability/extensions/langchain/integration/* | New LangChain integration tests + fixtures for pipeline span hierarchy and message format capture. |
| tests/observability/extensions/agentframework/integration/* | New AgentFramework integration tests for pipeline span hierarchy and message format capture. |
| tests/observability/extensions/agentframework/test_span_enricher.py | Updates unit test assertions to expect A365 versioned message wrapper JSON. |
juliomenendez
approved these changes
Apr 17, 2026
fpfp100
approved these changes
Apr 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Task
Auto instrumentation should use the new message format
Langchain
AgentFramework
Result