Releases: microsoft/agent-framework-durable-extension
Releases · microsoft/agent-framework-durable-extension
Release list
v1.16.0-preview.260922.1
First GitHub release for this repo. Earlier preview versions were published to nuget.org and PyPI without a corresponding tag or release entry, so the notes below cover the accumulated [Unreleased] changelog rather than only the delta since the previous preview.
Packages
.NET — 1.16.0-preview.260922.1
| Package | |
|---|---|
Microsoft.Agents.AI.DurableTask |
https://www.nuget.org/packages/Microsoft.Agents.AI.DurableTask/1.16.0-preview.260922.1 |
Microsoft.Agents.AI.Hosting.AzureFunctions |
https://www.nuget.org/packages/Microsoft.Agents.AI.Hosting.AzureFunctions/1.16.0-preview.260922.1 |
Python — 1.0.0b260922
| Package | |
|---|---|
agent-framework-durabletask |
https://pypi.org/project/agent-framework-durabletask/1.0.0b260922/ |
agent-framework-azurefunctions |
https://pypi.org/project/agent-framework-azurefunctions/1.0.0b260922/ |
All .NET assemblies and packages in this release are Authenticode signed through ESRP.
Breaking changes
Microsoft.Agents.AI.DurableTask
AddWorkflowno longer silently overwrites a workflow already registered under the same name, which previously left the workflow and executor registries inconsistent. Registering a different workflow under a taken name now throws; re-registering the same instance remains a no-op. Applications that register duplicate workflow names start today but will now fail at startup (#66)- Added
IWorkflowClientoverloads that start a registered workflow by name, and made workflow result deserialization case-insensitive so results can be read back when hosted in Azure Functions. External implementations ofIWorkflowClientmust implement the new members, and an untypednullfirst argument is now ambiguous between theWorkflowand workflow-name overloads (#48) - Removed the
AddAIAgentsandAddWorkflowsbulk registration APIs;AddWorkflownow returnsDurableWorkflowOptionsso multiple workflows can be registered fluently (#39)
Microsoft.Agents.AI.Hosting.AzureFunctions
- The workflow status and respond endpoints always return JSON now, including on errors and when the request sends no
Acceptheader. Malformed request bodies surface as400 Bad Requestinstead of an unhandled error (#60) - Bounded synchronous workflow HTTP invocation via query parameters; workflow run responses default to JSON, with
Accept: text/plainavailable for the legacy text format (#52) - Consolidated the
AddWorkflowoverloads into a single method with optionalenableStatusEndpointandenableMcpToolTriggerparameters, returningDurableWorkflowOptions(#39) - Replaced "thread" with "session" in the HTTP and MCP APIs (#47)
- Renamed
AddWorkflowparametersexposeStatusEndpoint/exposeMcpToolTriggertoenableStatusEndpoint/enableMcpToolTrigger, for consistency withAddAIAgent(#35)
Fixes and improvements
- Hardened durable agent executor output handling so control-shaped JSON returned by an agent stays a raw result instead of populating executor control fields (#101)
- Durable workflows now fail with
MaxSuperstepsExceededExceptionwhen they hit the configurableMaxSuperstepslimit with work still queued, instead of returning a successful partial result (#84) - Fixed
ConfigureDurableAgentsandConfigureDurableWorkflowsnot composing in the same application — previously one ordering left workflow functions without an executor, the other registered the function execution middleware twice, and agents registered throughConfigureDurableOptionsgenerated no functions at all, leaving the agent silently unreachable (#67) - Fixed a
JsonTypeInfo metadata ... was not providedfailure when persisting agent state for function calls or results carrying values the state serializer has no metadata for, such asAIContentresults returned by MCP tools (#57) - Added
DurableTaskClient.AsWorkflowClientso functions can invoke durable workflows without constructing anHttpClient(#48) - Wrapped
RequestPortexternal responses in a controlledDurableExecutorOutputenvelope so only theresultproperty is populated during deserialization (#20) - Scoped the workflow status and respond endpoints to the route workflow name (agent-framework#6608)
- Bound the live workflow status to a trailing event window, so multi-executor workflows with large typed outputs no longer overflow the Durable Task 16 KB custom status cap (agent-framework#6775)
- Fixed
WorkflowOutputEventstreaming deserialization to readexecutorIdinstead of the renamedsourceId, with fallback for backward compatibility (agent-framework#6896) - Fixed resuming a checkpoint after a package version upgrade (agent-framework#6670)
- Bound the MCP
threadIdto the current agent and guarded cross-agent session dispatch (agent-framework#6531) - Added support for durable workflows (agent-framework#4436),
AddSwitchand target-selecting fan-out edges (agent-framework#6749), returning workflow results from the HTTP trigger endpoint (agent-framework#5321), and MCP tool triggers for durable workflows (agent-framework#4768)