.NET: Python: Azure Functions feature branch#1916
Merged
dmytrostruk merged 32 commits intomainfrom Nov 13, 2025
Merged
Conversation
…ramework (#1823) * Add scafolding * update readme * add code owners and label * update owners
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR adds a new Python package for Azure Functions integration with the Microsoft Agent Framework. The package enables hosting Agent Framework agents on Azure Durable Functions with features like state persistence, conversation history replay, and automatic failure recovery.
- Adds a new
agent-framework-azurefunctionspackage underpython/packages/azurefunctions/ - Updates the
uv.lockfile to include the new package and its dependencies (azure-functions,azure-functions-durable,furl,orderedmultidict,werkzeug) - Updates transitive dependency versions (
fsspec,google-auth,polars,polars-runtime-32,sse-starlette)
Reviewed Changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| python/uv.lock | Adds new package dependencies for Azure Functions integration and updates several transitive dependencies to newer versions |
| python/packages/azurefunctions/pyproject.toml | Defines project metadata, dependencies, and build configuration for the new Azure Functions package |
| python/packages/azurefunctions/agent_framework_azurefunctions/init.py | Creates package entry point with copyright notice |
| python/packages/azurefunctions/README.md | Provides installation instructions and basic usage documentation for the Azure Functions integration |
| python/packages/azurefunctions/LICENSE | Adds MIT license file for the new package |
| .github/CODEOWNERS | Assigns code ownership for the Azure Functions package |
python/packages/azurefunctions/agent_framework_azurefunctions/__init__.py
Show resolved
Hide resolved
Member
Python Test Coverage Report •
Python Unit Test Overview
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* add initial changes * Move code and add single sample * Update logger * Remove unused code * address PR comments * cleanup code and address comments --------- Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
* Add Unit tests for Azurefunctions * remove duplicate import
…gents as MCP tools (#1979)
* Move all samples * fix comments * remove dead lines * Make samples simpler
* Add Integration tests * Remove DTS extension * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add pyi file for type safety * Add samples in readme * Updated all readme instructions * Address comments * Update readmes * Fix requirements * Address comments --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Move import to Azure * fix mypy * Update python/packages/azurefunctions/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add missing types * Address comments --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…__init__.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Member
|
I've updated PR description to remove the placeholder and add more detailed information. |
westey-m
reviewed
Nov 12, 2025
westey-m
reviewed
Nov 12, 2025
westey-m
reviewed
Nov 12, 2025
dotnet/src/Microsoft.Agents.AI.DurableTask/DurableAgentThread.cs
Outdated
Show resolved
Hide resolved
westey-m
reviewed
Nov 12, 2025
dotnet/src/Microsoft.Agents.AI.DurableTask/State/DurableAgentStateMessage.cs
Show resolved
Hide resolved
westey-m
approved these changes
Nov 12, 2025
4 tasks
- Adds a link from the /dotnet/samples/README.md to /dotnet/samples/AzureFunctions - Make DurableAgentThread deserialization internal for future-proofing - Update JSON serialization logic to address recently discovered issues with source generator serialization
dmytrostruk
commented
Nov 13, 2025
python/packages/azurefunctions/agent_framework_azurefunctions/_app.py
Outdated
Show resolved
Hide resolved
python/packages/azurefunctions/agent_framework_azurefunctions/_app.py
Outdated
Show resolved
Hide resolved
python/packages/azurefunctions/agent_framework_azurefunctions/_app.py
Outdated
Show resolved
Hide resolved
dmytrostruk
commented
Nov 13, 2025
4 tasks
moonbox3
approved these changes
Nov 13, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR merges the
feature-azure-functionsbranch intomain. More info on this feature below:Durable Task extension for Microsoft Agent Framework
This PR introduces two new .NET packages and one new Python package, enabling new scenarios for MAF on Azure Functions. In particular, this extension enables hosting MAF agents in distributed, serverless environments and integrates them natively into the Durable Functions orchestrations.
Documentation
Added NuGet Packages
Added Python Packages
Added Samples
Several new samples have been added for both .NET and Python demonstrating how to use this new extension, covering several use cases. The samples also include detailed READMEs, guiding users through the process of running the samples locally.
Added Tests
Both the .NET and Python changes include unit and integration tests. The integration tests also take care of validating the new samples we added above, ensuring that they continue to work as we make changes. The new integration tests depend primarily on Azure OpenAI as the external resource, use Azure CLI credentials (no secrets), and have been stable for several days.
Test Modifications
In order to run our integration tests, we've updated
dotnet-build-and-test.ymlandpython-merge-teststo run a new action,azure-functions-integration-setupwhich starts up two emulators (Azurite for Azure Storage and the Durable Task Scheduler emulator) as well as installing the Azure Functions Core Tools, which is used for running samples validation. This action only runs for integration tests and is not expected to contribute much to the length of the CI process.Feature Branch PRs
azurefunctionstoazurefor import #2141