Releases: microsoft/Agents-for-net
v1.3 SDK Release
Microsoft 365 Agents SDK for .NET - Release Notes v1.3.0
Release Date: November 15, 2025
Previous Version: 1.2.0 (Released August 18, 2025)
🎉 What's New in 1.3.0
This release introduces first-class A2A hosting (preview), and Copilot Studio Connector (preview). It also brings extensible serialization, richer feedback orchestration, and bug fixes to help you build production-grade agent experiences.
🚀 Major Features & Enhancements
A2A Hosting (Preview)
- Introduced the
Microsoft.Agents.Hosting.AspNetCore.A2A.Previewlibrary for support in exposting your SDK agent to A2A clients. (#391) - Added A2A sample agent (
samples/A2AAgent,samples/A2ATCKAgent) that demonstrate basic A2A multi-turn tasks, and alignment with the A2A TCK. (#391)
Copilot Studio Agent Connector
- Added the Copilot Studio Power Apps Connector implementation, including and a ready-to-run sample. This is in preview in Copilot Studio and not generally available for everyone. (#450)
- Samples now default to requiring authentication and respect configured scopes when calling Copilot Studio services. (#472, #450)
Citation-Aware Responses
- Improved streaming responses with citation management APIs, deduplication safeguards, and richer metadata on AI entities. (#427)
- Added helper methods to
MessageFactoryand entity models so experiences can surface citations without hand-coding payloads. (#427)
Feedback Loop
- Enabled feedback loop handling in AgentApplication, making it easier to capture user evaluations during conversations. This existed in the Teams Extension, but is now part of AgentApplication. Not all channels support this, but expanded support is coming. (#480)
📚 Documentation & Developer Experience
Expanded API Surface Descriptions
- Added missing XML documentation for
AgentApplicationBuilder,IAgentClient,IAgentHost, and quick view responses to improve IntelliSense and API discovery. (#417) - Clarified Teams channel support semantics in
Channelsto avoid confusion when routing agent traffic. (#430)
🔧 Developer Tools & Quality
Serialization Performance & Extensibility
- Generated assembly-level serialization attributes to eliminate runtime scans and lowered cold-start costs. (#449, #441)
- Introduced dynamic entity discovery via
EntityNameAttributeand public registration hooks, enabling custom entity types without forking the serializer. (#465) - Refined entity cleanup and removal logic to prevent stale data from leaking between turns. (#463)
Analyzer & Build Infrastructure
- Bundled analyzers inside
Microsoft.Agents.Coreand unified their target framework for consistent diagnostics. (37deeaf7, 5fa356d3) - Moved the repository to .NET SDK 8.0.414 to align with the latest LTS servicing updates. (#439, #481)
🔐 Authentication & Security Enhancements
- Add support for Entra Agent ID Preview
- Improved Multi-tenant detction for authenticaiton token support this will attempt to create a tenant specifice token for User Autheitcation and AgentID scenarios when the authority associated with current Agent identity is using the /common authority.5
🐛 Bug Fixes & Maintenance
- Resolved failures when registering
IAgentimplementations via factories in multi-agent hosts. (#418) - Ensured Cosmos DB storage can reuse existing
CosmosClientinstances for dependency injection scenarios. (#446) - Improved route handlers to understand sub-channel identifiers and alternate blueprint connection names. (#458, #445)
- Removed obsolete helper extensions and tightened activity validation to match the latest Teams schemas. (#461)
📦 New Package Information
- Microsoft.Agents.Hosting.AspNetCore.A2A.Preview – new preview package delivering A2A hosting (preview). (#391)
🚀 Getting Started
Upgrade your projects to the new release with:
dotnet add package Microsoft.Agents.Hosting.AspNetCore --version 1.3.0
dotnet add package Microsoft.Agents.Authentication.Msal --version 1.3.0🙏 Acknowledgments
Thank you to the Microsoft 365 Agents team and the open-source community for the ideas, code reviews, and contributions that shaped this release.
📞 Support & Resources
- Documentation: Microsoft 365 Agents SDK
- Issues: GitHub Issues
- Samples: Agent Samples Repository
- Community: Join the discussions and share feedback through GitHub.
Details - What's Changed
- Users/mbarbour/update version for release by @MattB-msft in #416
- [#413] HeaderPropagation: User-Agent by @ceciliaavila in #419
- Moved TranscriptLoggerMiddleware out of Compat by @tracyboehrer in #408
- Added missing API descriptions by @phecke in #417
- IAgent registered with a factory would fail during a request by @tracyboehrer in #418
- Adds a fallback mechanic to support falling back to standard messaging when streaming fails for a not supported reason. by @MattB-msft in #424
- Update Agent1 sample for receiving responses from Agent2 by @Santhosh0505 in #426
- Added clarification comments around the Channels.Supports* Teams handling by @tracyboehrer in #430
- Agent-to-agent samples fixes by @tracyboehrer in #429
- Enhance serialization initialization with performance logging and ass… by @MattB-msft in #441
- Agentic core by @tracyboehrer in #443
- Exposed CosmosDb constructor that accepts CosmosClient by @tracyboehrer in #446
- Users/tracyboehrer/agentic v2 by @tracyboehrer in #445
- Add citation management methods and update AIEntity and fixes by @MattB-msft in #427
- Rename AskQuestionAsync(IActivity, [CancellationToken]) to SendActivi… by @coatsy in #422
- Generate assembly-level serialization attribute for faster initialization times by @olstakh in #449
- Annotate ChannelId class with nullables by @olstakh in #452
- Refactor transcript logging and enforce filename length by @MattB-msft in #454
- A2A by @tracyboehrer in #391
- Bump dotnet-sdk from 8.0.308 to 8.0.414 by @dependabot[bot] in #439
- Added Agentic flag to AgentApplication routes by @tracyboehrer in #456
- Update Extension Route handler to support sub channels. by @MattB-msft in #458
- Include analyzer in the package when packing without a build step by @olstakh in #460
- Agentic ACF responses by @tracyboehrer in #461
- Copilot Studio Agent to Agent Connector by @tracyboehrer in #450
- Refactor entity removal logic in EntityExtension.cs by @MattB-msft in #463
- Truncating conversationId to 325 in ConnectorClient.Conversations by @tracyboehrer in #471
- Agentic: Use AgenticUserId instead of Id by @tracyboehrer in #474
- AgenticAI sample using Agentic Route flag by @tracyboehrer in #476
- Bump dotnet-sdk by @tracyboehrer in #481
- CopilotStudioAgentConnector defaults to auth required by @tracyboehrer in #472
- ChannelId properly split string with multiple delimeters by @tracyboehrer in https://github.com/microso...
1.2.41 Nuget release
POSSIBLE BREAKING CHANGE FOR SOME DEVELOPERS:
Update ChannelID to support the fully qualified channel when working with Channels that include subChannels.
- This update converts ChanneID to a class that contains the primary channel id and the subchannel id when sent.
- The updated channel id will be formatted as :
<channelid>:<subschannelid>see spec change request: microsoft/Agents#77 - An example of this is M365 Copilot. Which will appear as
msteams:copilot
- The updated channel id will be formatted as :
- Existing code using string compare will continue to function, however the comparisons will need to be updated if you want to apply the same or differing treatment to the subchannel
- If your are using code such as this:
if (turnContext.Activity.ChannelId.Equals(Channels.Msteams))
{
/// do work for teams
}you will need to update it as such:
if (turnContext.Activity.ChannelId.Equals(Channels.Msteams))
{
// do stuff only for Teams channel
}
if (turnContext.Activity.ChannelId.IsParentChannel(Channels.Msteams))
{
// do stuff for Teams channel and all sub-channels of teams
}
if (turnContext.Activity.ChannelId.Equals(Channels.M365Copilot))
{
// do stuff for M365 Copilot channel which will appear as "msteams:copilot"
}Changes Summary:
Added: Support for generating an Azure.Core TokenCredential for ICredential Provider based authentication modules.
Added: Support for hosting multiple distinct agent endpoint in a single hosting process.
Added: Initial support for Copilot Studio Agent-to-Agent Connector authentication support.
Updated: Blob Storage provider to provide additional BlobContainerClient features.
Reorganized and optimized code around how we handle deliveryMode ExpectReplies.
Teams Extension: Added Support for Teams Shared Channels.
What's Changed
- Users/mbarbour/setup11 release by @MattB-msft in #368
- Agents SDK API reference documentation by @phecke in #302
- Provided AspNetExtensions code config option by @tracyboehrer in #371
- DictionaryOfObjectConverter was not handling start/end object for empty dictionaries by @tracyboehrer in #366
- StreamingResponse improvements by @tracyboehrer in #360
- Update README.md by @sarahcritchley in #376
- Sample updates by @tracyboehrer in #374
- ExpectReplies during OAuth not handled correctly by @tracyboehrer in #347
- Added support for multi agent by @tracyboehrer in #362
- Teams Shared Channel changes by @goldenwitch in #387
- Connector Conversations.SendToConversation not handling empty responese from Teams by @tracyboehrer in #382
- Missing graph info would cause exception in AutoSignIn by @tracyboehrer in #373
- Sync samples from umbrella by @tracyboehrer in #383
- Exposed BlobsStorage constructor that accepts BlobContainerClient by @tracyboehrer in #394
- Activity.ChannelId supports subchannels. by @tracyboehrer in #232
- Update MembershipSource.cs by @goldenwitch in #407
- Added Channels.Supports* for AP Cards by @tracyboehrer in #403
- Streaming Response was not activating for subchannels, modified stre… by @MattB-msft in #409
- Fix to allow using a Dialog conditionally in AgentApplication by @tracyboehrer in #406
- StreamingResponse: Handling nulls in ErrorResponseException by @tracyboehrer in #412
Full Changelog: v1.1.0...v1.2.0
v1.1.151 Nuget release
Significant Improvements / Bug fixes
- Fixed several bugs around managing user token expiration for user authorization tokens to reduce the frequency of communication with Entra ID
- Fixed issues relating to some Teams Auth Centric SSO behaviors that would cause the system fail to acquire an auth token for a user that the user should have otherwise been able to acquire.
- Fixed several behavior issues with Agent SDK Host operating as a Skill, and in Agent to Agent Mode for Copilot Studio, specifically dealing with the behavior of the system when operating in Expect Replies mode.
- Improved handling of InvokeReplies and hardened the behavior with relation to teams.
Teams client ported from Teams AI lib v1. - Added Net Standard 2.0 target for Non-Hosting libraries to support internal and external partner system dependencies on Agent SDK modules.
- Added support for Pre-Route user authorization handlers, this will allow a developer to request that 1 or more user authorization tokens be available to the turn operation at execution time.
- Added support for Workload Identity
- Microsoft Teams added Microsoft.Agents.Extensions.Teams.AI lib porting over Teams AI v1 and part of v2 AI lib support.
- Microsoft Teams improved teams operations support in Microsoft.Agents.Extensions.Teams to include additional features for
Dependency Updates:
- Updated several package versions in
Directory.Packages.props, includingMicrosoft.SemanticKernelpackages,System.Runtime.Caching, andMicrosoft.Bcl.AsyncInterfaces. Added new dependencies such asPolySharpandJsonSchema.Net. [1] [2] [3] [4]
Workflow Adjustments:
- Added a new Linux-specific CI workflow (
ci-linux.yml) for local build and test. - Modified the existing CI workflow (
ci.yml) to target Windows instead of Linux.
Detailed What's Changed:
- Using IUserTokenClient.GetTokenOrSignInResourceAsync by @tracyboehrer in #214
- Updated Agent-to-Agent samples to use minimal Program.cs by @tracyboehrer in #229
- Update projects for multi-targeting and framework compatibility by @MattB-msft in #226
- Sync EmptyAgent by @tracyboehrer in #233
- Sync WeatherAgent by @tracyboehrer in #231
- Optional serializer 'object' as string by @tracyboehrer in #230
- Add AdaptiveCardInvokeResponseConverter for JSON handling by @MattB-msft in #237
- AgentApplication route selector changes by @tracyboehrer in #240
- Users/mbarbour/update teams extension for missingparts by @MattB-msft in #246
- Extension serialization init fix by @tracyboehrer in #243
- docs: add troubleshoot and finding schema name by @JasonTheDeveloper in #215
- Added Anonymous support and FullAuthentication sample by @tracyboehrer in #245
- Sync samples changes in umbrella back to repo by @tracyboehrer in #258
- fix netstandard typo by @goldenwitch in #261
- Moving old Teams samples to private repo by @tracyboehrer in #257
- Teams OAuth/SSO corrections by @tracyboehrer in #250
- Added AI Citations to StreamingResponses by @tracyboehrer in #264
- Update Message processor to not required ServiceURL when an activity request appears with Delivery mode equal to ExpectReplies by @MattB-msft in #268
- fix linux build by @rido-min in #269
- Add method to determine connector client necessity by @MattB-msft in #270
- ProtocolJsonSerializer.ApplyExtensionOptions(lamda) by @tracyboehrer in #271
- Users/jdaly/ai-code-comments by @JimDaly in #265
- Enhance ExceptionParser and update error handling by @MattB-msft in #273
- Added ConversationAccountConverter by @tracyboehrer in #277
- UserAuthentication Auto changes + Token caching by @tracyboehrer in #204
- Now serializing empty lists by @tracyboehrer in #280
- Restored original EnsureTrailingSlash by @tracyboehrer in #281
- Improve version retrieval in UserAgent.cs by @MattB-msft in #282
- Added HandlingAttachments by @tracyboehrer in #284
- UserAuth fixes by @tracyboehrer in #289
- AIEntityConverter fix, SerializationInit exception catch by @tracyboehrer in #285
- Inline /// comment documentation updates by @phecke in #292
- Handle "OBOScopes" as a string instead of an array by @tracyboehrer in #291
- Removed test-bots by @tracyboehrer in #286
- Minor AzureBotUserAuthorization internal cleanup by @tracyboehrer in #294
- AdaptiveCardInvokeResponseFactory fixes by @tracyboehrer in #296
- Refactor URL handling in PowerPlatformEnvironment.cs by @MattB-msft in #297
- Initial commit for AI by @goldenwitch in #290
- Fix Stream DeliveryMode by @sw-joelmut in #300
- Updated Teams AI Lib to comply with project specs and create a proper… by @MattB-msft in #306
- Update ConnectorConverter to honer JsonIgnore and JsonPropertyName by @msftshlomiyosef in #305
- Added autoSignInHandlers to RouteAttribute by @tracyboehrer in #309
- StreamingResponse fixes by @tracyboehrer in #313
- Streaming fix (again) for sending final even when no text buffered by @tracyboehrer in #315
- Update Microsoft.Agents.Extensions.Teams.AI.csproj by @MattB-msft in #321
- adds signout to OBO Sample by @rido-min in #327
- Add TeamsExtension sample by @rido-min in #219
- Enhance ADO token retrieval by adding JWT parsing functionality by @MattB-msft in #332
- Fix: TypingTimer was not stopping for streamingresponses by @tracyboehrer in #319
- Consistency and comment improvements for samples by @tracyboehrer in #333
- Handling non-JWT token during OAuth by not caching by @tracyboehrer in #328
- Fix for anonymous access in SkillDialog and responses by @tracyboehrer in #331
- Add workload identity as a MSAL option by @danielkoek in #228
- Fix for Streaming bug when working with a client that does not support streaming by @MattB-msft in #337
- Add conditional check for FinalMessage in activity.Text by @MattB-msft in #339
- Update README.md by @sarahcritchley in #340
- Fix Agent-To-Agent communication by retrieving claims from JWT token in ChannelApiController by @ceciliaavila in #335
- Corrected OBO echange failed message by @tracyboehrer in #345
- Workload Identity by @tracyboehrer in #320
- Update MCS Client to append more detailed user agent. by @MattB-msft in #348
- Added route rank and sign in handler arguments to Teams Extension by @tracyboehrer in #341
- Use WriteStringValue and GetString when UnpackObjectStrings is false to handle simple string values correctly by @msftshlomiyosef in #352
- Added ErrorResponseException.StatusCode by @tracyboehrer in #353
- Add header propagation functionality by @sw-joelmut in #143
- Add Dependabot co...
Nuget Release version 1.0.1
Initial v1 release of the Agents SDK.
https://www.nuget.org/packages/Microsoft.Agents.Core/1.0.1