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
4 changes: 2 additions & 2 deletions .github/workflows/python-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
os: ${{ runner.os }}
# DuckDB has no Python 3.15 wheels yet, and RedisVL declares Python <3.15.
exclude-packages: ${{ matrix.python-version == '3.10' && 'agent-framework-github-copilot agent-framework-azure-cosmos-memory' || matrix.python-version == '3.15' && 'agent-framework-duckdb agent-framework-redis' || '' }}
# RedisVL still declares Python <3.15.
exclude-packages: ${{ matrix.python-version == '3.10' && 'agent-framework-github-copilot agent-framework-azure-cosmos-memory' || matrix.python-version == '3.15' && 'agent-framework-redis' || '' }}
env:
# Configure a constant location for the uv cache
UV_CACHE_DIR: /tmp/.uv-cache
Expand Down
37 changes: 36 additions & 1 deletion python/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.23.0] - 2026-10-22

### Added
- **agent-framework-a2a**: Add allowlisted forwarding of function-invocation and client arguments from A2A request metadata ([#9193](https://github.com/microsoft/agent-framework/pull/9193))
- **agent-framework-core**, **agent-framework-orchestrations**: Add an opt-in synthetic trailing user turn for providers that return empty text after assistant-ending prompts ([#8779](https://github.com/microsoft/agent-framework/pull/8779))

### Changed
- **agent-framework**, **agent-framework-ag-ui**, **agent-framework-core**, **agent-framework-declarative**, **agent-framework-foundry-hosting**, **agent-framework-hosting-mcp**, **agent-framework-lab**: [BREAKING] Add the MCP 2.x compatibility foundation and migrate MCP transports, errors, schemas, and lifecycle handling ([#9236](https://github.com/microsoft/agent-framework/pull/9236))
- **agent-framework-ag-ui**, **agent-framework-core**: [BREAKING] Require an explicit AG-UI authorization scope or single-user declaration for endpoint registration ([#9413](https://github.com/microsoft/agent-framework/pull/9413))
- **agent-framework-tools**: [BREAKING] Rename Docker shell `extra_run_args` to `unsafe_extra_run_args` and make its trust requirements explicit ([#9453](https://github.com/microsoft/agent-framework/pull/9453))
- **agent-framework-tools**: Raise the `psutil` floor to the first release with Windows ABI3 wheels for the supported Python range.
- **agent-framework**, **agent-framework-core**: Advance the exact Core pin and standard-install dependency cohort to the package versions released in this cut.
- **agent-framework-declarative**, **agent-framework-devui**, **agent-framework-foundry-hosting**, **agent-framework-orchestrations**: Raise the Core floor to 1.23 for packages that consume the new MCP lifecycle or executor behavior.
- **agent-framework-core**, **agent-framework-devui**: Define caller-owned and framework-owned MCP client lifecycles, remove DevUI's stale-connection workaround, and update lifecycle guidance and workflow samples ([#9237](https://github.com/microsoft/agent-framework/pull/9237), [#9532](https://github.com/microsoft/agent-framework/pull/9532))
- **agent-framework**, **agent-framework-ag-ui**, **agent-framework-core**, **agent-framework-duckdb**, **agent-framework-hyperlight**: Add Python 3.15 support for DuckDB, Hyperlight, and the AG-UI A2UI extra by requiring DuckDB 2.0 on Python 3.15, Hyperlight 0.8, and A2UI toolkit 0.0.5, and adapt Hyperlight output-limit handling to the 0.8 size and quota behavior ([ag-ui-protocol/ag-ui#3057](https://github.com/ag-ui-protocol/ag-ui/issues/3057), [duckdb/duckdb-python#659](https://github.com/duckdb/duckdb-python/issues/659), [hyperlight-dev/hyperlight-sandbox#239](https://github.com/hyperlight-dev/hyperlight-sandbox/issues/239))
- **agent-framework-devui**, **agent-framework-lab**, **tests**, **samples**: Refresh Hugging Face Hub, frontend, Agent Framework, Pydantic, OpenTelemetry, orjson, development-tooling, and security-constrained dependencies ([#9416](https://github.com/microsoft/agent-framework/pull/9416), [#9420](https://github.com/microsoft/agent-framework/pull/9420), [#9421](https://github.com/microsoft/agent-framework/pull/9421), [#9422](https://github.com/microsoft/agent-framework/pull/9422), [#9423](https://github.com/microsoft/agent-framework/pull/9423), [#9590](https://github.com/microsoft/agent-framework/pull/9590))
- **docs**, **samples**: Refresh Content base64, Message URI, ChatResponse aggregation, and tool-normalization examples; ATR validation; Cosmos memory scoping; community MCP and Tracekit catalog entries; Foundry Toolbox setup; Foundry evals; Copilot Studio migrations; A2A hosting; ChatKit streaming; Purview middleware; and DevUI local-auth guidance ([#9332](https://github.com/microsoft/agent-framework/pull/9332), [#9333](https://github.com/microsoft/agent-framework/pull/9333), [#9433](https://github.com/microsoft/agent-framework/pull/9433), [#9443](https://github.com/microsoft/agent-framework/pull/9443), [#9447](https://github.com/microsoft/agent-framework/pull/9447), [#9467](https://github.com/microsoft/agent-framework/pull/9467), [#9497](https://github.com/microsoft/agent-framework/pull/9497), [#9518](https://github.com/microsoft/agent-framework/pull/9518), [#9521](https://github.com/microsoft/agent-framework/pull/9521), [#9523](https://github.com/microsoft/agent-framework/pull/9523), [#9550](https://github.com/microsoft/agent-framework/pull/9550), [#9551](https://github.com/microsoft/agent-framework/pull/9551), [#9553](https://github.com/microsoft/agent-framework/pull/9553), [#9575](https://github.com/microsoft/agent-framework/pull/9575), [#9576](https://github.com/microsoft/agent-framework/pull/9576), [#9577](https://github.com/microsoft/agent-framework/pull/9577))
- **tests**: Expand DevUI coverage for reasoning chunks without text ([#9543](https://github.com/microsoft/agent-framework/pull/9543))

### Fixed
- **agent-framework-core**: Rebuild nested content, accept `Literal` workflow-edge sources, close abandoned inner streams, pass stream errors into nested streams during closure, make Memory and Todo writes atomic, bind background completion waits to execution identity, support keyword-only functional-workflow contexts, isolate MCP task contexts, normalize tool-name whitespace, improve settled approval matching, recover owned MCP connections safely, and omit span-only tool attributes from invocation metrics ([#9304](https://github.com/microsoft/agent-framework/pull/9304), [#9355](https://github.com/microsoft/agent-framework/pull/9355), [#9331](https://github.com/microsoft/agent-framework/pull/9331), [#9397](https://github.com/microsoft/agent-framework/pull/9397), [#9412](https://github.com/microsoft/agent-framework/pull/9412), [#9442](https://github.com/microsoft/agent-framework/pull/9442), [#9451](https://github.com/microsoft/agent-framework/pull/9451), [#9476](https://github.com/microsoft/agent-framework/pull/9476), [#9557](https://github.com/microsoft/agent-framework/pull/9557), [#9535](https://github.com/microsoft/agent-framework/pull/9535), [#9583](https://github.com/microsoft/agent-framework/pull/9583), [#9592](https://github.com/microsoft/agent-framework/pull/9592))
- **agent-framework-ag-ui**: Preserve every queued approval result and repeated single-chunk text deltas ([#8851](https://github.com/microsoft/agent-framework/pull/8851), [#9339](https://github.com/microsoft/agent-framework/pull/9339))
- **agent-framework-anthropic**: Keep bash tool-result files nested inside their shell tool result ([#9343](https://github.com/microsoft/agent-framework/pull/9343))
- **agent-framework-azure-cosmos-memory**: Reject non-positive result limits and confidence values outside the supported range ([#9318](https://github.com/microsoft/agent-framework/pull/9318))
- **agent-framework-bedrock**: Merge per-call client arguments into Converse requests, resolve embedding regions consistently, and report the requested model on non-streaming responses ([#9345](https://github.com/microsoft/agent-framework/pull/9345), [#9349](https://github.com/microsoft/agent-framework/pull/9349), [#9399](https://github.com/microsoft/agent-framework/pull/9399))
- **agent-framework-declarative**: Match custom functions as whole calls and honor the configured variable in `SetValue` actions ([#9176](https://github.com/microsoft/agent-framework/pull/9176), [#9428](https://github.com/microsoft/agent-framework/pull/9428))
- **agent-framework-devui**: Emit an empty reasoning delta when a reasoning chunk has no text ([#9546](https://github.com/microsoft/agent-framework/pull/9546))
- **agent-framework-foundry-hosting**, **agent-framework-hosting-responses**: Sanitize unexpected streaming response failures before exposing them through Responses-shaped adapters ([#9460](https://github.com/microsoft/agent-framework/pull/9460))
- **agent-framework-gemini**: Send extracted structured-output schemas through the Gemini JSON Schema request field and set the assistant role on streamed updates ([#9491](https://github.com/microsoft/agent-framework/pull/9491), [#9590](https://github.com/microsoft/agent-framework/pull/9590))
- **agent-framework-lab**: Prefer the over-budget warning when a Tau2 sliding window exceeds its token limit ([#9341](https://github.com/microsoft/agent-framework/pull/9341))
- **agent-framework-ollama**: Decode and validate inline image data before passing it to the Ollama SDK ([#9459](https://github.com/microsoft/agent-framework/pull/9459))
- **agent-framework-redis**: Close the RedisVL search-index connection when the context provider owns it ([#9510](https://github.com/microsoft/agent-framework/pull/9510))
- **agent-framework-tools**: Prevent stateless shell tools from inheriting host standard input ([#9469](https://github.com/microsoft/agent-framework/pull/9469))

## [1.22.0] - 2026-10-15

> [!IMPORTANT]
Expand Down Expand Up @@ -1852,7 +1886,8 @@ Release candidate for **agent-framework-core** and **agent-framework-azure-ai**

For more information, see the [announcement blog post](https://devblogs.microsoft.com/foundry/introducing-microsoft-agent-framework-the-open-source-engine-for-agentic-ai-apps/).

[Unreleased]: https://github.com/microsoft/agent-framework/compare/python-1.22.0...HEAD
[Unreleased]: https://github.com/microsoft/agent-framework/compare/python-1.23.0...HEAD
[1.23.0]: https://github.com/microsoft/agent-framework/compare/python-1.22.0...python-1.23.0
[1.22.0]: https://github.com/microsoft/agent-framework/compare/python-1.21.0...python-1.22.0
[1.21.0]: https://github.com/microsoft/agent-framework/compare/python-1.20.0...python-1.21.0
[1.20.0]: https://github.com/microsoft/agent-framework/compare/python-1.19.0...python-1.20.0
Expand Down
2 changes: 0 additions & 2 deletions python/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,6 @@ not provide exactly the same feature set as Python 3.14:
| --- | --- |
| Declarative Power Fx | `agent-framework-declarative` is installed, but its `powerfx` dependency is not. YAML values beginning with `=` produce a warning and remain unchanged instead of being evaluated. Declarative agents or workflows that rely on expressions may therefore use invalid literal values or fail later. |
| Redis | `agent-framework-redis` is omitted from the standard install because RedisVL declares `Requires-Python <3.15`. Redis imports and Redis-backed history, context, and vector storage are unavailable. |
| Hyperlight | `agent-framework-hyperlight` is omitted because no compatible Python 3.15 sandbox backend wheel is published. Hyperlight CodeAct and its `execute_code` tool are unavailable. |
| AG-UI A2UI | The base `agent-framework-ag-ui` package works, but pip cannot install its optional `a2ui` extra because `ag-ui-a2ui-toolkit` declares `Requires-Python <3.15`. |

## 1. Setup API Keys

Expand Down
2 changes: 1 addition & 1 deletion python/packages/a2a/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description = "A2A integration for Microsoft Agent Framework."
authors = [{ name = "Microsoft", email = "af-support@microsoft.com"}]
readme = "README.md"
requires-python = ">=3.10"
version = "1.0.0b261015"
version = "1.0.0b261022"
license-files = ["LICENSE"]
urls.homepage = "https://aka.ms/agent-framework"
urls.source = "https://github.com/microsoft/agent-framework/tree/main/python"
Expand Down
4 changes: 1 addition & 3 deletions python/packages/ag-ui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ AG-UI protocol integration for Agent Framework, enabling seamless integration wi
pip install agent-framework-ag-ui
```

The base package supports Python 3.10–3.15. The optional A2UI integration
currently supports Python 3.10–3.14 because `ag-ui-a2ui-toolkit` declares
`Requires-Python <3.15`:
The base package and optional A2UI integration support Python 3.10–3.15:

```bash
pip install "agent-framework-ag-ui[a2ui]"
Expand Down
8 changes: 4 additions & 4 deletions python/packages/ag-ui/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "agent-framework-ag-ui"
version = "1.6.0"
version = "1.7.0"
Comment thread
eavanvalkenburg marked this conversation as resolved.
description = "AG-UI protocol integration for Agent Framework"
readme = "README.md"
license-files = ["LICENSE"]
Expand Down Expand Up @@ -38,10 +38,10 @@ dev = [
]
# A2UI (agent-generated UI) support. Optional: the agent_framework_ag_ui._a2ui
# modules import this lazily, so the base package works without it.
# Floor 0.0.4 is the first release with singular-`child` validation and
# `child_cycle` detection (ag-ui-protocol/ag-ui#1944).
# Floor 0.0.5 adds Python 3.15 support while retaining singular-`child`
# validation and `child_cycle` detection (ag-ui-protocol/ag-ui#1944).
a2ui = [
"ag-ui-a2ui-toolkit>=0.0.4",
"ag-ui-a2ui-toolkit>=0.0.5",
]

[dependency-groups]
Expand Down
2 changes: 1 addition & 1 deletion python/packages/anthropic/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description = "Anthropic integration for Microsoft Agent Framework."
authors = [{ name = "Microsoft", email = "af-support@microsoft.com"}]
readme = "README.md"
requires-python = ">=3.10"
version = "1.0.0b261015"
version = "1.0.0b261022"
license-files = ["LICENSE"]
urls.homepage = "https://aka.ms/agent-framework"
urls.source = "https://github.com/microsoft/agent-framework/tree/main/python"
Expand Down
2 changes: 1 addition & 1 deletion python/packages/azure-cosmos-memory/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description = "Azure Cosmos DB Agent Memory Toolkit integration for Microsoft Ag
authors = [{ name = "Microsoft", email = "af-support@microsoft.com"}]
readme = "README.md"
requires-python = ">=3.11"
version = "1.0.0a261015"
version = "1.0.0a261022"
license-files = ["LICENSE"]
urls.homepage = "https://aka.ms/agent-framework"
urls.source = "https://github.com/microsoft/agent-framework/tree/main/python"
Expand Down
2 changes: 1 addition & 1 deletion python/packages/bedrock/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description = "Amazon Bedrock integration for Microsoft Agent Framework."
authors = [{ name = "Microsoft", email = "af-support@microsoft.com"}]
readme = "README.md"
requires-python = ">=3.10"
version = "1.0.0b261015"
version = "1.0.0b261022"
license-files = ["LICENSE"]
urls.homepage = "https://aka.ms/agent-framework"
urls.source = "https://github.com/microsoft/agent-framework/tree/main/python"
Expand Down
28 changes: 14 additions & 14 deletions python/packages/core/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description = "Microsoft Agent Framework for building AI Agents with Python. Thi
authors = [{ name = "Microsoft", email = "af-support@microsoft.com"}]
readme = "README.md"
requires-python = ">=3.10"
version = "1.22.0"
version = "1.23.0"
Comment thread
eavanvalkenburg marked this conversation as resolved.
license-files = ["LICENSE"]
urls.homepage = "https://aka.ms/agent-framework"
urls.source = "https://github.com/microsoft/agent-framework/tree/main/python"
Expand Down Expand Up @@ -37,35 +37,35 @@ dependencies = [
all = [
"mcp>=2.2.0,<3",
"tenacity>=9.1.4,<9.2.0",
"agent-framework-a2a>=1.0.0b261015,<2",
"agent-framework-ag-ui>=1.6.0,<2",
"agent-framework-anthropic>=1.0.0b261015,<2",
"agent-framework-a2a>=1.0.0b261022,<2",
"agent-framework-ag-ui>=1.7.0,<2",
"agent-framework-anthropic>=1.0.0b261022,<2",
"agent-framework-azure-ai-search>=1.0.0b261015,<2",
"agent-framework-azure-contentunderstanding>=1.0.0b261015,<2",
"agent-framework-azure-cosmos>=1.0.0b261015,<2",
"agent-framework-azurefunctions>=1.0.0b260922,<2",
"agent-framework-bedrock>=1.0.0b261015,<2",
"agent-framework-bedrock>=1.0.0b261022,<2",
"agent-framework-chatkit>=1.0.0b261015,<2",
"agent-framework-claude>=1.0.0b261015,<2",
"agent-framework-copilotstudio>=1.0.0b261015,<2",
"agent-framework-declarative>=1.3.0,<2",
"agent-framework-devui>=1.0.0b261015,<2",
"agent-framework-declarative>=1.4.0,<2",
"agent-framework-devui>=1.0.0b261022,<2",
"agent-framework-durabletask>=1.0.0b260922,<2",
"agent-framework-foundry>=1.15.0,<2",
"agent-framework-foundry-hosting>=1.0.0b261015,<2",
"agent-framework-foundry-hosting>=1.0.0b261022,<2",
"agent-framework-foundry-local>=1.0.0b261015,<2",
"agent-framework-gemini>=1.0.0b261015,<2",
"agent-framework-gemini>=1.0.0b261022,<2",
"agent-framework-github-copilot>=2.1.0,<3; python_version >= '3.11'",
"agent-framework-hyperlight>=1.0.0b261015,<2; python_version < '3.15' and ((sys_platform == 'linux' and platform_machine == 'x86_64') or (sys_platform == 'win32' and platform_machine == 'AMD64'))",
"agent-framework-hyperlight>=1.0.0b261022,<2; (sys_platform == 'linux' and platform_machine == 'x86_64') or (sys_platform == 'win32' and platform_machine == 'AMD64')",
"agent-framework-mem0>=1.0.0b261015,<2",
"agent-framework-mistral>=1.0.0b261015,<2",
"agent-framework-monty>=1.0.0b261015,<2",
"agent-framework-ollama>=1.0.0b261015,<2",
"agent-framework-ollama>=1.0.0b261022,<2",
"agent-framework-openai>=1.17.0,<2",
"agent-framework-orchestrations>=1.3.2,<2",
"agent-framework-orchestrations>=1.4.0,<2",
"agent-framework-purview>=1.0.0b261015,<2",
"agent-framework-redis>=1.0.0b261015,<2; python_version < '3.15'",
"agent-framework-tools>=1.0.0b261015,<2",
"agent-framework-redis>=1.0.0b261022,<2; python_version < '3.15'",
"agent-framework-tools>=1.0.0b261022,<2",
]

[dependency-groups]
Expand Down
4 changes: 2 additions & 2 deletions python/packages/declarative/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description = "Declarative specification support for Microsoft Agent Framework."
authors = [{ name = "Microsoft", email = "af-support@microsoft.com"}]
readme = "README.md"
requires-python = ">=3.10"
version = "1.3.0"
version = "1.4.0"
license-files = ["LICENSE"]
urls.homepage = "https://aka.ms/agent-framework"
urls.source = "https://github.com/microsoft/agent-framework/tree/main/python"
Expand All @@ -22,7 +22,7 @@ classifiers = [
"Typing :: Typed",
]
dependencies = [
"agent-framework-core>=1.20.0,<2",
"agent-framework-core>=1.23.0,<2",
"httpx>=0.27,<0.29",
"httpx2>=2.0.0,<3",
"powerfx>=0.0.32,<0.0.35; python_version < '3.14'",
Expand Down
Loading
Loading