Files
Giles Odigwe 950673ba47 Python: bump package versions for 1.6.0 release (#6017)
* Python: bump package versions for 1.6.0 release

- Released cohort (agent-framework, core, openai, foundry): 1.5.0 -> 1.6.0
- Beta packages (21 packages): 1.0.0b260519 -> 1.0.0b260521
- Alpha packages (azure-contentunderstanding, foundry-hosting, gemini, monty): 1.0.0a260518/19 -> 1.0.0a260521
- ag-ui stays at 1.0.0rc2, orchestrations at 1.0.0rc1 (dependency bounds updated)
- Inter-package dependency lower bounds updated (>=1.5.0,<2 -> >=1.6.0,<2)
- Update CHANGELOG compare links
- uv.lock refreshed

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address review: bump RC packages, add shell tool to changelog

- ag-ui: 1.0.0rc2 -> 1.0.0rc3
- orchestrations: 1.0.0rc1 -> 1.0.0rc2
- Add shell tool (#5664) to CHANGELOG
- uv.lock refreshed

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
950673ba47 · 2026-05-22 01:59:20 +00:00
History
..

Get Started with Azure Content Understanding in Microsoft Agent Framework

Please install this package via pip:

pip install agent-framework-azure-contentunderstanding --pre

Azure Content Understanding Integration

Prerequisites

Before using this package, you need an Azure Content Understanding resource:

  1. An active Azure subscription (create one for free)
  2. A Microsoft Foundry resource created in a supported region
  3. Default model deployments configured for your resource (GPT-4.1, GPT-4.1-mini, text-embedding-3-large)

Follow the prerequisites section in the Azure Content Understanding quickstart for setup instructions.

Introduction

The Azure Content Understanding integration provides a context provider that automatically analyzes file attachments (documents, images, audio, video) using Azure Content Understanding and injects structured results into the LLM context.

  • Document & image analysis: State-of-the-art OCR with markdown extraction, table preservation, and structured field extraction — handles scanned PDFs, handwritten content, and complex layouts
  • Audio & video analysis: Transcription, speaker diarization, and per-segment summaries
  • Background processing: Configurable timeout with async background fallback for large files
  • file_search integration: Optional vector store upload for token-efficient RAG on large documents

Learn more about Azure Content Understanding capabilities at https://learn.microsoft.com/azure/ai-services/content-understanding/

Basic Usage Example

See the samples directory which demonstrates:

import asyncio
from agent_framework import Agent, AgentSession, Message, Content
from agent_framework.foundry import FoundryChatClient
from agent_framework.foundry import ContentUnderstandingContextProvider
from azure.identity import AzureCliCredential

credential = AzureCliCredential()

cu = ContentUnderstandingContextProvider(
    endpoint="https://my-resource.cognitiveservices.azure.com/",
    credential=credential,
    max_wait=None,  # block until CU extraction completes before sending to LLM
)

client = FoundryChatClient(
    project_endpoint="https://your-project.services.ai.azure.com",
    model="gpt-4.1",
    credential=credential,
)

async def main():
    async with cu:
        agent = Agent(
            client=client,
            name="DocumentQA",
            instructions="You are a helpful document analyst.",
            context_providers=[cu],
        )
        session = AgentSession()

        response = await agent.run(
            Message(role="user", contents=[
                Content.from_text("What's on this invoice?"),
                Content.from_uri(
                    "https://raw.githubusercontent.com/Azure-Samples/"
                    "azure-ai-content-understanding-assets/main/document/invoice.pdf",
                    media_type="application/pdf",
                    additional_properties={"filename": "invoice.pdf"},
                ),
            ]),
            session=session,
        )
        print(response.text)

asyncio.run(main())

Supported File Types

Category Types
Documents PDF, DOCX, XLSX, PPTX, HTML, TXT, Markdown
Images JPEG, PNG, TIFF, BMP
Audio WAV, MP3, M4A, FLAC, OGG
Video MP4, MOV, AVI, WebM

For the complete list of supported file types and size limits, see Azure Content Understanding service limits.

Environment Variables

The provider supports automatic endpoint resolution from environment variables. When endpoint is not passed to the constructor, it is loaded from AZURE_CONTENTUNDERSTANDING_ENDPOINT:

# Endpoint auto-loaded from AZURE_CONTENTUNDERSTANDING_ENDPOINT env var
cu = ContentUnderstandingContextProvider(credential=credential)

Set these in your shell or in a .env file:

AZURE_CONTENTUNDERSTANDING_ENDPOINT=https://your-cu-resource.cognitiveservices.azure.com/
AZURE_AI_PROJECT_ENDPOINT=https://your-project.services.ai.azure.com
AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4.1

You also need to be logged in with az login (for AzureCliCredential).

Next steps