agent-framework-core 1.23.0__tar.gz → 1.25.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/PKG-INFO +68 -35
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/README.md +39 -5
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/__init__.py +10 -1
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/__init__.pyi +10 -1
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_agent_hooks.py +273 -19
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_agents.py +49 -7
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_clients.py +88 -3
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_compaction.py +557 -3
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_evaluation.py +58 -4
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_feature_stage.py +1 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_harness/_background_agents.py +156 -37
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_harness/_file_access.py +234 -23
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_harness/_loop.py +5 -2
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_harness/_memory.py +127 -32
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_harness/_todo.py +2 -2
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_harness/_tool_approval.py +13 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_in_memory.py +278 -5
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_mcp.py +823 -236
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_middleware.py +49 -12
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_sessions.py +28 -4
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_settings.py +2 -4
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_skills.py +42 -6
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_tools.py +123 -24
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_types.py +182 -68
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_vectors.py +2 -1
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_agent.py +129 -20
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_agent_executor.py +8 -2
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_checkpoint.py +55 -16
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_checkpoint_encoding.py +98 -7
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_edge.py +32 -12
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_edge_runner.py +10 -5
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_executor.py +3 -2
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_function_executor.py +1 -7
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_functional.py +115 -33
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_model_utils.py +1 -7
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_request_info_mixin.py +1 -7
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_typing_utils.py +17 -1
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_viz.py +9 -9
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_workflow.py +2 -1
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_workflow_builder.py +19 -17
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_workflow_context.py +2 -2
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/observability.py +32 -11
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/security.py +538 -163
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/pyproject.toml +37 -31
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/LICENSE +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_docstrings.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_filesystem.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_harness/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_harness/_agent.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_harness/_agent.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_harness/_file_memory.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_harness/_mode.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_serialization.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_telemetry.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_vector_filters.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_agent_utils.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_const.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_conversation_history.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_events.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_message_utils.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_runner.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_runner_context.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_state.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_validation.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/_workflows/_workflow_executor.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/a2a/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/a2a/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/ag_ui/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/ag_ui/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/amazon/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/amazon/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/anthropic/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/anthropic/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/azure/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/azure/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/chatkit/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/chatkit/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/declarative/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/declarative/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/devui/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/devui/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/exceptions.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/foundry/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/foundry/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/gemini/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/gemini/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/github/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/github/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/google/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/google/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/hyperlight/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/lab/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/mem0/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/mem0/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/microsoft/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/microsoft/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/mistral/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/mistral/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/monty/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/monty/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/ollama/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/ollama/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/openai/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/openai/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/orchestrations/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/orchestrations/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/py.typed +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/redis/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/redis/__init__.pyi +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/tools/__init__.py +0 -0
- {agent_framework_core-1.23.0 → agent_framework_core-1.25.0}/agent_framework/tools/__init__.pyi +0 -0
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: agent-framework-core
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.25.0
|
|
4
4
|
Summary: Microsoft Agent Framework for building AI Agents with Python. This is the core package that has all the core abstractions and implementations.
|
|
5
5
|
Author-email: Microsoft <af-support@microsoft.com>
|
|
6
|
-
Requires-Python: >=3.
|
|
6
|
+
Requires-Python: >=3.11
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
8
|
Classifier: License :: OSI Approved :: MIT License
|
|
9
9
|
Classifier: Development Status :: 5 - Production/Stable
|
|
10
10
|
Classifier: Intended Audience :: Developers
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
13
12
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
@@ -26,35 +25,35 @@ Requires-Dist: pyyaml>=6.0,<7.0
|
|
|
26
25
|
Requires-Dist: regex>=2024.11.6
|
|
27
26
|
Requires-Dist: mcp>=2.2.0,<3 ; extra == "all"
|
|
28
27
|
Requires-Dist: tenacity>=9.1.4,<9.2.0 ; extra == "all"
|
|
29
|
-
Requires-Dist: agent-framework-a2a>=1.0.
|
|
30
|
-
Requires-Dist: agent-framework-ag-ui>=1.
|
|
31
|
-
Requires-Dist: agent-framework-anthropic>=1.0.
|
|
32
|
-
Requires-Dist: agent-framework-azure-ai-search>=1.0.
|
|
33
|
-
Requires-Dist: agent-framework-azure-contentunderstanding>=1.0.
|
|
34
|
-
Requires-Dist: agent-framework-azure-cosmos>=1.0.
|
|
28
|
+
Requires-Dist: agent-framework-a2a>=1.0.0b261106,<2 ; extra == "all"
|
|
29
|
+
Requires-Dist: agent-framework-ag-ui>=1.8.0,<2 ; extra == "all"
|
|
30
|
+
Requires-Dist: agent-framework-anthropic>=1.0.0b261106,<2 ; extra == "all"
|
|
31
|
+
Requires-Dist: agent-framework-azure-ai-search>=1.0.0b261106,<2 ; extra == "all"
|
|
32
|
+
Requires-Dist: agent-framework-azure-contentunderstanding>=1.0.0b261106,<2 ; extra == "all"
|
|
33
|
+
Requires-Dist: agent-framework-azure-cosmos>=1.0.0b261106,<2 ; extra == "all"
|
|
35
34
|
Requires-Dist: agent-framework-azurefunctions>=1.0.0b260922,<2 ; extra == "all"
|
|
36
|
-
Requires-Dist: agent-framework-bedrock>=1.0.
|
|
37
|
-
Requires-Dist: agent-framework-chatkit>=1.0.
|
|
38
|
-
Requires-Dist: agent-framework-claude>=1.0.
|
|
39
|
-
Requires-Dist: agent-framework-copilotstudio>=1.0.
|
|
40
|
-
Requires-Dist: agent-framework-declarative>=1.
|
|
41
|
-
Requires-Dist: agent-framework-devui>=1.0.
|
|
35
|
+
Requires-Dist: agent-framework-bedrock>=1.0.0b261106,<2 ; extra == "all"
|
|
36
|
+
Requires-Dist: agent-framework-chatkit>=1.0.0b261106,<2 ; extra == "all"
|
|
37
|
+
Requires-Dist: agent-framework-claude>=1.0.0b261106,<2 ; extra == "all"
|
|
38
|
+
Requires-Dist: agent-framework-copilotstudio>=1.0.0b261106,<2 ; extra == "all"
|
|
39
|
+
Requires-Dist: agent-framework-declarative>=1.5.0,<2 ; extra == "all"
|
|
40
|
+
Requires-Dist: agent-framework-devui>=1.0.0b261106,<2 ; extra == "all"
|
|
42
41
|
Requires-Dist: agent-framework-durabletask>=1.0.0b260922,<2 ; extra == "all"
|
|
43
|
-
Requires-Dist: agent-framework-foundry>=1.
|
|
44
|
-
Requires-Dist: agent-framework-foundry-hosting>=1.0.
|
|
45
|
-
Requires-Dist: agent-framework-foundry-local>=1.0.
|
|
46
|
-
Requires-Dist: agent-framework-gemini>=1.0.
|
|
47
|
-
Requires-Dist: agent-framework-github-copilot>=2.1.
|
|
48
|
-
Requires-Dist: agent-framework-hyperlight>=1.0.
|
|
49
|
-
Requires-Dist: agent-framework-mem0>=1.0.
|
|
50
|
-
Requires-Dist: agent-framework-mistral>=1.0.
|
|
51
|
-
Requires-Dist: agent-framework-monty>=1.0.
|
|
52
|
-
Requires-Dist: agent-framework-ollama>=1.0.
|
|
53
|
-
Requires-Dist: agent-framework-openai>=1.
|
|
54
|
-
Requires-Dist: agent-framework-orchestrations>=1.4.
|
|
55
|
-
Requires-Dist: agent-framework-purview>=1.0.
|
|
56
|
-
Requires-Dist: agent-framework-redis>=1.0.
|
|
57
|
-
Requires-Dist: agent-framework-tools>=1.0.
|
|
42
|
+
Requires-Dist: agent-framework-foundry>=1.16.1,<2 ; extra == "all"
|
|
43
|
+
Requires-Dist: agent-framework-foundry-hosting>=1.0.0b261106,<2 ; extra == "all"
|
|
44
|
+
Requires-Dist: agent-framework-foundry-local>=1.0.0b261106,<2 ; extra == "all" and ( python_version >= '3.11' and python_version < '3.15' and ((sys_platform == 'darwin' and platform_machine == 'arm64') or (sys_platform == 'linux' and (platform_machine == 'x86_64' or platform_machine == 'aarch64')) or (sys_platform == 'win32' and (platform_machine == 'AMD64' or platform_machine == 'ARM64' or platform_machine == 'x86_64' or platform_machine == 'aarch64'))))
|
|
45
|
+
Requires-Dist: agent-framework-gemini>=1.0.0b261106,<2 ; extra == "all"
|
|
46
|
+
Requires-Dist: agent-framework-github-copilot>=2.1.2,<3 ; extra == "all"
|
|
47
|
+
Requires-Dist: agent-framework-hyperlight>=1.0.0b261106,<2 ; extra == "all" and ( (sys_platform == 'linux' and platform_machine == 'x86_64') or (sys_platform == 'win32' and platform_machine == 'AMD64'))
|
|
48
|
+
Requires-Dist: agent-framework-mem0>=1.0.0b261106,<2 ; extra == "all"
|
|
49
|
+
Requires-Dist: agent-framework-mistral>=1.0.0b261106,<2 ; extra == "all"
|
|
50
|
+
Requires-Dist: agent-framework-monty>=1.0.0b261106,<2 ; extra == "all"
|
|
51
|
+
Requires-Dist: agent-framework-ollama>=1.0.0b261106,<2 ; extra == "all"
|
|
52
|
+
Requires-Dist: agent-framework-openai>=1.18.1,<2 ; extra == "all"
|
|
53
|
+
Requires-Dist: agent-framework-orchestrations>=1.4.2,<2 ; extra == "all"
|
|
54
|
+
Requires-Dist: agent-framework-purview>=1.0.0b261106,<2 ; extra == "all"
|
|
55
|
+
Requires-Dist: agent-framework-redis>=1.0.0b261106,<2 ; extra == "all"
|
|
56
|
+
Requires-Dist: agent-framework-tools>=1.0.0b261106,<2 ; extra == "all"
|
|
58
57
|
Project-URL: homepage, https://aka.ms/agent-framework
|
|
59
58
|
Project-URL: issues, https://github.com/microsoft/agent-framework/issues
|
|
60
59
|
Project-URL: release_notes, https://github.com/microsoft/agent-framework/releases?q=tag%3Apython-1&expanded=true
|
|
@@ -86,13 +85,11 @@ pip install agent-framework-openai
|
|
|
86
85
|
|
|
87
86
|
Supported Platforms:
|
|
88
87
|
|
|
89
|
-
- Python: 3.
|
|
88
|
+
- Python: 3.11–3.15
|
|
90
89
|
- OS: Windows, macOS, Linux
|
|
91
90
|
|
|
92
|
-
Python 3.
|
|
93
|
-
|
|
94
|
-
use Python 3.11 or later. Removing Python 3.10 support will be handled in a
|
|
95
|
-
future release rather than by this compatibility update.
|
|
91
|
+
Python 3.11 or later is required. Supported environments are subject to
|
|
92
|
+
[integration-specific limits](../../README.md#python-315-limitations).
|
|
96
93
|
|
|
97
94
|
## 1. Setup API Keys
|
|
98
95
|
|
|
@@ -133,6 +130,14 @@ carry a documented feature-usage token.
|
|
|
133
130
|
- `AGENT_FRAMEWORK_USER_AGENT_DISABLED=true` disables the entire Agent Framework
|
|
134
131
|
User-Agent contribution, including the feature token.
|
|
135
132
|
|
|
133
|
+
OpenTelemetry providers configured through `configure_otel_providers()` share a
|
|
134
|
+
resource containing `"microsoft.agent-framework": "True"` (a string) by default. This
|
|
135
|
+
resource attribute applies to logs, traces, and metrics, including other
|
|
136
|
+
instrumentation using those providers. Existing environment and explicit resource
|
|
137
|
+
attribute overrides retain their precedence. If you configure providers yourself,
|
|
138
|
+
use `agent_framework.observability.create_resource()` for each provider or add the
|
|
139
|
+
attribute to your own shared resource.
|
|
140
|
+
|
|
136
141
|
See the following [getting started samples](https://github.com/microsoft/agent-framework/tree/main/python/samples/01-get-started) for more information.
|
|
137
142
|
|
|
138
143
|
## 2. Create a Simple Agent
|
|
@@ -252,6 +257,34 @@ cookie-bearing clients and MCP tool sessions to one authenticated principal; do
|
|
|
252
257
|
share a user-specific cookie jar across users. Rejecting cookies does not partition
|
|
253
258
|
MCP protocol sessions or other server-side state between principals.
|
|
254
259
|
|
|
260
|
+
### MCP HTTP concurrency and timeouts
|
|
261
|
+
|
|
262
|
+
`MCPStreamableHTTPTool` and `FoundryToolbox` attach a separate header snapshot to each
|
|
263
|
+
outgoing HTTP request. Calls with identical effective static and dynamic headers can
|
|
264
|
+
overlap on one MCP session. A different identity waits for active operations before
|
|
265
|
+
reconnecting and refreshing discovery. Discovery, reset, close, and recovery are
|
|
266
|
+
exclusive against active network attempts on framework-owned MCP connections, with
|
|
267
|
+
or without a header provider. Same-identity Agent run preparation does not drain
|
|
268
|
+
active calls. Direct prompt calls resolve current headers rather than reusing an
|
|
269
|
+
inherited invocation snapshot; generated prompts resolve host runtime kwargs
|
|
270
|
+
separately from model arguments. Calls still share server-side session state;
|
|
271
|
+
applications must order state-dependent operations themselves.
|
|
272
|
+
|
|
273
|
+
Resource reads wait for replacement initialization before requiring the connection.
|
|
274
|
+
Catalog discovery restarts the complete snapshot once after a connection replacement,
|
|
275
|
+
without reusing old pages or cursors. A second replacement fails explicitly.
|
|
276
|
+
|
|
277
|
+
`request_timeout` bounds header admission and session reconciliation together, and
|
|
278
|
+
connection recovery separately from the RPC timeout. These are separate budgets,
|
|
279
|
+
not an end-to-end deadline. `None` disables these budgets. An admission timeout does
|
|
280
|
+
not cancel another caller's active operation. Cleanup may continue after a timeout
|
|
281
|
+
or cancellation so the lifecycle owner can finish releasing resources safely.
|
|
282
|
+
Caller-owned MCP clients retain their own RPC timeout policy and are not recreated.
|
|
283
|
+
|
|
284
|
+
Concurrent failures of the same connection share its replacement. Calling `close()`
|
|
285
|
+
interrupts older recovery so it cannot reopen the connection or retry the failed
|
|
286
|
+
operation after shutdown. A later explicit `connect()` remains supported.
|
|
287
|
+
|
|
255
288
|
## 5. Multi-Agent Orchestration
|
|
256
289
|
|
|
257
290
|
Coordinate multiple agents to collaborate on complex tasks using orchestration patterns:
|
|
@@ -22,13 +22,11 @@ pip install agent-framework-openai
|
|
|
22
22
|
|
|
23
23
|
Supported Platforms:
|
|
24
24
|
|
|
25
|
-
- Python: 3.
|
|
25
|
+
- Python: 3.11–3.15
|
|
26
26
|
- OS: Windows, macOS, Linux
|
|
27
27
|
|
|
28
|
-
Python 3.
|
|
29
|
-
|
|
30
|
-
use Python 3.11 or later. Removing Python 3.10 support will be handled in a
|
|
31
|
-
future release rather than by this compatibility update.
|
|
28
|
+
Python 3.11 or later is required. Supported environments are subject to
|
|
29
|
+
[integration-specific limits](../../README.md#python-315-limitations).
|
|
32
30
|
|
|
33
31
|
## 1. Setup API Keys
|
|
34
32
|
|
|
@@ -69,6 +67,14 @@ carry a documented feature-usage token.
|
|
|
69
67
|
- `AGENT_FRAMEWORK_USER_AGENT_DISABLED=true` disables the entire Agent Framework
|
|
70
68
|
User-Agent contribution, including the feature token.
|
|
71
69
|
|
|
70
|
+
OpenTelemetry providers configured through `configure_otel_providers()` share a
|
|
71
|
+
resource containing `"microsoft.agent-framework": "True"` (a string) by default. This
|
|
72
|
+
resource attribute applies to logs, traces, and metrics, including other
|
|
73
|
+
instrumentation using those providers. Existing environment and explicit resource
|
|
74
|
+
attribute overrides retain their precedence. If you configure providers yourself,
|
|
75
|
+
use `agent_framework.observability.create_resource()` for each provider or add the
|
|
76
|
+
attribute to your own shared resource.
|
|
77
|
+
|
|
72
78
|
See the following [getting started samples](https://github.com/microsoft/agent-framework/tree/main/python/samples/01-get-started) for more information.
|
|
73
79
|
|
|
74
80
|
## 2. Create a Simple Agent
|
|
@@ -188,6 +194,34 @@ cookie-bearing clients and MCP tool sessions to one authenticated principal; do
|
|
|
188
194
|
share a user-specific cookie jar across users. Rejecting cookies does not partition
|
|
189
195
|
MCP protocol sessions or other server-side state between principals.
|
|
190
196
|
|
|
197
|
+
### MCP HTTP concurrency and timeouts
|
|
198
|
+
|
|
199
|
+
`MCPStreamableHTTPTool` and `FoundryToolbox` attach a separate header snapshot to each
|
|
200
|
+
outgoing HTTP request. Calls with identical effective static and dynamic headers can
|
|
201
|
+
overlap on one MCP session. A different identity waits for active operations before
|
|
202
|
+
reconnecting and refreshing discovery. Discovery, reset, close, and recovery are
|
|
203
|
+
exclusive against active network attempts on framework-owned MCP connections, with
|
|
204
|
+
or without a header provider. Same-identity Agent run preparation does not drain
|
|
205
|
+
active calls. Direct prompt calls resolve current headers rather than reusing an
|
|
206
|
+
inherited invocation snapshot; generated prompts resolve host runtime kwargs
|
|
207
|
+
separately from model arguments. Calls still share server-side session state;
|
|
208
|
+
applications must order state-dependent operations themselves.
|
|
209
|
+
|
|
210
|
+
Resource reads wait for replacement initialization before requiring the connection.
|
|
211
|
+
Catalog discovery restarts the complete snapshot once after a connection replacement,
|
|
212
|
+
without reusing old pages or cursors. A second replacement fails explicitly.
|
|
213
|
+
|
|
214
|
+
`request_timeout` bounds header admission and session reconciliation together, and
|
|
215
|
+
connection recovery separately from the RPC timeout. These are separate budgets,
|
|
216
|
+
not an end-to-end deadline. `None` disables these budgets. An admission timeout does
|
|
217
|
+
not cancel another caller's active operation. Cleanup may continue after a timeout
|
|
218
|
+
or cancellation so the lifecycle owner can finish releasing resources safely.
|
|
219
|
+
Caller-owned MCP clients retain their own RPC timeout policy and are not recreated.
|
|
220
|
+
|
|
221
|
+
Concurrent failures of the same connection share its replacement. Calling `close()`
|
|
222
|
+
interrupts older recovery so it cannot reopen the connection or retry the failed
|
|
223
|
+
operation after shutdown. A later explicit `connect()` remains supported.
|
|
224
|
+
|
|
191
225
|
## 5. Multi-Agent Orchestration
|
|
192
226
|
|
|
193
227
|
Coordinate multiple agents to collaborate on complex tasks using orchestration patterns:
|
|
@@ -42,7 +42,11 @@ from .exceptions import (
|
|
|
42
42
|
)
|
|
43
43
|
|
|
44
44
|
_LAZY_MODULE_EXPORTS: Final[Mapping[str, tuple[str, ...]]] = {
|
|
45
|
-
"._agent_hooks": (
|
|
45
|
+
"._agent_hooks": (
|
|
46
|
+
"create_agent_hooks_middleware",
|
|
47
|
+
"create_agent_hooks_middleware_from_declaration",
|
|
48
|
+
"create_agent_hooks_middleware_from_emitter",
|
|
49
|
+
),
|
|
46
50
|
"._agents": ("Agent", "BaseAgent", "RawAgent", "SupportsAgentRun"),
|
|
47
51
|
"._clients": (
|
|
48
52
|
"BaseChatClient",
|
|
@@ -69,6 +73,7 @@ _LAZY_MODULE_EXPORTS: Final[Mapping[str, tuple[str, ...]]] = {
|
|
|
69
73
|
"SUMMARIZED_BY_SUMMARY_ID_KEY",
|
|
70
74
|
"SUMMARY_OF_GROUP_IDS_KEY",
|
|
71
75
|
"SUMMARY_OF_MESSAGE_IDS_KEY",
|
|
76
|
+
"AgentTriggeredCompactionStrategy",
|
|
72
77
|
"CharacterEstimatorTokenizer",
|
|
73
78
|
"CompactionProvider",
|
|
74
79
|
"CompactionStrategy",
|
|
@@ -80,6 +85,7 @@ _LAZY_MODULE_EXPORTS: Final[Mapping[str, tuple[str, ...]]] = {
|
|
|
80
85
|
"TokenizerProtocol",
|
|
81
86
|
"ToolResultCompactionStrategy",
|
|
82
87
|
"TruncationStrategy",
|
|
88
|
+
"UnloadSkillsCompactionStrategy",
|
|
83
89
|
"annotate_message_groups",
|
|
84
90
|
"apply_compaction",
|
|
85
91
|
"included_messages",
|
|
@@ -452,6 +458,7 @@ __all__ = [
|
|
|
452
458
|
"AgentResponseUpdate",
|
|
453
459
|
"AgentRunInputs",
|
|
454
460
|
"AgentSession",
|
|
461
|
+
"AgentTriggeredCompactionStrategy",
|
|
455
462
|
"AggregatingSkillsSource",
|
|
456
463
|
"Annotation",
|
|
457
464
|
"BackgroundAgentsProvider",
|
|
@@ -645,6 +652,7 @@ __all__ = [
|
|
|
645
652
|
"ToolTypes",
|
|
646
653
|
"TruncationStrategy",
|
|
647
654
|
"TypeCompatibilityError",
|
|
655
|
+
"UnloadSkillsCompactionStrategy",
|
|
648
656
|
"UpdateT",
|
|
649
657
|
"UsageDetails",
|
|
650
658
|
"UserInputRequiredException",
|
|
@@ -682,6 +690,7 @@ __all__ = [
|
|
|
682
690
|
"background_tasks_running_message",
|
|
683
691
|
"chat_middleware",
|
|
684
692
|
"create_agent_hooks_middleware",
|
|
693
|
+
"create_agent_hooks_middleware_from_declaration",
|
|
685
694
|
"create_agent_hooks_middleware_from_emitter",
|
|
686
695
|
"create_always_approve_tool_response",
|
|
687
696
|
"create_always_approve_tool_with_arguments_response",
|
|
@@ -4,7 +4,11 @@ from typing import Final
|
|
|
4
4
|
|
|
5
5
|
__version__: Final[str]
|
|
6
6
|
|
|
7
|
-
from ._agent_hooks import
|
|
7
|
+
from ._agent_hooks import (
|
|
8
|
+
create_agent_hooks_middleware,
|
|
9
|
+
create_agent_hooks_middleware_from_declaration,
|
|
10
|
+
create_agent_hooks_middleware_from_emitter,
|
|
11
|
+
)
|
|
8
12
|
from ._agents import Agent, BaseAgent, RawAgent, SupportsAgentRun
|
|
9
13
|
from ._clients import (
|
|
10
14
|
BaseChatClient,
|
|
@@ -31,6 +35,7 @@ from ._compaction import (
|
|
|
31
35
|
SUMMARIZED_BY_SUMMARY_ID_KEY,
|
|
32
36
|
SUMMARY_OF_GROUP_IDS_KEY,
|
|
33
37
|
SUMMARY_OF_MESSAGE_IDS_KEY,
|
|
38
|
+
AgentTriggeredCompactionStrategy,
|
|
34
39
|
CharacterEstimatorTokenizer,
|
|
35
40
|
CompactionProvider,
|
|
36
41
|
CompactionStrategy,
|
|
@@ -42,6 +47,7 @@ from ._compaction import (
|
|
|
42
47
|
TokenizerProtocol,
|
|
43
48
|
ToolResultCompactionStrategy,
|
|
44
49
|
TruncationStrategy,
|
|
50
|
+
UnloadSkillsCompactionStrategy,
|
|
45
51
|
annotate_message_groups,
|
|
46
52
|
apply_compaction,
|
|
47
53
|
included_messages,
|
|
@@ -407,6 +413,7 @@ __all__ = [
|
|
|
407
413
|
"AgentResponseUpdate",
|
|
408
414
|
"AgentRunInputs",
|
|
409
415
|
"AgentSession",
|
|
416
|
+
"AgentTriggeredCompactionStrategy",
|
|
410
417
|
"AggregatingSkillsSource",
|
|
411
418
|
"Annotation",
|
|
412
419
|
"BackgroundAgentsProvider",
|
|
@@ -600,6 +607,7 @@ __all__ = [
|
|
|
600
607
|
"ToolTypes",
|
|
601
608
|
"TruncationStrategy",
|
|
602
609
|
"TypeCompatibilityError",
|
|
610
|
+
"UnloadSkillsCompactionStrategy",
|
|
603
611
|
"UpdateT",
|
|
604
612
|
"UsageDetails",
|
|
605
613
|
"UserInputRequiredException",
|
|
@@ -637,6 +645,7 @@ __all__ = [
|
|
|
637
645
|
"background_tasks_running_message",
|
|
638
646
|
"chat_middleware",
|
|
639
647
|
"create_agent_hooks_middleware",
|
|
648
|
+
"create_agent_hooks_middleware_from_declaration",
|
|
640
649
|
"create_agent_hooks_middleware_from_emitter",
|
|
641
650
|
"create_always_approve_tool_response",
|
|
642
651
|
"create_always_approve_tool_with_arguments_response",
|