.NET: Python: Azure Functions feature branch - #1916
Merged
Merged
Conversation
…ramework (#1823) * Add scafolding * update readme * add code owners and label * update owners
Dmytro Struk (dmytrostruk)
marked this pull request as draft
November 5, 2025 00:42
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 |
Contributor
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
Mark Wallace (markwallace-microsoft)
temporarily deployed
to
integration
November 8, 2025 07:26 — with
GitHub Actions
Inactive
Mark Wallace (markwallace-microsoft)
temporarily deployed
to
integration
November 8, 2025 07:26 — with
GitHub Actions
Inactive
Chris Gillum (cgillum)
temporarily deployed
to
integration
November 8, 2025 22:25 — with
GitHub Actions
Inactive
Chris Gillum (cgillum)
temporarily deployed
to
integration
November 8, 2025 22:25 — with
GitHub Actions
Inactive
Chris Gillum (cgillum)
temporarily deployed
to
integration
November 10, 2025 18:27 — with
GitHub Actions
Inactive
Chris Gillum (cgillum)
had a problem deploying
to
integration
November 10, 2025 18:27 — with
GitHub Actions
Failure
Chris Gillum (cgillum)
temporarily deployed
to
integration
November 10, 2025 23:58 — with
GitHub Actions
Inactive
Chris Gillum (cgillum)
had a problem deploying
to
integration
November 10, 2025 23:58 — with
GitHub Actions
Failure
* 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>
Laveesh Rohra (larohra)
temporarily deployed
to
integration
November 12, 2025 17:56 — with
GitHub Actions
Inactive
Laveesh Rohra (larohra)
temporarily deployed
to
integration
November 12, 2025 17:56 — with
GitHub Actions
Inactive
Chris Gillum (cgillum)
temporarily deployed
to
integration
November 12, 2025 19:50 — with
GitHub Actions
Inactive
Chris Gillum (cgillum)
temporarily deployed
to
integration
November 12, 2025 19:50 — with
GitHub Actions
Inactive
Chris Gillum (cgillum)
temporarily deployed
to
integration
November 12, 2025 19:51 — with
GitHub Actions
Inactive
Chris Gillum (cgillum)
temporarily deployed
to
integration
November 12, 2025 19:51 — with
GitHub Actions
Inactive
* 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>
Laveesh Rohra (larohra)
temporarily deployed
to
integration
November 12, 2025 20:13 — with
GitHub Actions
Inactive
Laveesh Rohra (larohra)
temporarily deployed
to
integration
November 12, 2025 20:13 — with
GitHub Actions
Inactive
Laveesh Rohra (larohra)
had a problem deploying
to
integration
November 12, 2025 20:13 — with
GitHub Actions
Error
Laveesh Rohra (larohra)
had a problem deploying
to
integration
November 12, 2025 20:13 — with
GitHub Actions
Error
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 (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
4 tasks
Evan Mattson (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