agenticdome-python-sdk 1.2.2__tar.gz → 1.2.4__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.
Files changed (61) hide show
  1. {agenticdome_python_sdk-1.2.2/agenticdome_python_sdk.egg-info → agenticdome_python_sdk-1.2.4}/PKG-INFO +146 -28
  2. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/README.md +125 -12
  3. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4/agenticdome_python_sdk.egg-info}/PKG-INFO +146 -28
  4. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_python_sdk.egg-info/SOURCES.txt +3 -10
  5. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_python_sdk.egg-info/requires.txt +22 -15
  6. agenticdome_python_sdk-1.2.4/agenticdome_sdk/autogen.py +709 -0
  7. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/examples/attack_demo.py +69 -0
  8. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/pyproject.toml +23 -16
  9. agenticdome_python_sdk-1.2.4/tests/test_attack_demo.py +49 -0
  10. agenticdome_python_sdk-1.2.4/tests/test_autogen_integration.py +297 -0
  11. agenticdome_python_sdk-1.2.2/agenticdome_sdk/scenarios.py +0 -196
  12. agenticdome_python_sdk-1.2.2/examples/agno_lateral_refund.py +0 -25
  13. agenticdome_python_sdk-1.2.2/examples/ai_foundry_callback_export.py +0 -16
  14. agenticdome_python_sdk-1.2.2/examples/crewai_lateral_refund.py +0 -25
  15. agenticdome_python_sdk-1.2.2/examples/mcp_remote_patch.py +0 -14
  16. agenticdome_python_sdk-1.2.2/examples/mesh_output_redaction.py +0 -20
  17. agenticdome_python_sdk-1.2.2/examples/microsoft_metadata_exfil.py +0 -17
  18. agenticdome_python_sdk-1.2.2/examples/salesforce_hidden_bcc.py +0 -18
  19. agenticdome_python_sdk-1.2.2/examples/servicenow_delete_logs.py +0 -18
  20. agenticdome_python_sdk-1.2.2/tests/test_packaging_contract.py +0 -159
  21. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/LICENSE +0 -0
  22. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/MANIFEST.in +0 -0
  23. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_python_sdk.egg-info/dependency_links.txt +0 -0
  24. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_python_sdk.egg-info/top_level.txt +0 -0
  25. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/__init__.py +0 -0
  26. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/_framework_firewall.py +0 -0
  27. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/agno.py +0 -0
  28. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/aws_bedrock.py +0 -0
  29. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/claude.py +0 -0
  30. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/client.py +0 -0
  31. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/crewai.py +0 -0
  32. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/google_adk.py +0 -0
  33. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/identity.py +0 -0
  34. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/langgraph.py +0 -0
  35. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/llamaindex.py +0 -0
  36. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/mcp_host.py +0 -0
  37. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/microsoft_agent_framework.py +0 -0
  38. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/microsoft_ai_foundry.py +0 -0
  39. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/openai_agents.py +0 -0
  40. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/proof.py +0 -0
  41. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/pydantic.py +0 -0
  42. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/agenticdome_sdk/smolagents.py +0 -0
  43. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/examples/crewai_agenticdome_firewall.py +0 -0
  44. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/setup.cfg +0 -0
  45. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/setup.py +0 -0
  46. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_agno_integration.py +0 -0
  47. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_aws_bedrock_integration.py +0 -0
  48. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_claude_integration.py +0 -0
  49. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_client.py +0 -0
  50. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_crewai_integration.py +0 -0
  51. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_google_adk_integration.py +0 -0
  52. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_identity_context.py +0 -0
  53. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_langgraph_integration.py +0 -0
  54. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_live_tenant.py +0 -0
  55. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_llamaindex_integration.py +0 -0
  56. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_mcp_host_integration.py +0 -0
  57. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_microsoft_agent_framework_integration.py +0 -0
  58. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_microsoft_ai_foundry_integration.py +0 -0
  59. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_openai_agents_integration.py +0 -0
  60. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/tests/test_pydanticai_integration.py +0 -0
  61. {agenticdome_python_sdk-1.2.2 → agenticdome_python_sdk-1.2.4}/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.2
3
+ Version: 1.2.4
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==1.15.5; extra == "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==2.16.0; extra == "pydanticai"
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==2.16.0; extra == "pydantic"
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==1.5.0; extra == "langgraph"
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==2.8.0; extra == "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==1.43.54; extra == "bedrock"
61
+ Requires-Dist: boto3<=1.43.56,>=1.43.54; extra == "bedrock"
58
62
  Provides-Extra: aws-bedrock
59
- Requires-Dist: boto3==1.43.54; extra == "aws-bedrock"
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==0.2.126; extra == "claude"
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==0.2.126; extra == "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==1.15.5; extra == "all"
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==2.16.0; extra == "all"
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==1.5.0; extra == "all"
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: agno==2.8.0; extra == "all"
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==1.43.54; extra == "all"
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==0.2.126; extra == "all"
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, fourteen runtimes:** CrewAI · PydanticAI · LangGraph/LangChain · Microsoft Agent Framework · Microsoft AI Foundry · OpenAI Agents SDK · Claude Agent SDK · Hugging Face smolagents · Agno · Google ADK · LlamaIndex · AWS Bedrock · MCP hosts/gateways · custom Python.
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
@@ -2374,7 +2491,7 @@ python -m build
2374
2491
  python -m twine check dist/*
2375
2492
  ```
2376
2493
 
2377
- `python -m pytest -q` runs the core SDK tests, package metadata contract tests, and every dependency-light framework adapter test in one pass — the normal offline full-suite command. Adapter tests use fake framework/client boundaries where possible, so CI verifies authorization, delegation-token handling, sanitized tool arguments, output DLP, streaming sanitization, rate limits, and fail-open/fail-closed behavior without live third-party services.
2494
+ `python -m pytest -q` runs the core SDK tests and every dependency-light framework adapter test in one pass — the normal offline full-suite command. Adapter tests use fake framework/client boundaries where possible, so CI verifies authorization, delegation-token handling, sanitized tool arguments, output DLP, streaming sanitization, rate limits, and fail-open/fail-closed behavior without live third-party services. Private release automation separately validates package metadata and rejects internal-only files from both wheel and source-distribution artifacts.
2378
2495
 
2379
2496
  ### Framework Test Matrix
2380
2497
 
@@ -2388,11 +2505,12 @@ python -m pytest -q tests/test_langgraph_integration.py
2388
2505
  | Runtime / integration | Test command | Coverage focus |
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
- | 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 |
2508
+ | 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
2509
  | 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
2510
  | 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
2511
  | 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
2512
  | 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 |
2513
+ | 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
2514
  | 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
2515
  | 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
2516
  | 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 |
@@ -2405,36 +2523,36 @@ python -m pytest -q tests/test_langgraph_integration.py
2405
2523
 
2406
2524
  ### Release gates
2407
2525
 
2408
- **Metadata and artifact validation only:**
2526
+ **Metadata and artifact validation:**
2409
2527
 
2410
2528
  ```bash
2411
- python -m pytest -q tests/test_packaging_contract.py
2412
2529
  rm -rf build dist *.egg-info agenticdome_sdk.egg-info agenticdome_python_sdk.egg-info
2413
2530
  python -m build
2414
2531
  python -m twine check dist/*
2415
2532
  ```
2416
2533
 
2534
+ The private release pipeline performs additional package-contract and forbidden-file checks before upload.
2535
+
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
2424
2543
  python -m twine check dist/*
2425
2544
  ```
2426
2545
 
2427
- **Focused verification** — packaging checks plus optional live tenant smoke tests:
2546
+ **Focused verification** — optional live tenant smoke tests:
2428
2547
 
2429
2548
  ```bash
2430
- python -m pytest -q tests/test_packaging_contract.py tests/test_live_tenant.py
2549
+ python -m pytest -q tests/test_live_tenant.py
2431
2550
  ```
2432
2551
 
2433
2552
  | Part | Meaning |
2434
2553
  | :--- | :--- |
2435
2554
  | `python -m pytest` | Runs `pytest` using the current Python environment |
2436
2555
  | `-q` | Quiet mode — compact results instead of verbose test names |
2437
- | `tests/test_packaging_contract.py` | Packaging and release-quality checks: `pyproject.toml` metadata, minimal `setup.py` shim, public imports, `.gitignore`, `MANIFEST.in`, README verification coverage |
2438
2556
  | `tests/test_live_tenant.py` | Live AgenticDome tenant smoke tests — skipped by default, only runs when explicitly enabled |
2439
2557
 
2440
2558
  **Live tenant release gate** — against a real AgenticDome tenant:
@@ -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, fourteen runtimes:** CrewAI · PydanticAI · LangGraph/LangChain · Microsoft Agent Framework · Microsoft AI Foundry · OpenAI Agents SDK · Claude Agent SDK · Hugging Face smolagents · Agno · Google ADK · LlamaIndex · AWS Bedrock · MCP hosts/gateways · custom Python.
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
@@ -2273,7 +2385,7 @@ python -m build
2273
2385
  python -m twine check dist/*
2274
2386
  ```
2275
2387
 
2276
- `python -m pytest -q` runs the core SDK tests, package metadata contract tests, and every dependency-light framework adapter test in one pass — the normal offline full-suite command. Adapter tests use fake framework/client boundaries where possible, so CI verifies authorization, delegation-token handling, sanitized tool arguments, output DLP, streaming sanitization, rate limits, and fail-open/fail-closed behavior without live third-party services.
2388
+ `python -m pytest -q` runs the core SDK tests and every dependency-light framework adapter test in one pass — the normal offline full-suite command. Adapter tests use fake framework/client boundaries where possible, so CI verifies authorization, delegation-token handling, sanitized tool arguments, output DLP, streaming sanitization, rate limits, and fail-open/fail-closed behavior without live third-party services. Private release automation separately validates package metadata and rejects internal-only files from both wheel and source-distribution artifacts.
2277
2389
 
2278
2390
  ### Framework Test Matrix
2279
2391
 
@@ -2287,11 +2399,12 @@ python -m pytest -q tests/test_langgraph_integration.py
2287
2399
  | Runtime / integration | Test command | Coverage focus |
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
- | 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 |
2402
+ | 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
2403
  | 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
2404
  | 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
2405
  | 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
2406
  | 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 |
2407
+ | 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
2408
  | 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
2409
  | 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
2410
  | 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 |
@@ -2304,36 +2417,36 @@ python -m pytest -q tests/test_langgraph_integration.py
2304
2417
 
2305
2418
  ### Release gates
2306
2419
 
2307
- **Metadata and artifact validation only:**
2420
+ **Metadata and artifact validation:**
2308
2421
 
2309
2422
  ```bash
2310
- python -m pytest -q tests/test_packaging_contract.py
2311
2423
  rm -rf build dist *.egg-info agenticdome_sdk.egg-info agenticdome_python_sdk.egg-info
2312
2424
  python -m build
2313
2425
  python -m twine check dist/*
2314
2426
  ```
2315
2427
 
2428
+ The private release pipeline performs additional package-contract and forbidden-file checks before upload.
2429
+
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
2323
2437
  python -m twine check dist/*
2324
2438
  ```
2325
2439
 
2326
- **Focused verification** — packaging checks plus optional live tenant smoke tests:
2440
+ **Focused verification** — optional live tenant smoke tests:
2327
2441
 
2328
2442
  ```bash
2329
- python -m pytest -q tests/test_packaging_contract.py tests/test_live_tenant.py
2443
+ python -m pytest -q tests/test_live_tenant.py
2330
2444
  ```
2331
2445
 
2332
2446
  | Part | Meaning |
2333
2447
  | :--- | :--- |
2334
2448
  | `python -m pytest` | Runs `pytest` using the current Python environment |
2335
2449
  | `-q` | Quiet mode — compact results instead of verbose test names |
2336
- | `tests/test_packaging_contract.py` | Packaging and release-quality checks: `pyproject.toml` metadata, minimal `setup.py` shim, public imports, `.gitignore`, `MANIFEST.in`, README verification coverage |
2337
2450
  | `tests/test_live_tenant.py` | Live AgenticDome tenant smoke tests — skipped by default, only runs when explicitly enabled |
2338
2451
 
2339
2452
  **Live tenant release gate** — against a real AgenticDome tenant: