Skip to content

Python: Preserve Citation Title in AnnotationContent from Azure AI Foundry Annotations#12152

Merged
eavanvalkenburg merged 6 commits intomicrosoft:mainfrom
moonbox3:azure-ai-agent-annotation-fix
May 19, 2025
Merged

Python: Preserve Citation Title in AnnotationContent from Azure AI Foundry Annotations#12152
eavanvalkenburg merged 6 commits intomicrosoft:mainfrom
moonbox3:azure-ai-agent-annotation-fix

Conversation

@moonbox3
Copy link
Collaborator

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.

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

@moonbox3 moonbox3 self-assigned this May 19, 2025
@moonbox3 moonbox3 requested a review from a team as a code owner May 19, 2025 02:28
@markwallace-microsoft markwallace-microsoft added the python Pull requests for the Python Semantic Kernel label May 19, 2025
@markwallace-microsoft
Copy link
Member

markwallace-microsoft commented May 19, 2025

Python Unit Test Overview

Tests Skipped Failures Errors Time
3593 18 💤 0 ❌ 0 🔥 1m 43s ⏱️

@moonbox3 moonbox3 enabled auto-merge May 19, 2025 10:32
@moonbox3 moonbox3 added this pull request to the merge queue May 19, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks May 19, 2025
@TaoChenOSU TaoChenOSU added this pull request to the merge queue May 19, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks May 19, 2025
@eavanvalkenburg eavanvalkenburg added this pull request to the merge queue May 19, 2025
Merged via the queue into microsoft:main with commit b88f052 May 19, 2025
28 checks passed
@github-project-automation github-project-automation bot moved this to Sprint: Done in Semantic Kernel 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 😄
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents python Pull requests for the Python Semantic Kernel

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Python Bug: AzureAIAgent: Filename (title) from Azure AI Foundry url_citation is not mapped to AnnotationContent

4 participants