Python: Preserve Citation Title in AnnotationContent from Azure AI Foundry Annotations#12152
Merged
eavanvalkenburg merged 6 commits intomicrosoft:mainfrom May 19, 2025
Merged
Conversation
Member
Python Unit Test Overview
|
TaoChenOSU
approved these changes
May 19, 2025
python/semantic_kernel/agents/azure_ai/agent_content_generation.py
Outdated
Show resolved
Hide resolved
python/semantic_kernel/contents/streaming_annotation_content.py
Outdated
Show resolved
Hide resolved
…emantic-kernel into azure-ai-agent-annotation-fix
eavanvalkenburg
approved these changes
May 19, 2025
jcruzmot-te
pushed a commit
to thousandeyes/aia-semantic-kernel
that referenced
this pull request
Sep 15, 2025
…undry Annotations (microsoft#12152) ### Motivation and Context When invoking an Azure AI Foundry agent via AzureAIAgent, url_citation metadata such as the document filename (title) is omitted in the resulting AnnotationContent. Only the url field is populated; the filename (title) is lost, and no structured metadata is retained. This breaks traceability and rich citation in downstream responses. This PR updates the annotation mapping to include the title from url_citation into the resulting AnnotationContent. This PR also updates the content types to properly show the present information either in the `to_dict()` call or `to_str` call, as well as handling the attributes for the `from_element` class method. <!-- Thank you for your contribution to the semantic-kernel repo! Please help reviewers and future users, providing the following information: 1. Why is this change required? 2. What problem does it solve? 3. What scenario does it contribute to? 4. If it fixes an open issue, please link to the issue here. --> ### Description Citations in responses returned via AzureAIAgent now retain the full provenance information (url, title, etc.) as delivered by the underlying agent, matching the behavior observed with direct AIProjectClient calls. - Closes microsoft#12133 - Adds further unit tests to validate functionality <!-- Describe your changes, the overall approach, the underlying design. These notes will help understanding how your code works. Thanks! --> ### Contribution Checklist <!-- Before submitting this PR, please make sure: --> - [X] The code builds clean without any errors or warnings - [X] The PR follows the [SK Contribution Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md) and the [pre-submission formatting script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts) raises no violations - [X] All unit tests pass, and I have added new tests where possible - [X] I didn't break anyone 😄
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.
Motivation and Context
When invoking an Azure AI Foundry agent via AzureAIAgent, url_citation metadata such as the document filename (title) is omitted in the resulting AnnotationContent. Only the url field is populated; the filename (title) is lost, and no structured metadata is retained. This breaks traceability and rich citation in downstream responses.
This PR updates the annotation mapping to include the title from url_citation into the resulting AnnotationContent.
This PR also updates the content types to properly show the present information either in the
to_dict()call orto_strcall, as well as handling the attributes for thefrom_elementclass method.Description
Citations in responses returned via AzureAIAgent now retain the full provenance information (url, title, etc.) as delivered by the underlying agent, matching the behavior observed with direct AIProjectClient calls.
Contribution Checklist