agenticdome-python-sdk 1.2.2__tar.gz → 1.2.3__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.
- {agenticdome_python_sdk-1.2.2/agenticdome_python_sdk.egg-info → agenticdome_python_sdk-1.2.3}/PKG-INFO +140 -21
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/README.md +119 -5
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3/agenticdome_python_sdk.egg-info}/PKG-INFO +140 -21
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_python_sdk.egg-info/SOURCES.txt +3 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_python_sdk.egg-info/requires.txt +22 -15
- agenticdome_python_sdk-1.2.3/agenticdome_sdk/autogen.py +709 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/examples/attack_demo.py +69 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/pyproject.toml +23 -16
- agenticdome_python_sdk-1.2.3/tests/test_attack_demo.py +49 -0
- agenticdome_python_sdk-1.2.3/tests/test_autogen_integration.py +297 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_packaging_contract.py +20 -1
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/LICENSE +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/MANIFEST.in +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_python_sdk.egg-info/dependency_links.txt +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_python_sdk.egg-info/top_level.txt +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/__init__.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/_framework_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/agno.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/aws_bedrock.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/claude.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/client.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/crewai.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/google_adk.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/identity.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/langgraph.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/llamaindex.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/mcp_host.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/microsoft_agent_framework.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/microsoft_ai_foundry.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/openai_agents.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/proof.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/pydantic.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/scenarios.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/agenticdome_sdk/smolagents.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/examples/agno_lateral_refund.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/examples/ai_foundry_callback_export.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/examples/crewai_agenticdome_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/examples/crewai_lateral_refund.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/examples/mcp_remote_patch.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/examples/mesh_output_redaction.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/examples/microsoft_metadata_exfil.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/examples/salesforce_hidden_bcc.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/examples/servicenow_delete_logs.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/setup.cfg +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/setup.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_agno_integration.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_aws_bedrock_integration.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_claude_integration.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_client.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_crewai_integration.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_google_adk_integration.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_identity_context.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_langgraph_integration.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_live_tenant.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_llamaindex_integration.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_mcp_host_integration.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_microsoft_agent_framework_integration.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_microsoft_ai_foundry_integration.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_openai_agents_integration.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_pydanticai_integration.py +0 -0
- {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.3}/tests/test_smolagents_integration.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agenticdome-python-sdk
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.3
|
|
4
4
|
Summary: Official Python SDK for AgenticDome security guardrails, DLP, tool authorization, and multi-agent delegation enforcement.
|
|
5
5
|
Author: AgenticDome
|
|
6
6
|
License: Proprietary
|
|
@@ -27,36 +27,40 @@ License-File: LICENSE
|
|
|
27
27
|
Requires-Dist: requests>=2.31.0
|
|
28
28
|
Requires-Dist: urllib3>=2.0.0
|
|
29
29
|
Provides-Extra: crewai
|
|
30
|
-
Requires-Dist: crewai
|
|
30
|
+
Requires-Dist: crewai<=1.15.6,>=1.15.5; extra == "crewai"
|
|
31
31
|
Provides-Extra: redis
|
|
32
32
|
Requires-Dist: redis>=4.5.0; extra == "redis"
|
|
33
33
|
Provides-Extra: pop
|
|
34
34
|
Requires-Dist: cryptography>=42.0.0; extra == "pop"
|
|
35
35
|
Provides-Extra: pydanticai
|
|
36
|
-
Requires-Dist: pydantic-ai
|
|
36
|
+
Requires-Dist: pydantic-ai<=2.18.0,>=2.16.0; extra == "pydanticai"
|
|
37
37
|
Requires-Dist: anyio>=4.0.0; extra == "pydanticai"
|
|
38
38
|
Provides-Extra: pydantic
|
|
39
|
-
Requires-Dist: pydantic-ai
|
|
39
|
+
Requires-Dist: pydantic-ai<=2.18.0,>=2.16.0; extra == "pydantic"
|
|
40
40
|
Requires-Dist: anyio>=4.0.0; extra == "pydantic"
|
|
41
41
|
Provides-Extra: langgraph
|
|
42
42
|
Requires-Dist: langgraph==1.2.9; extra == "langgraph"
|
|
43
|
-
Requires-Dist: langchain-core
|
|
43
|
+
Requires-Dist: langchain-core<=1.5.1,>=1.5.0; extra == "langgraph"
|
|
44
44
|
Requires-Dist: langchain-openai==1.3.5; extra == "langgraph"
|
|
45
45
|
Requires-Dist: anyio>=4.0.0; extra == "langgraph"
|
|
46
46
|
Provides-Extra: microsoft
|
|
47
|
+
Provides-Extra: autogen
|
|
48
|
+
Requires-Dist: autogen-agentchat==0.7.5; extra == "autogen"
|
|
49
|
+
Provides-Extra: microsoft-autogen
|
|
50
|
+
Requires-Dist: autogen-agentchat==0.7.5; extra == "microsoft-autogen"
|
|
47
51
|
Provides-Extra: foundry
|
|
48
52
|
Requires-Dist: azure-ai-projects==2.3.0; extra == "foundry"
|
|
49
53
|
Requires-Dist: azure-identity==1.25.3; extra == "foundry"
|
|
50
54
|
Provides-Extra: agno
|
|
51
|
-
Requires-Dist: agno
|
|
55
|
+
Requires-Dist: agno<=2.8.3,>=2.8.0; extra == "agno"
|
|
52
56
|
Provides-Extra: openai-agents
|
|
53
57
|
Requires-Dist: openai-agents==0.18.3; extra == "openai-agents"
|
|
54
58
|
Provides-Extra: mcp
|
|
55
59
|
Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "mcp"
|
|
56
60
|
Provides-Extra: bedrock
|
|
57
|
-
Requires-Dist: boto3
|
|
61
|
+
Requires-Dist: boto3<=1.43.56,>=1.43.54; extra == "bedrock"
|
|
58
62
|
Provides-Extra: aws-bedrock
|
|
59
|
-
Requires-Dist: boto3
|
|
63
|
+
Requires-Dist: boto3<=1.43.56,>=1.43.54; extra == "aws-bedrock"
|
|
60
64
|
Provides-Extra: llamaindex
|
|
61
65
|
Requires-Dist: llama-index==0.14.23; extra == "llamaindex"
|
|
62
66
|
Provides-Extra: llama-index
|
|
@@ -66,29 +70,30 @@ Requires-Dist: google-adk==2.5.0; extra == "google-adk"
|
|
|
66
70
|
Provides-Extra: adk
|
|
67
71
|
Requires-Dist: google-adk==2.5.0; extra == "adk"
|
|
68
72
|
Provides-Extra: claude
|
|
69
|
-
Requires-Dist: claude-agent-sdk
|
|
73
|
+
Requires-Dist: claude-agent-sdk<=0.2.128,>=0.2.126; extra == "claude"
|
|
70
74
|
Provides-Extra: claude-agent-sdk
|
|
71
|
-
Requires-Dist: claude-agent-sdk
|
|
75
|
+
Requires-Dist: claude-agent-sdk<=0.2.128,>=0.2.126; extra == "claude-agent-sdk"
|
|
72
76
|
Provides-Extra: smolagents
|
|
73
77
|
Requires-Dist: smolagents==1.26.0; extra == "smolagents"
|
|
74
78
|
Provides-Extra: all
|
|
75
|
-
Requires-Dist: crewai
|
|
79
|
+
Requires-Dist: crewai<=1.15.6,>=1.15.5; extra == "all"
|
|
76
80
|
Requires-Dist: redis>=4.5.0; extra == "all"
|
|
77
81
|
Requires-Dist: cryptography>=42.0.0; extra == "all"
|
|
78
|
-
Requires-Dist: pydantic-ai
|
|
82
|
+
Requires-Dist: pydantic-ai<=2.18.0,>=2.16.0; extra == "all"
|
|
79
83
|
Requires-Dist: anyio>=4.0.0; extra == "all"
|
|
80
84
|
Requires-Dist: langgraph==1.2.9; extra == "all"
|
|
81
|
-
Requires-Dist: langchain-core
|
|
85
|
+
Requires-Dist: langchain-core<=1.5.1,>=1.5.0; extra == "all"
|
|
82
86
|
Requires-Dist: langchain-openai==1.3.5; extra == "all"
|
|
83
|
-
Requires-Dist:
|
|
87
|
+
Requires-Dist: autogen-agentchat==0.7.5; extra == "all"
|
|
88
|
+
Requires-Dist: agno<=2.8.3,>=2.8.0; extra == "all"
|
|
84
89
|
Requires-Dist: azure-ai-projects==2.3.0; extra == "all"
|
|
85
90
|
Requires-Dist: azure-identity==1.25.3; extra == "all"
|
|
86
91
|
Requires-Dist: openai-agents==0.18.3; extra == "all"
|
|
87
92
|
Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "all"
|
|
88
|
-
Requires-Dist: boto3
|
|
93
|
+
Requires-Dist: boto3<=1.43.56,>=1.43.54; extra == "all"
|
|
89
94
|
Requires-Dist: llama-index==0.14.23; extra == "all"
|
|
90
95
|
Requires-Dist: google-adk==2.5.0; extra == "all"
|
|
91
|
-
Requires-Dist: claude-agent-sdk
|
|
96
|
+
Requires-Dist: claude-agent-sdk<=0.2.128,>=0.2.126; extra == "all"
|
|
92
97
|
Requires-Dist: smolagents==1.26.0; extra == "all"
|
|
93
98
|
Provides-Extra: dev
|
|
94
99
|
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
@@ -109,7 +114,7 @@ Dynamic: license-file
|
|
|
109
114
|
|
|
110
115
|
`agenticdome-python-sdk` is the official Python SDK and middleware package for [AgenticDome](https://agenticdome.io). It enforces deterministic security controls at every boundary your agents cross — prompt ingress, tool execution, agent-to-agent handoffs, and output egress — backed by the AgenticDome central policy plane.
|
|
111
116
|
|
|
112
|
-
**One security pattern,
|
|
117
|
+
**One security pattern, fifteen runtimes:** CrewAI · PydanticAI · LangGraph/LangChain · Microsoft Agent Framework · Microsoft AutoGen · Microsoft AI Foundry · OpenAI Agents SDK · Claude Agent SDK · Hugging Face smolagents · Agno · Google ADK · LlamaIndex · AWS Bedrock · MCP hosts/gateways · custom Python.
|
|
113
118
|
|
|
114
119
|
```python
|
|
115
120
|
# The 30-second version: block a prompt-injected refund before it executes.
|
|
@@ -131,7 +136,7 @@ result = crew.kickoff() # hostile prompts, unsafe tools, and rogue
|
|
|
131
136
|
5. [Configuration](#configuration)
|
|
132
137
|
6. [Choosing Your Integration Point](#choosing-your-integration-point)
|
|
133
138
|
7. [Framework Integrations](#framework-integrations)
|
|
134
|
-
- [CrewAI](#crewai) · [PydanticAI](#pydanticai) · [LangGraph](#langgraph) · [Microsoft Agent Framework](#microsoft-agent-framework) · [Microsoft AI Foundry](#microsoft-ai-foundry) · [OpenAI Agents SDK](#openai-agents-sdk) · [Agno](#agno) · [Google ADK](#google-adk) · [LlamaIndex](#llamaindex) · [AWS Bedrock](#aws-bedrock) · [MCP Host / Gateway](#mcp-host--gateway)
|
|
139
|
+
- [CrewAI](#crewai) · [PydanticAI](#pydanticai) · [LangGraph](#langgraph) · [Microsoft Agent Framework](#microsoft-agent-framework) · [Microsoft AutoGen](#microsoft-autogen) · [Microsoft AI Foundry](#microsoft-ai-foundry) · [OpenAI Agents SDK](#openai-agents-sdk) · [Agno](#agno) · [Google ADK](#google-adk) · [LlamaIndex](#llamaindex) · [AWS Bedrock](#aws-bedrock) · [MCP Host / Gateway](#mcp-host--gateway)
|
|
135
140
|
8. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
|
|
136
141
|
9. [Production Deployment](#production-deployment)
|
|
137
142
|
10. [Package Build and Verification](#package-build-and-verification)
|
|
@@ -276,6 +281,8 @@ result = crew.kickoff()
|
|
|
276
281
|
|
|
277
282
|
```bash
|
|
278
283
|
python examples/attack_demo.py --framework crewai --scenario refund_hijack
|
|
284
|
+
python examples/attack_demo.py --framework claude --scenario metadata_exfil
|
|
285
|
+
python examples/attack_demo.py --framework smolagents --scenario generated_code_exfil
|
|
279
286
|
```
|
|
280
287
|
|
|
281
288
|
---
|
|
@@ -294,6 +301,7 @@ pip install agenticdome-python-sdk
|
|
|
294
301
|
| PydanticAI | `pip install "agenticdome-python-sdk[pydanticai]"` |
|
|
295
302
|
| LangGraph / LangChain | `pip install "agenticdome-python-sdk[langgraph]"` |
|
|
296
303
|
| Microsoft Agent Framework | `pip install "agenticdome-python-sdk[microsoft]"` |
|
|
304
|
+
| Microsoft AutoGen AgentChat / Core (Python 3.10+) | `pip install "agenticdome-python-sdk[autogen]"` |
|
|
297
305
|
| Microsoft AI Foundry | `pip install "agenticdome-python-sdk[foundry]"` |
|
|
298
306
|
| OpenAI Agents SDK | `pip install "agenticdome-python-sdk[openai-agents]"` |
|
|
299
307
|
| Anthropic Claude Agent SDK | `pip install "agenticdome-python-sdk[claude]"` |
|
|
@@ -309,6 +317,12 @@ pip install agenticdome-python-sdk
|
|
|
309
317
|
|
|
310
318
|
Some adapters are dependency-light at import time: Google ADK, LlamaIndex, Bedrock, MCP, and Microsoft helpers can wrap local boundaries without forcing one exact runtime stack. Install the framework packages your application actually uses.
|
|
311
319
|
|
|
320
|
+
### Framework-version compatibility
|
|
321
|
+
|
|
322
|
+
AgenticDome supports framework versions only inside the range certified by the SDK Harness. When an upstream framework release appears, **Upgrade & Certify** keeps the existing certified version as the compatibility floor, tests the new release as the ceiling, and publishes an inclusive dependency range such as `framework>=floor,<=ceiling` only when both endpoints pass the adapter and firewall release gates. Multi-package integrations such as LangGraph/LangChain are also retested at their complete certified floor set.
|
|
323
|
+
|
|
324
|
+
This means upgrading support for the latest framework does not silently drop customers on the previously certified version. Versions below the displayed certified floor are not claimed as supported until they are tested. Customers managing framework dependencies themselves may install the core SDK without an extra, but their framework version must still be inside the certified range for a production support claim.
|
|
325
|
+
|
|
312
326
|
---
|
|
313
327
|
|
|
314
328
|
## Configuration
|
|
@@ -406,7 +420,7 @@ export AGENTICDOME_PRODUCTION_MODE="false" # production hardening (st
|
|
|
406
420
|
<details>
|
|
407
421
|
<summary><strong>Full configuration reference — per-adapter variables</strong></summary>
|
|
408
422
|
|
|
409
|
-
Every framework adapter exposes the same family of local hardening controls, prefixed per adapter: `AGENTICDOME_CREWAI_*`, `AGENTICDOME_PYDANTICAI_*`, `AGENTICDOME_LANGGRAPH_*`, `AGENTICDOME_MSAF_*` (Microsoft Agent Framework), `AGENTICDOME_FOUNDRY_*`, `AGENTICDOME_OPENAI_AGENTS_*`, `AGENTICDOME_CLAUDE_*`, `AGENTICDOME_SMOLAGENTS_*`, `AGENTICDOME_AGNO_*`, `AGENTICDOME_BEDROCK_*`, `AGENTICDOME_GOOGLE_ADK_*`, and `AGENTICDOME_MCP_*`.
|
|
423
|
+
Every framework adapter exposes the same family of local hardening controls, prefixed per adapter: `AGENTICDOME_CREWAI_*`, `AGENTICDOME_PYDANTICAI_*`, `AGENTICDOME_LANGGRAPH_*`, `AGENTICDOME_MSAF_*` (Microsoft Agent Framework), `AGENTICDOME_AUTOGEN_*`, `AGENTICDOME_FOUNDRY_*`, `AGENTICDOME_OPENAI_AGENTS_*`, `AGENTICDOME_CLAUDE_*`, `AGENTICDOME_SMOLAGENTS_*`, `AGENTICDOME_AGNO_*`, `AGENTICDOME_BEDROCK_*`, `AGENTICDOME_GOOGLE_ADK_*`, and `AGENTICDOME_MCP_*`.
|
|
410
424
|
|
|
411
425
|
**Common per-adapter pattern** (substitute the prefix for your adapter):
|
|
412
426
|
|
|
@@ -484,6 +498,7 @@ One table, one decision. Find your runtime, apply the required code action, and
|
|
|
484
498
|
| [PydanticAI](#pydanticai) | `agenticdome_sdk.pydantic` | Module where each `Agent(...)` and tool is constructed | `CyberSecFirewall(...)` + `create_hooks()`, `install_native_hooks(agent)`, or `attach_to_agent(agent)` | `@firewall.secure_tool(...)` with optional `tool_schema` validation |
|
|
485
499
|
| [LangGraph](#langgraph) | `agenticdome_sdk.langgraph` | Module where `StateGraph` or LangChain `create_agent()` is assembled | Add `input_node()` / `transition_node()` / `graph_transition_node()` / `output_node()`, or `as_langchain_middleware()` | `wrap_agent_node()`, `wrap_tool_node()`, `security_route()` for blocked edges |
|
|
486
500
|
| [Microsoft Agent Framework](#microsoft-agent-framework) | `agenticdome_sdk.microsoft_agent_framework` | Module where agents, workflows, tools, or middleware are declared | `create_middleware()`, `install_on_agent()`, or `run_agent_securely()` | `@firewall.secure_tool`, `wrap_tool_handler`, `secure_delegated_tool`, `wrap_delegated_tool_handler` |
|
|
501
|
+
| [Microsoft AutoGen](#microsoft-autogen) | `agenticdome_sdk.autogen` | AgentChat teams/Core runtimes; legacy 0.2 ConversableAgent loops | `wrap_team()`, `create_intervention_handler()`, `create_termination_condition()`, `attach_agentchat_agent()`, or `attach_conversable_agent()` | Core `FunctionCall` authorization plus inherited `wrap_tool_handler()` / `secure_tool()` |
|
|
487
502
|
| [Microsoft AI Foundry](#microsoft-ai-foundry) | `agenticdome_sdk.microsoft_ai_foundry` | Module handling Foundry runs, function calls, or client construction | `create_middleware()`, `install_on_client()`, or `run_secure()` | `wrap_tool_executor()`, `@firewall.secure_tool(...)`, `before_tool_call()`, delegation verifiers |
|
|
488
503
|
| [OpenAI Agents SDK](#openai-agents-sdk) | `agenticdome_sdk.openai_agents` | Module where `Agent`, `Runner.run(...)`, `@function_tool`, guardrails, or handoffs are declared | `run_agent_securely()`, `run_agent_stream_securely()`, `create_input_guardrail()`, `create_output_guardrail()` | `wrap_tool_handler()`, `wrap_delegated_tool_handler()`, `@firewall.secure_tool(...)`, handoff verifiers |
|
|
489
504
|
| [Claude Agent SDK](#claude-agent-sdk) | `agenticdome_sdk.claude` | Module constructing `ClaudeAgentOptions`, `ClaudeSDKClient`, SDK MCP tools, or `query()` | `install_on_options()` plus `run_client_securely()`, or `secure_query()` | Native `PreToolUse`/`PostToolUse` hooks, `wrap_tool_handler()`, and `secure_sdk_tool()` |
|
|
@@ -1013,6 +1028,108 @@ from agenticdome_sdk.microsoft_agent_framework import (
|
|
|
1013
1028
|
|
|
1014
1029
|
---
|
|
1015
1030
|
|
|
1031
|
+
### Microsoft AutoGen
|
|
1032
|
+
|
|
1033
|
+
AutoGen is Microsoft's open-source conversational multi-agent framework and is now community-managed in maintenance mode; Microsoft Agent Framework is the recommended successor for new systems. AgenticDome supports current AutoGen AgentChat/Core applications and existing legacy `ConversableAgent` deployments so teams can migrate without losing runtime enforcement.
|
|
1034
|
+
|
|
1035
|
+
```bash
|
|
1036
|
+
# AutoGen AgentChat requires Python 3.10+.
|
|
1037
|
+
pip install "agenticdome-python-sdk[autogen]"
|
|
1038
|
+
```
|
|
1039
|
+
|
|
1040
|
+
**Protect a current AgentChat team** — the wrapper screens the initial task, every streamed team event, and final messages while retaining the underlying Team API:
|
|
1041
|
+
|
|
1042
|
+
```python
|
|
1043
|
+
from autogen_agentchat.teams import RoundRobinGroupChat
|
|
1044
|
+
from agenticdome_sdk.autogen import AgenticDomeAutoGenFirewall
|
|
1045
|
+
|
|
1046
|
+
firewall = AgenticDomeAutoGenFirewall()
|
|
1047
|
+
team = RoundRobinGroupChat([planner, researcher, payments_specialist], max_turns=12)
|
|
1048
|
+
secure_team = firewall.wrap_team(
|
|
1049
|
+
team,
|
|
1050
|
+
session_id="sess_prod_01J4X",
|
|
1051
|
+
agent_id="customer_operations_team",
|
|
1052
|
+
policy_context={"request_purpose": "customer_support"},
|
|
1053
|
+
)
|
|
1054
|
+
|
|
1055
|
+
result = await secure_team.run(task=user_prompt)
|
|
1056
|
+
```
|
|
1057
|
+
|
|
1058
|
+
**Authorize AutoGen Core tool traffic at the runtime boundary** — current AutoGen sends `FunctionCall` messages to tool agents, so the intervention handler is a stronger boundary than patching an individual assistant:
|
|
1059
|
+
|
|
1060
|
+
```python
|
|
1061
|
+
from autogen_core import SingleThreadedAgentRuntime
|
|
1062
|
+
|
|
1063
|
+
handler = firewall.create_intervention_handler(
|
|
1064
|
+
session_id="sess_prod_01J4X",
|
|
1065
|
+
agent_id="autogen_planner",
|
|
1066
|
+
)
|
|
1067
|
+
runtime = SingleThreadedAgentRuntime(intervention_handlers=[handler])
|
|
1068
|
+
```
|
|
1069
|
+
|
|
1070
|
+
**Freeze a group chat on behavioral drift** — compose the AgenticDome condition with AutoGen's normal termination conditions:
|
|
1071
|
+
|
|
1072
|
+
```python
|
|
1073
|
+
agenticdome_stop = firewall.create_termination_condition(
|
|
1074
|
+
session_id="sess_prod_01J4X",
|
|
1075
|
+
agent_id="customer_operations_team",
|
|
1076
|
+
)
|
|
1077
|
+
team = RoundRobinGroupChat(
|
|
1078
|
+
[planner, researcher, payments_specialist],
|
|
1079
|
+
termination_condition=agenticdome_stop | normal_stop,
|
|
1080
|
+
max_turns=12,
|
|
1081
|
+
)
|
|
1082
|
+
```
|
|
1083
|
+
|
|
1084
|
+
Family 2 policy receives a bounded rolling conversation window digest, participant lineage, semantic-deviation evaluation request, and tool-call frequency. A blocked cross-agent message or excessive tool rate freezes the local session, reports a trust incident, and advances revocation state for the emitting agent before an external action can run.
|
|
1085
|
+
|
|
1086
|
+
**Existing AutoGen 0.2 deployments** — attach to the legacy `ConversableAgent.send()`, `receive()`, `a_send()`, and `a_receive()` lifecycles:
|
|
1087
|
+
|
|
1088
|
+
Keep the customer's already-certified legacy AutoGen dependency in place and install the dependency-light base SDK (do not use the `[autogen]` extra, because that extra deliberately installs the current AgentChat release):
|
|
1089
|
+
|
|
1090
|
+
```bash
|
|
1091
|
+
pip install agenticdome-python-sdk
|
|
1092
|
+
```
|
|
1093
|
+
|
|
1094
|
+
```python
|
|
1095
|
+
assistant = firewall.attach_conversable_agent(
|
|
1096
|
+
assistant,
|
|
1097
|
+
session_id="sess_prod_01J4X",
|
|
1098
|
+
agent_id="legacy_autogen_assistant",
|
|
1099
|
+
)
|
|
1100
|
+
user_proxy = firewall.attach_conversable_agent(
|
|
1101
|
+
user_proxy,
|
|
1102
|
+
session_id="sess_prod_01J4X",
|
|
1103
|
+
agent_id="legacy_autogen_user_proxy",
|
|
1104
|
+
)
|
|
1105
|
+
```
|
|
1106
|
+
|
|
1107
|
+
Wrap side-effecting local tools as well; conversation screening does not replace authorization at the execution boundary:
|
|
1108
|
+
|
|
1109
|
+
```python
|
|
1110
|
+
secure_refund = firewall.wrap_tool_handler(
|
|
1111
|
+
tool_name="payments.refund.create",
|
|
1112
|
+
tool_platform="payments",
|
|
1113
|
+
handler=raw_refund,
|
|
1114
|
+
session_id="sess_prod_01J4X",
|
|
1115
|
+
agent_id="payments_specialist",
|
|
1116
|
+
)
|
|
1117
|
+
```
|
|
1118
|
+
|
|
1119
|
+
```bash
|
|
1120
|
+
export AGENTICDOME_PLATFORM="autogen"
|
|
1121
|
+
export AGENTICDOME_PRODUCTION_MODE="true"
|
|
1122
|
+
export AGENTICDOME_REQUIRE_STABLE_SESSION_ID_IN_PROD="true"
|
|
1123
|
+
export AGENTICDOME_AUTOGEN_CONVERSATION_WINDOW="12"
|
|
1124
|
+
export AGENTICDOME_AUTOGEN_MAX_TOOL_CALLS_PER_WINDOW="8"
|
|
1125
|
+
export AGENTICDOME_AUTOGEN_FREEZE_ON_BLOCK="true"
|
|
1126
|
+
export AGENTICDOME_AUTOGEN_REVOKE_ON_FREEZE="true"
|
|
1127
|
+
```
|
|
1128
|
+
|
|
1129
|
+
Official references: [AutoGen project status and migration guidance](https://github.com/microsoft/autogen) · [AgentChat teams](https://microsoft.github.io/autogen/stable/reference/python/autogen_agentchat.teams.html) · [Core intervention handlers](https://microsoft.github.io/autogen/dev/user-guide/core-user-guide/cookbook/tool-use-with-intervention.html) · [Legacy 0.2 conversational agents](https://microsoft.github.io/autogen/0.2/docs/Use-Cases/agent_chat/)
|
|
1130
|
+
|
|
1131
|
+
---
|
|
1132
|
+
|
|
1016
1133
|
### Microsoft AI Foundry
|
|
1017
1134
|
|
|
1018
1135
|
For services that call Foundry agents, handle function-call requests from Foundry, execute local function tools, or use `FoundryChatClient` with local tools.
|
|
@@ -2366,7 +2483,7 @@ source .venv/bin/activate
|
|
|
2366
2483
|
|
|
2367
2484
|
python -m pip install --upgrade pip setuptools wheel
|
|
2368
2485
|
python -m pip install -e ".[dev]"
|
|
2369
|
-
python -m pip install -e ".[crewai,pydanticai,langgraph,microsoft,foundry,agno,openai-agents,mcp,bedrock,google-adk,llamaindex,redis]"
|
|
2486
|
+
python -m pip install -e ".[crewai,pydanticai,langgraph,microsoft,autogen,foundry,agno,openai-agents,claude,smolagents,mcp,bedrock,google-adk,llamaindex,redis]"
|
|
2370
2487
|
|
|
2371
2488
|
python -m pytest -q
|
|
2372
2489
|
rm -rf build dist *.egg-info agenticdome_sdk.egg-info agenticdome_python_sdk.egg-info
|
|
@@ -2389,10 +2506,12 @@ python -m pytest -q tests/test_langgraph_integration.py
|
|
|
2389
2506
|
| :--- | :--- | :--- |
|
|
2390
2507
|
| Core SDK client | `python -m pytest -q tests/test_client.py` | Request validation, headers, guardrail calls, A2A/MCP JSON-RPC calls, Mesh DLP, HTTP errors, JSON handling |
|
|
2391
2508
|
| Package contract | `python -m pytest -q tests/test_packaging_contract.py` | `pyproject.toml` metadata, legacy `setup.py` shim, public exports, manifest hygiene, ignored build artifacts, documented extras |
|
|
2509
|
+
| Attack demos | `python -m pytest -q tests/test_attack_demo.py` | Offline vulnerable-vs-protected CLI coverage, including AutoGen, Claude Agent SDK, and Hugging Face smolagents |
|
|
2392
2510
|
| CrewAI | `python -m pytest -q tests/test_crewai_integration.py` | Prompt/tool hooks, handoff token injection, specialist verification, output redaction, schema checks, rate limits, retries, streaming DLP |
|
|
2393
2511
|
| PydanticAI | `python -m pytest -q tests/test_pydanticai_integration.py` | Agent hooks, secure tools, sanitized arguments, token-store fallback, production session enforcement, rate limits, retries, streaming output |
|
|
2394
2512
|
| LangGraph / LangChain | `python -m pytest -q tests/test_langgraph_integration.py` | Graph input, transition, tool, retrieval, middleware, security routing, token consumption, output DLP, streaming events |
|
|
2395
2513
|
| Microsoft Agent Framework | `python -m pytest -q tests/test_microsoft_agent_framework_integration.py` | Tool/run boundaries, delegated tool verification, middleware install helpers, identity context, Copilot enforcement hooks, streaming output |
|
|
2514
|
+
| Microsoft AutoGen | `python -m pytest -q tests/test_autogen_integration.py` | Current AgentChat team/Core interception, legacy send/receive hooks, rolling Family 2 context, session freeze, trust incident and revocation escalation |
|
|
2396
2515
|
| Microsoft AI Foundry | `python -m pytest -q tests/test_microsoft_ai_foundry_integration.py` | Prompt threat contracts, local tool executors, run boundaries, bearer/API-key configuration, delegated execution, circuit breaker, stream DLP |
|
|
2397
2516
|
| OpenAI Agents SDK | `python -m pytest -q tests/test_openai_agents_integration.py` | Runner wrappers, guardrail helpers, function-tool wrappers, handoff/delegated tools, HMAC token storage, schema checks, retries, streaming output |
|
|
2398
2517
|
| Claude Agent SDK | `python -m pytest -q tests/test_claude_integration.py` | Native prompt/tool hooks, tool-output replacement, secure query responses, decision-token binding and one-time consumption |
|
|
@@ -2417,7 +2536,7 @@ python -m twine check dist/*
|
|
|
2417
2536
|
**Full offline release gate** across all supported Python integrations:
|
|
2418
2537
|
|
|
2419
2538
|
```bash
|
|
2420
|
-
python -m pip install -e ".[dev,crewai,pydanticai,langgraph,microsoft,foundry,agno,openai-agents,mcp,bedrock,google-adk,llamaindex,redis]"
|
|
2539
|
+
python -m pip install -e ".[dev,crewai,pydanticai,langgraph,microsoft,autogen,foundry,agno,openai-agents,claude,smolagents,mcp,bedrock,google-adk,llamaindex,redis]"
|
|
2421
2540
|
python -m pytest -q
|
|
2422
2541
|
rm -rf build dist *.egg-info agenticdome_sdk.egg-info agenticdome_python_sdk.egg-info
|
|
2423
2542
|
python -m build
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
`agenticdome-python-sdk` is the official Python SDK and middleware package for [AgenticDome](https://agenticdome.io). It enforces deterministic security controls at every boundary your agents cross — prompt ingress, tool execution, agent-to-agent handoffs, and output egress — backed by the AgenticDome central policy plane.
|
|
10
10
|
|
|
11
|
-
**One security pattern,
|
|
11
|
+
**One security pattern, fifteen runtimes:** CrewAI · PydanticAI · LangGraph/LangChain · Microsoft Agent Framework · Microsoft AutoGen · Microsoft AI Foundry · OpenAI Agents SDK · Claude Agent SDK · Hugging Face smolagents · Agno · Google ADK · LlamaIndex · AWS Bedrock · MCP hosts/gateways · custom Python.
|
|
12
12
|
|
|
13
13
|
```python
|
|
14
14
|
# The 30-second version: block a prompt-injected refund before it executes.
|
|
@@ -30,7 +30,7 @@ result = crew.kickoff() # hostile prompts, unsafe tools, and rogue
|
|
|
30
30
|
5. [Configuration](#configuration)
|
|
31
31
|
6. [Choosing Your Integration Point](#choosing-your-integration-point)
|
|
32
32
|
7. [Framework Integrations](#framework-integrations)
|
|
33
|
-
- [CrewAI](#crewai) · [PydanticAI](#pydanticai) · [LangGraph](#langgraph) · [Microsoft Agent Framework](#microsoft-agent-framework) · [Microsoft AI Foundry](#microsoft-ai-foundry) · [OpenAI Agents SDK](#openai-agents-sdk) · [Agno](#agno) · [Google ADK](#google-adk) · [LlamaIndex](#llamaindex) · [AWS Bedrock](#aws-bedrock) · [MCP Host / Gateway](#mcp-host--gateway)
|
|
33
|
+
- [CrewAI](#crewai) · [PydanticAI](#pydanticai) · [LangGraph](#langgraph) · [Microsoft Agent Framework](#microsoft-agent-framework) · [Microsoft AutoGen](#microsoft-autogen) · [Microsoft AI Foundry](#microsoft-ai-foundry) · [OpenAI Agents SDK](#openai-agents-sdk) · [Agno](#agno) · [Google ADK](#google-adk) · [LlamaIndex](#llamaindex) · [AWS Bedrock](#aws-bedrock) · [MCP Host / Gateway](#mcp-host--gateway)
|
|
34
34
|
8. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
|
|
35
35
|
9. [Production Deployment](#production-deployment)
|
|
36
36
|
10. [Package Build and Verification](#package-build-and-verification)
|
|
@@ -175,6 +175,8 @@ result = crew.kickoff()
|
|
|
175
175
|
|
|
176
176
|
```bash
|
|
177
177
|
python examples/attack_demo.py --framework crewai --scenario refund_hijack
|
|
178
|
+
python examples/attack_demo.py --framework claude --scenario metadata_exfil
|
|
179
|
+
python examples/attack_demo.py --framework smolagents --scenario generated_code_exfil
|
|
178
180
|
```
|
|
179
181
|
|
|
180
182
|
---
|
|
@@ -193,6 +195,7 @@ pip install agenticdome-python-sdk
|
|
|
193
195
|
| PydanticAI | `pip install "agenticdome-python-sdk[pydanticai]"` |
|
|
194
196
|
| LangGraph / LangChain | `pip install "agenticdome-python-sdk[langgraph]"` |
|
|
195
197
|
| Microsoft Agent Framework | `pip install "agenticdome-python-sdk[microsoft]"` |
|
|
198
|
+
| Microsoft AutoGen AgentChat / Core (Python 3.10+) | `pip install "agenticdome-python-sdk[autogen]"` |
|
|
196
199
|
| Microsoft AI Foundry | `pip install "agenticdome-python-sdk[foundry]"` |
|
|
197
200
|
| OpenAI Agents SDK | `pip install "agenticdome-python-sdk[openai-agents]"` |
|
|
198
201
|
| Anthropic Claude Agent SDK | `pip install "agenticdome-python-sdk[claude]"` |
|
|
@@ -208,6 +211,12 @@ pip install agenticdome-python-sdk
|
|
|
208
211
|
|
|
209
212
|
Some adapters are dependency-light at import time: Google ADK, LlamaIndex, Bedrock, MCP, and Microsoft helpers can wrap local boundaries without forcing one exact runtime stack. Install the framework packages your application actually uses.
|
|
210
213
|
|
|
214
|
+
### Framework-version compatibility
|
|
215
|
+
|
|
216
|
+
AgenticDome supports framework versions only inside the range certified by the SDK Harness. When an upstream framework release appears, **Upgrade & Certify** keeps the existing certified version as the compatibility floor, tests the new release as the ceiling, and publishes an inclusive dependency range such as `framework>=floor,<=ceiling` only when both endpoints pass the adapter and firewall release gates. Multi-package integrations such as LangGraph/LangChain are also retested at their complete certified floor set.
|
|
217
|
+
|
|
218
|
+
This means upgrading support for the latest framework does not silently drop customers on the previously certified version. Versions below the displayed certified floor are not claimed as supported until they are tested. Customers managing framework dependencies themselves may install the core SDK without an extra, but their framework version must still be inside the certified range for a production support claim.
|
|
219
|
+
|
|
211
220
|
---
|
|
212
221
|
|
|
213
222
|
## Configuration
|
|
@@ -305,7 +314,7 @@ export AGENTICDOME_PRODUCTION_MODE="false" # production hardening (st
|
|
|
305
314
|
<details>
|
|
306
315
|
<summary><strong>Full configuration reference — per-adapter variables</strong></summary>
|
|
307
316
|
|
|
308
|
-
Every framework adapter exposes the same family of local hardening controls, prefixed per adapter: `AGENTICDOME_CREWAI_*`, `AGENTICDOME_PYDANTICAI_*`, `AGENTICDOME_LANGGRAPH_*`, `AGENTICDOME_MSAF_*` (Microsoft Agent Framework), `AGENTICDOME_FOUNDRY_*`, `AGENTICDOME_OPENAI_AGENTS_*`, `AGENTICDOME_CLAUDE_*`, `AGENTICDOME_SMOLAGENTS_*`, `AGENTICDOME_AGNO_*`, `AGENTICDOME_BEDROCK_*`, `AGENTICDOME_GOOGLE_ADK_*`, and `AGENTICDOME_MCP_*`.
|
|
317
|
+
Every framework adapter exposes the same family of local hardening controls, prefixed per adapter: `AGENTICDOME_CREWAI_*`, `AGENTICDOME_PYDANTICAI_*`, `AGENTICDOME_LANGGRAPH_*`, `AGENTICDOME_MSAF_*` (Microsoft Agent Framework), `AGENTICDOME_AUTOGEN_*`, `AGENTICDOME_FOUNDRY_*`, `AGENTICDOME_OPENAI_AGENTS_*`, `AGENTICDOME_CLAUDE_*`, `AGENTICDOME_SMOLAGENTS_*`, `AGENTICDOME_AGNO_*`, `AGENTICDOME_BEDROCK_*`, `AGENTICDOME_GOOGLE_ADK_*`, and `AGENTICDOME_MCP_*`.
|
|
309
318
|
|
|
310
319
|
**Common per-adapter pattern** (substitute the prefix for your adapter):
|
|
311
320
|
|
|
@@ -383,6 +392,7 @@ One table, one decision. Find your runtime, apply the required code action, and
|
|
|
383
392
|
| [PydanticAI](#pydanticai) | `agenticdome_sdk.pydantic` | Module where each `Agent(...)` and tool is constructed | `CyberSecFirewall(...)` + `create_hooks()`, `install_native_hooks(agent)`, or `attach_to_agent(agent)` | `@firewall.secure_tool(...)` with optional `tool_schema` validation |
|
|
384
393
|
| [LangGraph](#langgraph) | `agenticdome_sdk.langgraph` | Module where `StateGraph` or LangChain `create_agent()` is assembled | Add `input_node()` / `transition_node()` / `graph_transition_node()` / `output_node()`, or `as_langchain_middleware()` | `wrap_agent_node()`, `wrap_tool_node()`, `security_route()` for blocked edges |
|
|
385
394
|
| [Microsoft Agent Framework](#microsoft-agent-framework) | `agenticdome_sdk.microsoft_agent_framework` | Module where agents, workflows, tools, or middleware are declared | `create_middleware()`, `install_on_agent()`, or `run_agent_securely()` | `@firewall.secure_tool`, `wrap_tool_handler`, `secure_delegated_tool`, `wrap_delegated_tool_handler` |
|
|
395
|
+
| [Microsoft AutoGen](#microsoft-autogen) | `agenticdome_sdk.autogen` | AgentChat teams/Core runtimes; legacy 0.2 ConversableAgent loops | `wrap_team()`, `create_intervention_handler()`, `create_termination_condition()`, `attach_agentchat_agent()`, or `attach_conversable_agent()` | Core `FunctionCall` authorization plus inherited `wrap_tool_handler()` / `secure_tool()` |
|
|
386
396
|
| [Microsoft AI Foundry](#microsoft-ai-foundry) | `agenticdome_sdk.microsoft_ai_foundry` | Module handling Foundry runs, function calls, or client construction | `create_middleware()`, `install_on_client()`, or `run_secure()` | `wrap_tool_executor()`, `@firewall.secure_tool(...)`, `before_tool_call()`, delegation verifiers |
|
|
387
397
|
| [OpenAI Agents SDK](#openai-agents-sdk) | `agenticdome_sdk.openai_agents` | Module where `Agent`, `Runner.run(...)`, `@function_tool`, guardrails, or handoffs are declared | `run_agent_securely()`, `run_agent_stream_securely()`, `create_input_guardrail()`, `create_output_guardrail()` | `wrap_tool_handler()`, `wrap_delegated_tool_handler()`, `@firewall.secure_tool(...)`, handoff verifiers |
|
|
388
398
|
| [Claude Agent SDK](#claude-agent-sdk) | `agenticdome_sdk.claude` | Module constructing `ClaudeAgentOptions`, `ClaudeSDKClient`, SDK MCP tools, or `query()` | `install_on_options()` plus `run_client_securely()`, or `secure_query()` | Native `PreToolUse`/`PostToolUse` hooks, `wrap_tool_handler()`, and `secure_sdk_tool()` |
|
|
@@ -912,6 +922,108 @@ from agenticdome_sdk.microsoft_agent_framework import (
|
|
|
912
922
|
|
|
913
923
|
---
|
|
914
924
|
|
|
925
|
+
### Microsoft AutoGen
|
|
926
|
+
|
|
927
|
+
AutoGen is Microsoft's open-source conversational multi-agent framework and is now community-managed in maintenance mode; Microsoft Agent Framework is the recommended successor for new systems. AgenticDome supports current AutoGen AgentChat/Core applications and existing legacy `ConversableAgent` deployments so teams can migrate without losing runtime enforcement.
|
|
928
|
+
|
|
929
|
+
```bash
|
|
930
|
+
# AutoGen AgentChat requires Python 3.10+.
|
|
931
|
+
pip install "agenticdome-python-sdk[autogen]"
|
|
932
|
+
```
|
|
933
|
+
|
|
934
|
+
**Protect a current AgentChat team** — the wrapper screens the initial task, every streamed team event, and final messages while retaining the underlying Team API:
|
|
935
|
+
|
|
936
|
+
```python
|
|
937
|
+
from autogen_agentchat.teams import RoundRobinGroupChat
|
|
938
|
+
from agenticdome_sdk.autogen import AgenticDomeAutoGenFirewall
|
|
939
|
+
|
|
940
|
+
firewall = AgenticDomeAutoGenFirewall()
|
|
941
|
+
team = RoundRobinGroupChat([planner, researcher, payments_specialist], max_turns=12)
|
|
942
|
+
secure_team = firewall.wrap_team(
|
|
943
|
+
team,
|
|
944
|
+
session_id="sess_prod_01J4X",
|
|
945
|
+
agent_id="customer_operations_team",
|
|
946
|
+
policy_context={"request_purpose": "customer_support"},
|
|
947
|
+
)
|
|
948
|
+
|
|
949
|
+
result = await secure_team.run(task=user_prompt)
|
|
950
|
+
```
|
|
951
|
+
|
|
952
|
+
**Authorize AutoGen Core tool traffic at the runtime boundary** — current AutoGen sends `FunctionCall` messages to tool agents, so the intervention handler is a stronger boundary than patching an individual assistant:
|
|
953
|
+
|
|
954
|
+
```python
|
|
955
|
+
from autogen_core import SingleThreadedAgentRuntime
|
|
956
|
+
|
|
957
|
+
handler = firewall.create_intervention_handler(
|
|
958
|
+
session_id="sess_prod_01J4X",
|
|
959
|
+
agent_id="autogen_planner",
|
|
960
|
+
)
|
|
961
|
+
runtime = SingleThreadedAgentRuntime(intervention_handlers=[handler])
|
|
962
|
+
```
|
|
963
|
+
|
|
964
|
+
**Freeze a group chat on behavioral drift** — compose the AgenticDome condition with AutoGen's normal termination conditions:
|
|
965
|
+
|
|
966
|
+
```python
|
|
967
|
+
agenticdome_stop = firewall.create_termination_condition(
|
|
968
|
+
session_id="sess_prod_01J4X",
|
|
969
|
+
agent_id="customer_operations_team",
|
|
970
|
+
)
|
|
971
|
+
team = RoundRobinGroupChat(
|
|
972
|
+
[planner, researcher, payments_specialist],
|
|
973
|
+
termination_condition=agenticdome_stop | normal_stop,
|
|
974
|
+
max_turns=12,
|
|
975
|
+
)
|
|
976
|
+
```
|
|
977
|
+
|
|
978
|
+
Family 2 policy receives a bounded rolling conversation window digest, participant lineage, semantic-deviation evaluation request, and tool-call frequency. A blocked cross-agent message or excessive tool rate freezes the local session, reports a trust incident, and advances revocation state for the emitting agent before an external action can run.
|
|
979
|
+
|
|
980
|
+
**Existing AutoGen 0.2 deployments** — attach to the legacy `ConversableAgent.send()`, `receive()`, `a_send()`, and `a_receive()` lifecycles:
|
|
981
|
+
|
|
982
|
+
Keep the customer's already-certified legacy AutoGen dependency in place and install the dependency-light base SDK (do not use the `[autogen]` extra, because that extra deliberately installs the current AgentChat release):
|
|
983
|
+
|
|
984
|
+
```bash
|
|
985
|
+
pip install agenticdome-python-sdk
|
|
986
|
+
```
|
|
987
|
+
|
|
988
|
+
```python
|
|
989
|
+
assistant = firewall.attach_conversable_agent(
|
|
990
|
+
assistant,
|
|
991
|
+
session_id="sess_prod_01J4X",
|
|
992
|
+
agent_id="legacy_autogen_assistant",
|
|
993
|
+
)
|
|
994
|
+
user_proxy = firewall.attach_conversable_agent(
|
|
995
|
+
user_proxy,
|
|
996
|
+
session_id="sess_prod_01J4X",
|
|
997
|
+
agent_id="legacy_autogen_user_proxy",
|
|
998
|
+
)
|
|
999
|
+
```
|
|
1000
|
+
|
|
1001
|
+
Wrap side-effecting local tools as well; conversation screening does not replace authorization at the execution boundary:
|
|
1002
|
+
|
|
1003
|
+
```python
|
|
1004
|
+
secure_refund = firewall.wrap_tool_handler(
|
|
1005
|
+
tool_name="payments.refund.create",
|
|
1006
|
+
tool_platform="payments",
|
|
1007
|
+
handler=raw_refund,
|
|
1008
|
+
session_id="sess_prod_01J4X",
|
|
1009
|
+
agent_id="payments_specialist",
|
|
1010
|
+
)
|
|
1011
|
+
```
|
|
1012
|
+
|
|
1013
|
+
```bash
|
|
1014
|
+
export AGENTICDOME_PLATFORM="autogen"
|
|
1015
|
+
export AGENTICDOME_PRODUCTION_MODE="true"
|
|
1016
|
+
export AGENTICDOME_REQUIRE_STABLE_SESSION_ID_IN_PROD="true"
|
|
1017
|
+
export AGENTICDOME_AUTOGEN_CONVERSATION_WINDOW="12"
|
|
1018
|
+
export AGENTICDOME_AUTOGEN_MAX_TOOL_CALLS_PER_WINDOW="8"
|
|
1019
|
+
export AGENTICDOME_AUTOGEN_FREEZE_ON_BLOCK="true"
|
|
1020
|
+
export AGENTICDOME_AUTOGEN_REVOKE_ON_FREEZE="true"
|
|
1021
|
+
```
|
|
1022
|
+
|
|
1023
|
+
Official references: [AutoGen project status and migration guidance](https://github.com/microsoft/autogen) · [AgentChat teams](https://microsoft.github.io/autogen/stable/reference/python/autogen_agentchat.teams.html) · [Core intervention handlers](https://microsoft.github.io/autogen/dev/user-guide/core-user-guide/cookbook/tool-use-with-intervention.html) · [Legacy 0.2 conversational agents](https://microsoft.github.io/autogen/0.2/docs/Use-Cases/agent_chat/)
|
|
1024
|
+
|
|
1025
|
+
---
|
|
1026
|
+
|
|
915
1027
|
### Microsoft AI Foundry
|
|
916
1028
|
|
|
917
1029
|
For services that call Foundry agents, handle function-call requests from Foundry, execute local function tools, or use `FoundryChatClient` with local tools.
|
|
@@ -2265,7 +2377,7 @@ source .venv/bin/activate
|
|
|
2265
2377
|
|
|
2266
2378
|
python -m pip install --upgrade pip setuptools wheel
|
|
2267
2379
|
python -m pip install -e ".[dev]"
|
|
2268
|
-
python -m pip install -e ".[crewai,pydanticai,langgraph,microsoft,foundry,agno,openai-agents,mcp,bedrock,google-adk,llamaindex,redis]"
|
|
2380
|
+
python -m pip install -e ".[crewai,pydanticai,langgraph,microsoft,autogen,foundry,agno,openai-agents,claude,smolagents,mcp,bedrock,google-adk,llamaindex,redis]"
|
|
2269
2381
|
|
|
2270
2382
|
python -m pytest -q
|
|
2271
2383
|
rm -rf build dist *.egg-info agenticdome_sdk.egg-info agenticdome_python_sdk.egg-info
|
|
@@ -2288,10 +2400,12 @@ python -m pytest -q tests/test_langgraph_integration.py
|
|
|
2288
2400
|
| :--- | :--- | :--- |
|
|
2289
2401
|
| Core SDK client | `python -m pytest -q tests/test_client.py` | Request validation, headers, guardrail calls, A2A/MCP JSON-RPC calls, Mesh DLP, HTTP errors, JSON handling |
|
|
2290
2402
|
| Package contract | `python -m pytest -q tests/test_packaging_contract.py` | `pyproject.toml` metadata, legacy `setup.py` shim, public exports, manifest hygiene, ignored build artifacts, documented extras |
|
|
2403
|
+
| Attack demos | `python -m pytest -q tests/test_attack_demo.py` | Offline vulnerable-vs-protected CLI coverage, including AutoGen, Claude Agent SDK, and Hugging Face smolagents |
|
|
2291
2404
|
| CrewAI | `python -m pytest -q tests/test_crewai_integration.py` | Prompt/tool hooks, handoff token injection, specialist verification, output redaction, schema checks, rate limits, retries, streaming DLP |
|
|
2292
2405
|
| PydanticAI | `python -m pytest -q tests/test_pydanticai_integration.py` | Agent hooks, secure tools, sanitized arguments, token-store fallback, production session enforcement, rate limits, retries, streaming output |
|
|
2293
2406
|
| LangGraph / LangChain | `python -m pytest -q tests/test_langgraph_integration.py` | Graph input, transition, tool, retrieval, middleware, security routing, token consumption, output DLP, streaming events |
|
|
2294
2407
|
| Microsoft Agent Framework | `python -m pytest -q tests/test_microsoft_agent_framework_integration.py` | Tool/run boundaries, delegated tool verification, middleware install helpers, identity context, Copilot enforcement hooks, streaming output |
|
|
2408
|
+
| Microsoft AutoGen | `python -m pytest -q tests/test_autogen_integration.py` | Current AgentChat team/Core interception, legacy send/receive hooks, rolling Family 2 context, session freeze, trust incident and revocation escalation |
|
|
2295
2409
|
| Microsoft AI Foundry | `python -m pytest -q tests/test_microsoft_ai_foundry_integration.py` | Prompt threat contracts, local tool executors, run boundaries, bearer/API-key configuration, delegated execution, circuit breaker, stream DLP |
|
|
2296
2410
|
| OpenAI Agents SDK | `python -m pytest -q tests/test_openai_agents_integration.py` | Runner wrappers, guardrail helpers, function-tool wrappers, handoff/delegated tools, HMAC token storage, schema checks, retries, streaming output |
|
|
2297
2411
|
| Claude Agent SDK | `python -m pytest -q tests/test_claude_integration.py` | Native prompt/tool hooks, tool-output replacement, secure query responses, decision-token binding and one-time consumption |
|
|
@@ -2316,7 +2430,7 @@ python -m twine check dist/*
|
|
|
2316
2430
|
**Full offline release gate** across all supported Python integrations:
|
|
2317
2431
|
|
|
2318
2432
|
```bash
|
|
2319
|
-
python -m pip install -e ".[dev,crewai,pydanticai,langgraph,microsoft,foundry,agno,openai-agents,mcp,bedrock,google-adk,llamaindex,redis]"
|
|
2433
|
+
python -m pip install -e ".[dev,crewai,pydanticai,langgraph,microsoft,autogen,foundry,agno,openai-agents,claude,smolagents,mcp,bedrock,google-adk,llamaindex,redis]"
|
|
2320
2434
|
python -m pytest -q
|
|
2321
2435
|
rm -rf build dist *.egg-info agenticdome_sdk.egg-info agenticdome_python_sdk.egg-info
|
|
2322
2436
|
python -m build
|