Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 1 addition & 36 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,41 +13,6 @@ For more information please see the parent project information here [Microsoft 3

The best way to get started with these packages is to look at the samples available in [https://github.com/microsoft/Agents](https://github.com/microsoft/Agents)

## Important Notice - Import Changes

> **⚠️ Breaking Change**: Recent updates have changed the Python import structure from `microsoft.agents` to `microsoft_agents` (using underscores instead of dots). Please update your imports accordingly.

### Import Examples

```python
# Activity types and models
from microsoft_agents.activity import Activity

# Core hosting functionality
from microsoft_agents.hosting.core import TurnContext

# aiohttp hosting
from microsoft_agents.hosting.aiohttp import start_agent_process

# FastAPI hosting
from microsoft_agents.hosting.fastapi import start_agent_process

# Teams-specific functionality (compatible only with activity handler)
from microsoft_agents.hosting.teams import TeamsActivityHandler

# Azure Blob storage
from microsoft_agents.storage.blob import BlobStorage

# CosmosDB storage
from microsoft_agents.storage.cosmos import CosmosDbStorage

# MSAL authentication
from microsoft_agents.authentication.msal import MsalAuth

# Copilot Studio client
from microsoft_agents.copilotstudio.client import CopilotClient
```

## Packages Overview

We offer the following PyPI packages to create conversational experiences based on Agents:
Expand All @@ -58,7 +23,7 @@ We offer the following PyPI packages to create conversational experiences based
| `microsoft-agents-hosting-core` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-core)](https://pypi.org/project/microsoft-agents-hosting-core/) | Core library for Microsoft Agents hosting. | `botbuilder-core, botframework-connector` |
| `microsoft-agents-hosting-aiohttp` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-aiohttp)](https://pypi.org/project/microsoft-agents-hosting-aiohttp/) | Configures aiohttp to run the Agent. | `botbuilder-integration-aiohttp` |
| `microsoft-agents-hosting-fastapi` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-fastapi)](https://pypi.org/project/microsoft-agents-hosting-fastapi/) | Configures FastAPI to run the Agent. | N/A |
| `microsoft-agents-hosting-teams` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-teams)](https://pypi.org/project/microsoft-agents-hosting-teams/) | Provides classes to host an Agent for Teams. | N/A |
| `microsoft-agents-hosting-msteams` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-msteams)](https://pypi.org/project/microsoft-agents-hosting-msteams/) | Provides classes to host an Agent for Teams. | N/A |
| `microsoft-agents-hosting-dialogs` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-dialogs)](https://pypi.org/project/microsoft-agents-hosting-dialogs/) | Dialog system with waterfall dialogs, prompts, and multi-turn conversation management. | `botbuilder-dialogs` |
| `microsoft-agents-storage-blob` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-storage-blob)](https://pypi.org/project/microsoft-agents-storage-blob/) | Extension to use Azure Blob as storage. | `botbuilder-azure` |
| `microsoft-agents-storage-cosmos` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-storage-cosmos)](https://pypi.org/project/microsoft-agents-storage-cosmos/) | Extension to use CosmosDB as storage. | `botbuilder-azure` |
Expand Down
47 changes: 47 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,50 @@
# Microsoft 365 Agents SDK for Python - Release Notes v1.3.0

**Release Date:** 2026-07-30
**Previous Version:** 1.2.0 (Released 2026-07-17)

This release focuses on API ergonomics and developer experience, adding agentic header propagation, fluent activity/card builders, type-based `TurnContext.services` , and app-based Graph client factories. It also refines authentication and storage interfaces, refactors JWT auth middleware, and includes broad typing, logging, and tooling improvements.

> [!NOTE]
> Use `microsoft-agents-hosting-msteams` for new Teams agents.
> `microsoft-agents-hosting-msteams` is the current, first-class Teams hosting package. It provides typed, decorator-based routing via `TeamsAgentExtension` and `TeamsTurnContext`, dedicated route namespaces for Teams invoke and event activities, and direct access to Teams API clients from your handlers — the same modern, `AgentApplication`-centric programming model used across the rest of the SDK.
> The older `microsoft-agents-hosting-teams` package (built around `TeamsActivityHandler` and `TeamsInfo`) is retained only for backward compatibility with existing agents. It is not receiving new features, and new development should migrate to `microsoft-agents-hosting-msteams`.

> [!IMPORTANT]
> `TurnContext.services` has been repurposed, and `TurnContext.has()`, `TurnContext.get()`, and `TurnContext.set()` have been removed to align with this change

## Major Features & Enhancements

- **Agentic Header Propagation**: Added a new `header_propagation` module with an agentic header provider that forwards headers on outbound requests, preserving request context across hops (#506)
- **Fluent Activity Builders and Card Base Class**: Added fluent builders for constructing activities, a `Card` base class, and `AdaptiveCardCard` to make building rich activities and cards easier (#495)
- **TurnContext Services**: Added `TurnContext.services` with generic, type-based keying and retrieval so handlers can register and resolve per-turn services without stringly-typed keys (#491)
- **App-Based Graph Client Factories**: Added factory methods for app-based Graph clients in the Teams hosting library, with an accompanying `graph-clients` sample (#481)
- **UserTokenClientBase Interface Expansion**: Expanded `UserTokenClientBase` to hide the need to access lower-level `UserToken` and `AgentSignIn` instances (#501)
- **Token Provider From Activity**: Added `get_token_provider_from_activity` to `Connections` and `ConnectionManager` (#500)

## New Models & APIs

- **AccessTokenProviderBase Improvements**: Improved the `AccessTokenProviderBase` interface for clearer token acquisition (#494)
- **Storage Provider Signatures**: Improved method signatures and typing annotations across storage providers (#498)
- **ChannelServiceRoutes Handler Results**: Improved treatment of handler results in `ChannelServiceRoutes` (#462)
- **Citation Icon Alignment**: Aligned `ClientCitationIconName` with the Teams "Add citations" documentation (#387)

## Bug Fixes

- **PowerPlatformEnvironment**: `PowerPlatformEnvironment.get_endpoint_suffix` now raises an exception on failure instead of returning it (#489)
- **Linting**: Fixed linting issues in `hosting/core/app` (#488)

## Developer Experience

- **JWT Auth Middleware Refactor**: Refactored the JWT authorization middleware and added FastAPI JWT authorization middleware coverage (#497)
- **Startup Logging**: Added startup configuration logging of connections and the connections map (#474)
- **TurnContext Improvements**: TurnContext middleware improvements and annotation corrections, plus removal of the `_ChannelIdFieldMixin` (#487, #490)
- **Hosting Request Adapter Deduplication**: Deduplicated hosting request adapter code across web framework integrations (#499)
- **Typing and API Consistency**: Type annotations and API consistency tweaks throughout the codebase (#493)
- **Tooling**: Updated the black version for pre-commit (#496)

---

# Microsoft 365 Agents SDK for Python - Release Notes v1.2.0

**Release Date:** 2026-07-17
Expand Down
14 changes: 13 additions & 1 deletion libraries/microsoft-agents-activity/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ This library is part of the **Microsoft 365 Agents SDK for Python** - a comprehe
<th style="width:20%">Date</th>
<th style="width:60%">Release Notes</th>
</tr>
<tr>
<td>1.3.0</td>
<td>2026-07-30</td>
<td>
<a href="https://github.com/microsoft/Agents-for-python/blob/main/changelog.md#microsoft-365-agents-sdk-for-python---release-notes-v130">
1.3.0 Release Notes
</a>
</td>
</tr>
<tr>
<td>1.2.0</td>
<td>2026-07-17</td>
Expand Down Expand Up @@ -116,11 +125,14 @@ We offer the following PyPI packages to create conversational experiences based
| `microsoft-agents-activity` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-activity)](https://pypi.org/project/microsoft-agents-activity/) | Types and validators implementing the Activity protocol spec. |
| `microsoft-agents-hosting-core` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-core)](https://pypi.org/project/microsoft-agents-hosting-core/) | Core library for Microsoft Agents hosting. |
| `microsoft-agents-hosting-aiohttp` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-aiohttp)](https://pypi.org/project/microsoft-agents-hosting-aiohttp/) | Configures aiohttp to run the Agent. |
| `microsoft-agents-hosting-teams` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-teams)](https://pypi.org/project/microsoft-agents-hosting-teams/) | Provides classes to host an Agent for Teams. |
| `microsoft-agents-hosting-fastapi` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-fastapi)](https://pypi.org/project/microsoft-agents-hosting-fastapi/) | Configures fastapi to run the Agent. |
| `microsoft-agents-hosting-msteams` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-msteams)](https://pypi.org/project/microsoft-agents-hosting-msteams/) | Provides classes to host an Agent for Teams. |
Comment thread
kylerohn-msft marked this conversation as resolved.
| `microsoft-agents-hosting-dialogs` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-dialogs)](https://pypi.org/project/microsoft-agents-hosting-dialogs/) | Dialog system with waterfall dialogs, prompts, and multi-turn conversation management. |
| `microsoft-agents-hosting-slack` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-slack)](https://pypi.org/project/microsoft-agents-hosting-slack/) | Provides classes to host an Agent for Slack. |
| `microsoft-agents-storage-blob` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-storage-blob)](https://pypi.org/project/microsoft-agents-storage-blob/) | Extension to use Azure Blob as storage. |
| `microsoft-agents-storage-cosmos` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-storage-cosmos)](https://pypi.org/project/microsoft-agents-storage-cosmos/) | Extension to use CosmosDB as storage. |
| `microsoft-agents-authentication-msal` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-authentication-msal)](https://pypi.org/project/microsoft-agents-authentication-msal/) | MSAL-based authentication for Microsoft Agents. |
| `microsoft-agents-authentication-entra-auth-sidecar` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-authentication-entra-auth-sidecar)](https://pypi.org/project/microsoft-agents-authentication-entra-auth-sidecar/) | Credential-free Entra ID Agent ID authentication via the sidecar. |

Additionally we provide a Copilot Studio Client, to interact with Agents created in CopilotStudio:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ handles secrets, certificates, or keys.
<th style="width:20%">Date</th>
<th style="width:60%">Release Notes</th>
</tr>
<tr>
<td>1.3.0</td>
<td>2026-07-30</td>
<td>
<a href="https://github.com/microsoft/Agents-for-python/blob/main/changelog.md#microsoft-365-agents-sdk-for-python---release-notes-v130">
1.3.0 Release Notes
</a>
</td>
</tr>
<tr>
<td>1.2.0</td>
<td>2026-07-17</td>
Expand All @@ -26,6 +35,24 @@ handles secrets, certificates, or keys.
</tr>
</table>

## Packages Overview

We offer the following PyPI packages to create conversational experiences based on Agents:

| Package Name | PyPI Version | Description |
|--------------|-------------|-------------|
| `microsoft-agents-activity` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-activity)](https://pypi.org/project/microsoft-agents-activity/) | Types and validators implementing the Activity protocol spec. |
| `microsoft-agents-hosting-core` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-core)](https://pypi.org/project/microsoft-agents-hosting-core/) | Core library for Microsoft Agents hosting. |
| `microsoft-agents-hosting-aiohttp` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-aiohttp)](https://pypi.org/project/microsoft-agents-hosting-aiohttp/) | Configures aiohttp to run the Agent. |
| `microsoft-agents-hosting-fastapi` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-fastapi)](https://pypi.org/project/microsoft-agents-hosting-fastapi/) | Configures fastapi to run the Agent. |
| `microsoft-agents-hosting-msteams` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-msteams)](https://pypi.org/project/microsoft-agents-hosting-msteams/) | Provides classes to host an Agent for Teams. |
Comment thread
kylerohn-msft marked this conversation as resolved.
| `microsoft-agents-hosting-dialogs` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-dialogs)](https://pypi.org/project/microsoft-agents-hosting-dialogs/) | Dialog system with waterfall dialogs, prompts, and multi-turn conversation management. |
| `microsoft-agents-hosting-slack` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-slack)](https://pypi.org/project/microsoft-agents-hosting-slack/) | Provides classes to host an Agent for Slack. |
| `microsoft-agents-storage-blob` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-storage-blob)](https://pypi.org/project/microsoft-agents-storage-blob/) | Extension to use Azure Blob as storage. |
| `microsoft-agents-storage-cosmos` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-storage-cosmos)](https://pypi.org/project/microsoft-agents-storage-cosmos/) | Extension to use CosmosDB as storage. |
| `microsoft-agents-authentication-msal` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-authentication-msal)](https://pypi.org/project/microsoft-agents-authentication-msal/) | MSAL-based authentication for Microsoft Agents. |
| `microsoft-agents-authentication-entra-auth-sidecar` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-authentication-entra-auth-sidecar)](https://pypi.org/project/microsoft-agents-authentication-entra-auth-sidecar/) | Credential-free Entra ID Agent ID authentication via the sidecar. |

## Why a sidecar?

- **Credential-free agent code** — all credential management (Managed Identity, Workload
Expand Down
14 changes: 13 additions & 1 deletion libraries/microsoft-agents-authentication-msal/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ This library is part of the **Microsoft 365 Agents SDK for Python** - a comprehe
<th style="width:20%">Date</th>
<th style="width:60%">Release Notes</th>
</tr>
<tr>
<td>1.3.0</td>
<td>2026-07-30</td>
<td>
<a href="https://github.com/microsoft/Agents-for-python/blob/main/changelog.md#microsoft-365-agents-sdk-for-python---release-notes-v130">
1.3.0 Release Notes
</a>
</td>
</tr>
<tr>
<td>1.2.0</td>
<td>2026-07-17</td>
Expand Down Expand Up @@ -116,11 +125,14 @@ We offer the following PyPI packages to create conversational experiences based
| `microsoft-agents-activity` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-activity)](https://pypi.org/project/microsoft-agents-activity/) | Types and validators implementing the Activity protocol spec. |
| `microsoft-agents-hosting-core` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-core)](https://pypi.org/project/microsoft-agents-hosting-core/) | Core library for Microsoft Agents hosting. |
| `microsoft-agents-hosting-aiohttp` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-aiohttp)](https://pypi.org/project/microsoft-agents-hosting-aiohttp/) | Configures aiohttp to run the Agent. |
| `microsoft-agents-hosting-teams` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-teams)](https://pypi.org/project/microsoft-agents-hosting-teams/) | Provides classes to host an Agent for Teams. |
| `microsoft-agents-hosting-fastapi` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-fastapi)](https://pypi.org/project/microsoft-agents-hosting-fastapi/) | Configures fastapi to run the Agent. |
| `microsoft-agents-hosting-msteams` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-msteams)](https://pypi.org/project/microsoft-agents-hosting-msteams/) | Provides classes to host an Agent for Teams. |
Comment thread
kylerohn-msft marked this conversation as resolved.
| `microsoft-agents-hosting-dialogs` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-dialogs)](https://pypi.org/project/microsoft-agents-hosting-dialogs/) | Dialog system with waterfall dialogs, prompts, and multi-turn conversation management. |
| `microsoft-agents-hosting-slack` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-hosting-slack)](https://pypi.org/project/microsoft-agents-hosting-slack/) | Provides classes to host an Agent for Slack. |
| `microsoft-agents-storage-blob` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-storage-blob)](https://pypi.org/project/microsoft-agents-storage-blob/) | Extension to use Azure Blob as storage. |
| `microsoft-agents-storage-cosmos` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-storage-cosmos)](https://pypi.org/project/microsoft-agents-storage-cosmos/) | Extension to use CosmosDB as storage. |
| `microsoft-agents-authentication-msal` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-authentication-msal)](https://pypi.org/project/microsoft-agents-authentication-msal/) | MSAL-based authentication for Microsoft Agents. |
| `microsoft-agents-authentication-entra-auth-sidecar` | [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-authentication-entra-auth-sidecar)](https://pypi.org/project/microsoft-agents-authentication-entra-auth-sidecar/) | Credential-free Entra ID Agent ID authentication via the sidecar. |

Additionally we provide a Copilot Studio Client, to interact with Agents created in CopilotStudio:

Expand Down
Loading
Loading