agenticdome-python-sdk 1.2.12__tar.gz → 1.2.14__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.12 → agenticdome_python_sdk-1.2.14}/PKG-INFO +5 -4
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/README.md +3 -3
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_python_sdk.egg-info/PKG-INFO +5 -4
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_python_sdk.egg-info/SOURCES.txt +17 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/README.md +43 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/agno.md +71 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/autogen.md +60 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/aws-bedrock.md +66 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/claude-agent-sdk.md +67 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/crewai.md +62 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/custom-python.md +78 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/google-adk.md +61 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/langgraph.md +71 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/llamaindex.md +71 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/microsoft-agent-framework.md +66 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/microsoft-ai-foundry.md +67 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/openai-agents.md +73 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/pydanticai.md +72 -0
- agenticdome_python_sdk-1.2.14/docs/frameworks/smolagents.md +59 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/docs/mcp-integration.md +7 -20
- agenticdome_python_sdk-1.2.14/docs/performance-evidence.md +43 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/PRODUCTION_INTEGRATION.md +15 -16
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/README.md +15 -15
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/pyproject.toml +2 -1
- agenticdome_python_sdk-1.2.14/tests/test_framework_guides.py +165 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_local_simulation.py +15 -15
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/CONTRIBUTING.md +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/LICENSE +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/MANIFEST.in +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/NOTICE +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/SECURITY.md +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_python_sdk.egg-info/dependency_links.txt +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_python_sdk.egg-info/entry_points.txt +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_python_sdk.egg-info/requires.txt +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_python_sdk.egg-info/top_level.txt +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/__init__.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/_framework_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/_mode.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/agno.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/autogen.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/aws_bedrock.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/claude.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/client.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/crewai.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/demo.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/google_adk.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/identity.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/langgraph.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/llamaindex.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/mcp_host.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/microsoft_agent_framework.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/microsoft_ai_foundry.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/openai_agents.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/proof.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/pydantic.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/simulation.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/agenticdome_sdk/smolagents.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/attack_demo.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/crewai_agenticdome_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/README.md +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/_shared.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/agno.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/autogen.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/aws_bedrock.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/claude_agent_sdk.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/crewai.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/custom_python.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/google_adk.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/langgraph.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/llamaindex.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/mcp.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/microsoft_agent_framework.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/microsoft_ai_foundry.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/openai_agents.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/pydanticai.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/frameworks/smolagents.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/langgraph_agenticdome_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/local_simulation_gallery.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/examples/mcp_gateway_action_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/setup.cfg +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/setup.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_agno_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_attack_demo.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_autogen_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_aws_bedrock_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_claude_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_client.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_crewai_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_execution_broker.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_google_adk_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_identity_context.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_langgraph_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_llamaindex_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_mcp_host_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_mcp_launch_example.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_microsoft_agent_framework_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_microsoft_ai_foundry_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_openai_agents_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_pydanticai_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.14}/tests/test_smolagents_integration.py +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agenticdome-python-sdk
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.14
|
|
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-Expression: Apache-2.0
|
|
7
7
|
Project-URL: Homepage, https://www.agenticdome.io
|
|
8
8
|
Project-URL: Repository, https://github.com/agenticdome/agenticdome-python-sdk
|
|
9
9
|
Project-URL: Documentation, https://github.com/agenticdome/agenticdome-python-sdk#readme
|
|
10
|
+
Project-URL: Framework Integration Guides, https://github.com/agenticdome/agenticdome-python-sdk/tree/main/docs/frameworks
|
|
10
11
|
Project-URL: MCP Integration Guide, https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/mcp-integration.md
|
|
11
12
|
Project-URL: Issues, https://github.com/agenticdome/agenticdome-python-sdk/issues
|
|
12
13
|
Project-URL: Examples, https://github.com/agenticdome/agenticdome-python-sdk/tree/main/examples
|
|
@@ -115,7 +116,7 @@ Dynamic: license-file
|
|
|
115
116
|
[](https://github.com/agenticdome/agenticdome-python-sdk/actions/workflows/ci.yml)
|
|
116
117
|
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
117
118
|
|
|
118
|
-
[Source and examples](https://github.com/agenticdome/agenticdome-python-sdk) · [MCP integration guide](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/mcp-integration.md) · [Issue tracker](https://github.com/agenticdome/agenticdome-python-sdk/issues) · [Security policy](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/SECURITY.md) · [PyPI package](https://pypi.org/project/agenticdome-python-sdk/)
|
|
119
|
+
[Source and examples](https://github.com/agenticdome/agenticdome-python-sdk) · [Framework integration guides](https://github.com/agenticdome/agenticdome-python-sdk/tree/main/docs/frameworks) · [MCP integration guide](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/mcp-integration.md) · [Issue tracker](https://github.com/agenticdome/agenticdome-python-sdk/issues) · [Security policy](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/SECURITY.md) · [PyPI package](https://pypi.org/project/agenticdome-python-sdk/)
|
|
119
120
|
|
|
120
121
|
> **Production-grade security guardrails, DLP, tool authorization, and cryptographically verified multi-agent delegation for Python autonomous AI runtimes.**
|
|
121
122
|
|
|
@@ -154,7 +155,7 @@ agenticdome-demo --list-frameworks
|
|
|
154
155
|
agenticdome-demo --framework all --scenario both
|
|
155
156
|
```
|
|
156
157
|
|
|
157
|
-
You can also open the [framework example gallery](examples/README.md) and run the individual example matching your stack. Before editing production code, use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md)
|
|
158
|
+
You can also open the [framework example gallery](examples/README.md) and run the individual example matching your stack. Before editing production code, choose the dedicated [framework integration guide](docs/frameworks/README.md), then use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md) for the cross-framework attachment and proof checklist. MCP host and gateway developers can follow the dedicated [MCP Action Firewall guide](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/mcp-integration.md).
|
|
158
159
|
|
|
159
160
|
### 5. Connect the same integration to AgenticDome
|
|
160
161
|
|
|
@@ -189,7 +190,7 @@ result = crew.kickoff() # hostile prompts, unsafe tools, and rogue
|
|
|
189
190
|
4. [Quickstart](#quickstart)
|
|
190
191
|
5. [Installation](#installation)
|
|
191
192
|
6. [Configuration](#configuration)
|
|
192
|
-
7. [Choosing Your Integration Point](#choosing-your-integration-point)
|
|
193
|
+
7. [Choosing Your Integration Point](#choosing-your-integration-point) — [dedicated framework guides](docs/frameworks/README.md)
|
|
193
194
|
8. [Framework Integrations](#framework-integrations)
|
|
194
195
|
- [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) · [Claude Agent SDK](#claude-agent-sdk) · [Hugging Face smolagents](#hugging-face-smolagents) · [Agno](#agno) · [Google ADK](#google-adk) · [LlamaIndex](#llamaindex) · [AWS Bedrock](#aws-bedrock) · [MCP Host / Gateway](#mcp-host--gateway)
|
|
195
196
|
9. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://github.com/agenticdome/agenticdome-python-sdk/actions/workflows/ci.yml)
|
|
6
6
|
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
7
7
|
|
|
8
|
-
[Source and examples](https://github.com/agenticdome/agenticdome-python-sdk) · [MCP integration guide](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/mcp-integration.md) · [Issue tracker](https://github.com/agenticdome/agenticdome-python-sdk/issues) · [Security policy](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/SECURITY.md) · [PyPI package](https://pypi.org/project/agenticdome-python-sdk/)
|
|
8
|
+
[Source and examples](https://github.com/agenticdome/agenticdome-python-sdk) · [Framework integration guides](https://github.com/agenticdome/agenticdome-python-sdk/tree/main/docs/frameworks) · [MCP integration guide](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/mcp-integration.md) · [Issue tracker](https://github.com/agenticdome/agenticdome-python-sdk/issues) · [Security policy](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/SECURITY.md) · [PyPI package](https://pypi.org/project/agenticdome-python-sdk/)
|
|
9
9
|
|
|
10
10
|
> **Production-grade security guardrails, DLP, tool authorization, and cryptographically verified multi-agent delegation for Python autonomous AI runtimes.**
|
|
11
11
|
|
|
@@ -44,7 +44,7 @@ agenticdome-demo --list-frameworks
|
|
|
44
44
|
agenticdome-demo --framework all --scenario both
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
You can also open the [framework example gallery](examples/README.md) and run the individual example matching your stack. Before editing production code, use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md)
|
|
47
|
+
You can also open the [framework example gallery](examples/README.md) and run the individual example matching your stack. Before editing production code, choose the dedicated [framework integration guide](docs/frameworks/README.md), then use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md) for the cross-framework attachment and proof checklist. MCP host and gateway developers can follow the dedicated [MCP Action Firewall guide](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/mcp-integration.md).
|
|
48
48
|
|
|
49
49
|
### 5. Connect the same integration to AgenticDome
|
|
50
50
|
|
|
@@ -79,7 +79,7 @@ result = crew.kickoff() # hostile prompts, unsafe tools, and rogue
|
|
|
79
79
|
4. [Quickstart](#quickstart)
|
|
80
80
|
5. [Installation](#installation)
|
|
81
81
|
6. [Configuration](#configuration)
|
|
82
|
-
7. [Choosing Your Integration Point](#choosing-your-integration-point)
|
|
82
|
+
7. [Choosing Your Integration Point](#choosing-your-integration-point) — [dedicated framework guides](docs/frameworks/README.md)
|
|
83
83
|
8. [Framework Integrations](#framework-integrations)
|
|
84
84
|
- [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) · [Claude Agent SDK](#claude-agent-sdk) · [Hugging Face smolagents](#hugging-face-smolagents) · [Agno](#agno) · [Google ADK](#google-adk) · [LlamaIndex](#llamaindex) · [AWS Bedrock](#aws-bedrock) · [MCP Host / Gateway](#mcp-host--gateway)
|
|
85
85
|
9. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agenticdome-python-sdk
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.14
|
|
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-Expression: Apache-2.0
|
|
7
7
|
Project-URL: Homepage, https://www.agenticdome.io
|
|
8
8
|
Project-URL: Repository, https://github.com/agenticdome/agenticdome-python-sdk
|
|
9
9
|
Project-URL: Documentation, https://github.com/agenticdome/agenticdome-python-sdk#readme
|
|
10
|
+
Project-URL: Framework Integration Guides, https://github.com/agenticdome/agenticdome-python-sdk/tree/main/docs/frameworks
|
|
10
11
|
Project-URL: MCP Integration Guide, https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/mcp-integration.md
|
|
11
12
|
Project-URL: Issues, https://github.com/agenticdome/agenticdome-python-sdk/issues
|
|
12
13
|
Project-URL: Examples, https://github.com/agenticdome/agenticdome-python-sdk/tree/main/examples
|
|
@@ -115,7 +116,7 @@ Dynamic: license-file
|
|
|
115
116
|
[](https://github.com/agenticdome/agenticdome-python-sdk/actions/workflows/ci.yml)
|
|
116
117
|
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
117
118
|
|
|
118
|
-
[Source and examples](https://github.com/agenticdome/agenticdome-python-sdk) · [MCP integration guide](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/mcp-integration.md) · [Issue tracker](https://github.com/agenticdome/agenticdome-python-sdk/issues) · [Security policy](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/SECURITY.md) · [PyPI package](https://pypi.org/project/agenticdome-python-sdk/)
|
|
119
|
+
[Source and examples](https://github.com/agenticdome/agenticdome-python-sdk) · [Framework integration guides](https://github.com/agenticdome/agenticdome-python-sdk/tree/main/docs/frameworks) · [MCP integration guide](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/mcp-integration.md) · [Issue tracker](https://github.com/agenticdome/agenticdome-python-sdk/issues) · [Security policy](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/SECURITY.md) · [PyPI package](https://pypi.org/project/agenticdome-python-sdk/)
|
|
119
120
|
|
|
120
121
|
> **Production-grade security guardrails, DLP, tool authorization, and cryptographically verified multi-agent delegation for Python autonomous AI runtimes.**
|
|
121
122
|
|
|
@@ -154,7 +155,7 @@ agenticdome-demo --list-frameworks
|
|
|
154
155
|
agenticdome-demo --framework all --scenario both
|
|
155
156
|
```
|
|
156
157
|
|
|
157
|
-
You can also open the [framework example gallery](examples/README.md) and run the individual example matching your stack. Before editing production code, use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md)
|
|
158
|
+
You can also open the [framework example gallery](examples/README.md) and run the individual example matching your stack. Before editing production code, choose the dedicated [framework integration guide](docs/frameworks/README.md), then use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md) for the cross-framework attachment and proof checklist. MCP host and gateway developers can follow the dedicated [MCP Action Firewall guide](https://github.com/agenticdome/agenticdome-python-sdk/blob/main/docs/mcp-integration.md).
|
|
158
159
|
|
|
159
160
|
### 5. Connect the same integration to AgenticDome
|
|
160
161
|
|
|
@@ -189,7 +190,7 @@ result = crew.kickoff() # hostile prompts, unsafe tools, and rogue
|
|
|
189
190
|
4. [Quickstart](#quickstart)
|
|
190
191
|
5. [Installation](#installation)
|
|
191
192
|
6. [Configuration](#configuration)
|
|
192
|
-
7. [Choosing Your Integration Point](#choosing-your-integration-point)
|
|
193
|
+
7. [Choosing Your Integration Point](#choosing-your-integration-point) — [dedicated framework guides](docs/frameworks/README.md)
|
|
193
194
|
8. [Framework Integrations](#framework-integrations)
|
|
194
195
|
- [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) · [Claude Agent SDK](#claude-agent-sdk) · [Hugging Face smolagents](#hugging-face-smolagents) · [Agno](#agno) · [Google ADK](#google-adk) · [LlamaIndex](#llamaindex) · [AWS Bedrock](#aws-bedrock) · [MCP Host / Gateway](#mcp-host--gateway)
|
|
195
196
|
9. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
|
|
@@ -35,6 +35,22 @@ agenticdome_sdk/pydantic.py
|
|
|
35
35
|
agenticdome_sdk/simulation.py
|
|
36
36
|
agenticdome_sdk/smolagents.py
|
|
37
37
|
docs/mcp-integration.md
|
|
38
|
+
docs/performance-evidence.md
|
|
39
|
+
docs/frameworks/README.md
|
|
40
|
+
docs/frameworks/agno.md
|
|
41
|
+
docs/frameworks/autogen.md
|
|
42
|
+
docs/frameworks/aws-bedrock.md
|
|
43
|
+
docs/frameworks/claude-agent-sdk.md
|
|
44
|
+
docs/frameworks/crewai.md
|
|
45
|
+
docs/frameworks/custom-python.md
|
|
46
|
+
docs/frameworks/google-adk.md
|
|
47
|
+
docs/frameworks/langgraph.md
|
|
48
|
+
docs/frameworks/llamaindex.md
|
|
49
|
+
docs/frameworks/microsoft-agent-framework.md
|
|
50
|
+
docs/frameworks/microsoft-ai-foundry.md
|
|
51
|
+
docs/frameworks/openai-agents.md
|
|
52
|
+
docs/frameworks/pydanticai.md
|
|
53
|
+
docs/frameworks/smolagents.md
|
|
38
54
|
examples/PRODUCTION_INTEGRATION.md
|
|
39
55
|
examples/README.md
|
|
40
56
|
examples/attack_demo.py
|
|
@@ -67,6 +83,7 @@ tests/test_claude_integration.py
|
|
|
67
83
|
tests/test_client.py
|
|
68
84
|
tests/test_crewai_integration.py
|
|
69
85
|
tests/test_execution_broker.py
|
|
86
|
+
tests/test_framework_guides.py
|
|
70
87
|
tests/test_google_adk_integration.py
|
|
71
88
|
tests/test_identity_context.py
|
|
72
89
|
tests/test_langgraph_integration.py
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# AgenticDome Python framework integration guides
|
|
2
|
+
|
|
3
|
+
Choose the runtime that owns your agent, graph, tool or gateway boundary. Each
|
|
4
|
+
guide uses the same production contract: configure the SDK, attach it in code,
|
|
5
|
+
authorize immediately before local execution, review returned content, and
|
|
6
|
+
prove both an allowed and blocked path.
|
|
7
|
+
|
|
8
|
+
| Integration | Guide | Primary protected boundary |
|
|
9
|
+
| --- | --- | --- |
|
|
10
|
+
| CrewAI | [CrewAI](crewai.md) | Crew bootstrap, LLM/tool hooks and local tools |
|
|
11
|
+
| PydanticAI | [PydanticAI](pydanticai.md) | Agent hooks and decorated tools |
|
|
12
|
+
| LangGraph / LangChain | [LangGraph](langgraph.md) | Graph nodes, transitions and tool nodes |
|
|
13
|
+
| Microsoft Agent Framework | [Microsoft Agent Framework](microsoft-agent-framework.md) | Agent run, middleware and function tools |
|
|
14
|
+
| Microsoft AutoGen | [AutoGen](autogen.md) | Team/Core message and tool execution |
|
|
15
|
+
| Microsoft AI Foundry | [Microsoft AI Foundry](microsoft-ai-foundry.md) | Client/run boundary and local tool executor |
|
|
16
|
+
| OpenAI Agents SDK | [OpenAI Agents SDK](openai-agents.md) | Runner guardrails and function tools |
|
|
17
|
+
| Anthropic Claude Agent SDK | [Claude Agent SDK](claude-agent-sdk.md) | Options hooks, query/client and SDK tools |
|
|
18
|
+
| Hugging Face smolagents | [smolagents](smolagents.md) | Agent run, generated code and native tools |
|
|
19
|
+
| Agno | [Agno](agno.md) | Agent/Team hooks, tools and returned content |
|
|
20
|
+
| Google ADK | [Google ADK](google-adk.md) | Agent callbacks and local tools |
|
|
21
|
+
| LlamaIndex | [LlamaIndex](llamaindex.md) | Query, retrieval and FunctionTool boundaries |
|
|
22
|
+
| AWS Bedrock | [AWS Bedrock](aws-bedrock.md) | boto3 calls, tool use and action groups |
|
|
23
|
+
| MCP host / gateway | [MCP](../mcp-integration.md) | JSON-RPC forwarding and returned content |
|
|
24
|
+
| Custom Python | [Custom Python](custom-python.md) | Application-owned prompt/tool/output boundary |
|
|
25
|
+
|
|
26
|
+
## Shared five-step path
|
|
27
|
+
|
|
28
|
+
1. Install the matching package extra.
|
|
29
|
+
2. Run `AGENTICDOME_MODE=local_sim` with one allowed and one blocked scenario.
|
|
30
|
+
3. Obtain the assigned runtime sidecar URL, Runtime/SDK key and tenant ID.
|
|
31
|
+
4. Attach the adapter in the application construction path and remove raw
|
|
32
|
+
execution routes that bypass it.
|
|
33
|
+
5. Prove safe, blocked, redacted and sidecar-unavailable behavior before
|
|
34
|
+
production, then run SDK Assurance and Performance Smoke.
|
|
35
|
+
|
|
36
|
+
The offline simulator proves SDK control flow, not tenant enforcement. The
|
|
37
|
+
public SDK does not expose AgenticDome policy algorithms, private threat
|
|
38
|
+
signatures, decision-token formats or control-plane internals.
|
|
39
|
+
|
|
40
|
+
Use the [production integration playbook](../../examples/PRODUCTION_INTEGRATION.md)
|
|
41
|
+
for the cross-framework handoff checklist and the
|
|
42
|
+
[performance evidence guide](../performance-evidence.md) when publishing
|
|
43
|
+
latency or throughput results.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Agno integration
|
|
2
|
+
|
|
3
|
+
Attach AgenticDome centrally after constructing an Agno Agent or Team and
|
|
4
|
+
before its first run. Secure local tools explicitly, especially tools that
|
|
5
|
+
read protected data, mutate state or call an external service.
|
|
6
|
+
|
|
7
|
+
## Try it without an account
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install "agenticdome-python-sdk[agno]"
|
|
11
|
+
export AGENTICDOME_MODE=local_sim
|
|
12
|
+
agenticdome-demo --framework agno --scenario both
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Attach in production
|
|
16
|
+
|
|
17
|
+
Configure the assigned runtime, and make sure simulation is not inherited by
|
|
18
|
+
the production process:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
unset AGENTICDOME_MODE
|
|
22
|
+
export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example.com"
|
|
23
|
+
export AGENTICDOME_API_KEY="your-runtime-sdk-key"
|
|
24
|
+
export AGENTICDOME_TENANT_ID="your-tenant-id"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
This factory receives the application-owned model and CRM operation explicitly,
|
|
28
|
+
defines the secured tool before registration, then attaches hooks before the
|
|
29
|
+
agent's first run:
|
|
30
|
+
|
|
31
|
+
```python
|
|
32
|
+
from typing import Any, Callable, Tuple
|
|
33
|
+
|
|
34
|
+
from agno.agent import Agent
|
|
35
|
+
from agenticdome_sdk.agno import AgenticDomeAgnoFirewall
|
|
36
|
+
|
|
37
|
+
def build_secured_agent(
|
|
38
|
+
*,
|
|
39
|
+
model: Any,
|
|
40
|
+
crm_lookup: Callable[[str], Any],
|
|
41
|
+
) -> Tuple[Any, AgenticDomeAgnoFirewall]:
|
|
42
|
+
firewall = AgenticDomeAgnoFirewall()
|
|
43
|
+
|
|
44
|
+
@firewall.secure_tool(
|
|
45
|
+
tool_name="crm.customer.read",
|
|
46
|
+
tool_platform="crm",
|
|
47
|
+
)
|
|
48
|
+
def read_customer(agent_context: Any, customer_id: str) -> Any:
|
|
49
|
+
return crm_lookup(customer_id)
|
|
50
|
+
|
|
51
|
+
agent = Agent(name="support-agent", model=model, tools=[read_customer])
|
|
52
|
+
firewall.attach_firewall(agent)
|
|
53
|
+
return agent, firewall
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Use `create_hook_bundle()`, `create_middleware()` or `create_plugin()` when the
|
|
57
|
+
selected Agno assembly style expects those objects. Ensure components created
|
|
58
|
+
later by factories receive the same attachment.
|
|
59
|
+
|
|
60
|
+
See the [Agno API guide](../../README.md#agno) for Agent/Team hooks, plugins,
|
|
61
|
+
secured tools, delegation, retrieval and streaming examples.
|
|
62
|
+
|
|
63
|
+
## Launch checks
|
|
64
|
+
|
|
65
|
+
- The central Agent/Team/Workflow factory performs the attachment once.
|
|
66
|
+
- Components dynamically created after startup are also attached.
|
|
67
|
+
- Tool hooks execute sanitized arguments and review returned values.
|
|
68
|
+
- Retrieved content is sanitized before it enters model context.
|
|
69
|
+
- Specialist delegation is verified at the specialist's execution boundary.
|
|
70
|
+
|
|
71
|
+
An unattached component or raw tool remains outside SDK protection.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Microsoft AutoGen integration
|
|
2
|
+
|
|
3
|
+
AgenticDome supports current AgentChat/Core applications and documented legacy
|
|
4
|
+
`ConversableAgent` deployments. For new Microsoft projects, evaluate Microsoft
|
|
5
|
+
Agent Framework while retaining this integration for existing AutoGen estates.
|
|
6
|
+
|
|
7
|
+
## Try it without an account
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install "agenticdome-python-sdk[autogen]"
|
|
11
|
+
export AGENTICDOME_MODE=local_sim
|
|
12
|
+
agenticdome-demo --framework autogen --scenario both
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Attach in production
|
|
16
|
+
|
|
17
|
+
Configure the assigned runtime first:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
unset AGENTICDOME_MODE
|
|
21
|
+
export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example.com"
|
|
22
|
+
export AGENTICDOME_API_KEY="your-runtime-sdk-key"
|
|
23
|
+
export AGENTICDOME_TENANT_ID="your-tenant-id"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Pass the application-owned team and task into an async boundary rather than
|
|
27
|
+
copying a top-level `await` statement:
|
|
28
|
+
|
|
29
|
+
```python
|
|
30
|
+
from typing import Any
|
|
31
|
+
|
|
32
|
+
from agenticdome_sdk.autogen import AgenticDomeAutoGenFirewall
|
|
33
|
+
|
|
34
|
+
async def run_secured_team(*, team: Any, user_prompt: str) -> Any:
|
|
35
|
+
firewall = AgenticDomeAutoGenFirewall()
|
|
36
|
+
secure_team = firewall.wrap_team(
|
|
37
|
+
team,
|
|
38
|
+
session_id="stable-session-id",
|
|
39
|
+
agent_id="operations-team",
|
|
40
|
+
)
|
|
41
|
+
return await secure_team.run(task=user_prompt)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
For AutoGen Core, install `create_intervention_handler(...)` when constructing
|
|
45
|
+
the runtime. For legacy deployments, use `attach_conversable_agent(...)` and
|
|
46
|
+
the dependency-light base SDK. In every variant, wrap local side-effecting
|
|
47
|
+
handlers with `wrap_tool_handler(...)`.
|
|
48
|
+
|
|
49
|
+
See the [AutoGen API guide](../../README.md#microsoft-autogen) for AgentChat,
|
|
50
|
+
Core intervention, termination/freeze, legacy and tool examples.
|
|
51
|
+
|
|
52
|
+
## Launch checks
|
|
53
|
+
|
|
54
|
+
- Application code invokes the secured team proxy, not the original team.
|
|
55
|
+
- Core runtimes include the intervention handler before startup.
|
|
56
|
+
- Session freeze/denial is terminal until an authorized resolution.
|
|
57
|
+
- Local tools cannot be reached through an unwrapped registration path.
|
|
58
|
+
- The selected AutoGen generation is inside its certified dependency range.
|
|
59
|
+
|
|
60
|
+
Conversation screening alone does not authorize the eventual tool execution.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# AWS Bedrock integration
|
|
2
|
+
|
|
3
|
+
Replace direct application-owned Bedrock Runtime/Agent calls with the matching
|
|
4
|
+
secure method. Separately wrap local tool-use handlers, action-group Lambda
|
|
5
|
+
handlers and knowledge-base retrieval results.
|
|
6
|
+
|
|
7
|
+
## Try it without an account
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install "agenticdome-python-sdk[bedrock]"
|
|
11
|
+
export AGENTICDOME_MODE=local_sim
|
|
12
|
+
agenticdome-demo --framework bedrock --scenario both
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Attach in production
|
|
16
|
+
|
|
17
|
+
Configure the assigned runtime first:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
unset AGENTICDOME_MODE
|
|
21
|
+
export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example.com"
|
|
22
|
+
export AGENTICDOME_API_KEY="your-runtime-sdk-key"
|
|
23
|
+
export AGENTICDOME_TENANT_ID="your-tenant-id"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Create the application-owned boto3 client in your AWS bootstrap, then pass it
|
|
27
|
+
and the real request into this async boundary:
|
|
28
|
+
|
|
29
|
+
```python
|
|
30
|
+
from typing import Any, Dict, List
|
|
31
|
+
|
|
32
|
+
from agenticdome_sdk.aws_bedrock import AgenticDomeAWSBedrockFirewall
|
|
33
|
+
|
|
34
|
+
async def converse_with_policy(
|
|
35
|
+
*,
|
|
36
|
+
bedrock_runtime_client: Any,
|
|
37
|
+
model_id: str,
|
|
38
|
+
messages: List[Dict[str, Any]],
|
|
39
|
+
) -> Any:
|
|
40
|
+
firewall = AgenticDomeAWSBedrockFirewall()
|
|
41
|
+
return await firewall.converse_securely(
|
|
42
|
+
bedrock_runtime_client=bedrock_runtime_client,
|
|
43
|
+
model_id=model_id,
|
|
44
|
+
messages=messages,
|
|
45
|
+
agent_id="support-agent",
|
|
46
|
+
session_id="stable-session-id",
|
|
47
|
+
)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Use the corresponding secure methods for streaming, `InvokeModel` and Bedrock
|
|
51
|
+
Agents. Use `wrap_tool_handler(...)`, `secure_tool(...)`, and
|
|
52
|
+
`wrap_action_group_lambda(...)` at local execution boundaries.
|
|
53
|
+
|
|
54
|
+
See the [AWS Bedrock API guide](../../README.md#aws-bedrock) for Converse,
|
|
55
|
+
InvokeModel, streaming, Agents, action groups, tools, retrieval and handoffs.
|
|
56
|
+
|
|
57
|
+
## Launch checks
|
|
58
|
+
|
|
59
|
+
- No production path calls boto3 directly for a protected model operation.
|
|
60
|
+
- Local tool-use and action-group handlers are independently authorized.
|
|
61
|
+
- Streamed events and final responses are reviewed before delivery.
|
|
62
|
+
- AWS principal, account, region and resource identifiers are propagated.
|
|
63
|
+
- Retrieved knowledge-base nodes are sanitized before planner reuse.
|
|
64
|
+
|
|
65
|
+
The SDK protects calls and content at the application boundary; it cannot
|
|
66
|
+
instrument execution occurring solely inside AWS-managed services.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Anthropic Claude Agent SDK integration
|
|
2
|
+
|
|
3
|
+
Install hooks on the exact `ClaudeAgentOptions` instance passed to the SDK,
|
|
4
|
+
then consume the secured query/client iterator so returned messages cannot
|
|
5
|
+
bypass output review. Secure locally exposed SDK tools separately.
|
|
6
|
+
|
|
7
|
+
## Try it without an account
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install "agenticdome-python-sdk[claude]"
|
|
11
|
+
export AGENTICDOME_MODE=local_sim
|
|
12
|
+
agenticdome-demo --framework claude --scenario both
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Attach in production
|
|
16
|
+
|
|
17
|
+
Configure the assigned runtime first:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
unset AGENTICDOME_MODE
|
|
21
|
+
export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example.com"
|
|
22
|
+
export AGENTICDOME_API_KEY="your-runtime-sdk-key"
|
|
23
|
+
export AGENTICDOME_TENANT_ID="your-tenant-id"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Pass the application-owned options and message consumer explicitly. Keeping
|
|
27
|
+
the async iterator inside a function makes the example valid Python:
|
|
28
|
+
|
|
29
|
+
```python
|
|
30
|
+
from typing import Any, Callable
|
|
31
|
+
|
|
32
|
+
from agenticdome_sdk.claude import AgenticDomeClaudeFirewall
|
|
33
|
+
|
|
34
|
+
async def run_secured_query(
|
|
35
|
+
*,
|
|
36
|
+
options: Any,
|
|
37
|
+
user_prompt: str,
|
|
38
|
+
consume: Callable[[Any], None],
|
|
39
|
+
) -> None:
|
|
40
|
+
firewall = AgenticDomeClaudeFirewall()
|
|
41
|
+
secured_options = firewall.install_on_options(options)
|
|
42
|
+
|
|
43
|
+
async for message in firewall.secure_query(
|
|
44
|
+
prompt=user_prompt,
|
|
45
|
+
options=secured_options,
|
|
46
|
+
session_id="stable-session-id",
|
|
47
|
+
agent_id="support-agent",
|
|
48
|
+
):
|
|
49
|
+
consume(message)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Use `run_client_securely(...)` for a constructed SDK client and
|
|
53
|
+
`secure_sdk_tool(...)` for local SDK MCP tools. Every query/client path must use
|
|
54
|
+
the options object containing the installed hooks.
|
|
55
|
+
|
|
56
|
+
See the [Claude Agent SDK API guide](../../README.md#claude-agent-sdk) for hook
|
|
57
|
+
composition, query/client, tool output, delegation and streaming behavior.
|
|
58
|
+
|
|
59
|
+
## Launch checks
|
|
60
|
+
|
|
61
|
+
- The secured options instance is the one supplied to every production client.
|
|
62
|
+
- Pre-tool denials prevent the SDK tool implementation from running.
|
|
63
|
+
- Tool results and final messages pass through the secured iterator.
|
|
64
|
+
- Decision context is bound and consumed at delegated local execution.
|
|
65
|
+
- Alternate query/client construction paths are removed or equivalently wrapped.
|
|
66
|
+
|
|
67
|
+
Hooks cannot intercept an unrelated client created with different options.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# CrewAI integration
|
|
2
|
+
|
|
3
|
+
Use this integration when CrewAI owns the agent/crew lifecycle and local tool
|
|
4
|
+
execution. AgenticDome screens model input, authorizes tool and delegation
|
|
5
|
+
boundaries, and reviews tool/final output routed through the installed hooks.
|
|
6
|
+
|
|
7
|
+
## Try it without an account
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install "agenticdome-python-sdk[crewai]"
|
|
11
|
+
export AGENTICDOME_MODE=local_sim
|
|
12
|
+
agenticdome-demo --framework crewai --scenario both
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
This prints one allowed and one blocked decision without importing CrewAI,
|
|
16
|
+
contacting a sidecar or executing either demonstration tool.
|
|
17
|
+
|
|
18
|
+
## Attach in production
|
|
19
|
+
|
|
20
|
+
Configure the assigned runtime sidecar URL, Runtime/SDK key and matching tenant
|
|
21
|
+
ID, and make sure simulation is not inherited by the production process:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
unset AGENTICDOME_MODE
|
|
25
|
+
export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example.com"
|
|
26
|
+
export AGENTICDOME_API_KEY="your-runtime-sdk-key"
|
|
27
|
+
export AGENTICDOME_TENANT_ID="your-tenant-id"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Then import the adapter in application bootstrap **before** constructing the
|
|
31
|
+
application-owned agents or crews:
|
|
32
|
+
|
|
33
|
+
```python
|
|
34
|
+
import agenticdome_sdk.crewai # registers the process-wide hooks
|
|
35
|
+
|
|
36
|
+
from crewai import Crew
|
|
37
|
+
|
|
38
|
+
def build_secured_crew(*, agents: list, tasks: list) -> Crew:
|
|
39
|
+
# Agents and tasks are constructed by the application after hooks load.
|
|
40
|
+
return Crew(agents=agents, tasks=tasks)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
For explicit lifecycle control, instantiate `AgenticDomeCrewAIFirewall` and
|
|
44
|
+
call `attach(crew)`. Protect every high-impact local tool with
|
|
45
|
+
`@firewall.secure_tool(...)`; register the wrapped callable rather than its raw
|
|
46
|
+
implementation. Use the sanitized arguments supplied by the wrapper.
|
|
47
|
+
|
|
48
|
+
The complete, tested code patterns for scoped attachment, secured tools,
|
|
49
|
+
delegation, streaming output and multi-worker state are in the
|
|
50
|
+
[CrewAI API guide](../../README.md#crewai).
|
|
51
|
+
|
|
52
|
+
## Launch checks
|
|
53
|
+
|
|
54
|
+
- Hooks load before any `Crew` executes.
|
|
55
|
+
- A blocked tool never reaches its function body.
|
|
56
|
+
- Allowed and sanitized arguments are the values the real function receives.
|
|
57
|
+
- Manager-to-specialist execution is verified at the specialist boundary.
|
|
58
|
+
- Every worker uses stable session identity; shared delegation uses Redis.
|
|
59
|
+
- A sidecar outage produces the deliberately selected fail posture.
|
|
60
|
+
|
|
61
|
+
AgenticDome cannot protect a raw tool or alternate execution route that bypasses
|
|
62
|
+
the hooks/wrapper. Offline simulation is not tenant assurance.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Custom Python integration
|
|
2
|
+
|
|
3
|
+
Use the core client when your application owns the runtime loop: API handlers,
|
|
4
|
+
Celery workers, routers, bespoke agents, tool executors or custom gateways.
|
|
5
|
+
Make the policy check part of the same function that owns execution.
|
|
6
|
+
|
|
7
|
+
## Try it without an account
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install agenticdome-python-sdk
|
|
11
|
+
export AGENTICDOME_MODE=local_sim
|
|
12
|
+
agenticdome-demo --framework custom-python --scenario both
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Attach in production
|
|
16
|
+
|
|
17
|
+
Configure the assigned runtime first. The executor remains application-owned:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
unset AGENTICDOME_MODE
|
|
21
|
+
export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example.com"
|
|
22
|
+
export AGENTICDOME_API_KEY="your-runtime-sdk-key"
|
|
23
|
+
export AGENTICDOME_TENANT_ID="your-tenant-id"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
from typing import Any, Callable, Dict
|
|
28
|
+
|
|
29
|
+
from agenticdome_sdk import AgentGuardClient
|
|
30
|
+
|
|
31
|
+
def secured_customer_lookup(
|
|
32
|
+
*,
|
|
33
|
+
customer_id: str,
|
|
34
|
+
execute_customer_lookup: Callable[[str], Any],
|
|
35
|
+
) -> Dict[str, Any]:
|
|
36
|
+
client = AgentGuardClient()
|
|
37
|
+
decision = client.guardrail_validate(
|
|
38
|
+
text="Support agent requests a customer lookup.",
|
|
39
|
+
agent_id="support-agent",
|
|
40
|
+
session_id="stable-session-id",
|
|
41
|
+
direction="outbound",
|
|
42
|
+
platform="python",
|
|
43
|
+
tool_name="crm.customer.read",
|
|
44
|
+
tool_args={"customer_id": customer_id},
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
if decision.get("verdict") == "BLOCKED":
|
|
48
|
+
raise PermissionError(decision.get("reason", "Action blocked"))
|
|
49
|
+
|
|
50
|
+
effective_args = decision.get("sanitized_tool_args") or {"customer_id": customer_id}
|
|
51
|
+
raw_output = execute_customer_lookup(str(effective_args["customer_id"]))
|
|
52
|
+
return client.mesh_validate(
|
|
53
|
+
agent_id="support-agent",
|
|
54
|
+
session_id="stable-session-id",
|
|
55
|
+
direction="output",
|
|
56
|
+
platform="python",
|
|
57
|
+
text=str(raw_output),
|
|
58
|
+
)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Use the A2A authorization and verification methods when a manager delegates a
|
|
62
|
+
sensitive tool to another agent. For high-impact outbound HTTP execution, use
|
|
63
|
+
the documented broker receipt and enforcement headers at the last responsible
|
|
64
|
+
moment.
|
|
65
|
+
|
|
66
|
+
See the [core client API guide](../../README.md#core-sdk-client-custom-runtimes)
|
|
67
|
+
for prompt, tool, A2A, DLP, incident and brokered-execution examples.
|
|
68
|
+
|
|
69
|
+
## Launch checks
|
|
70
|
+
|
|
71
|
+
- The real function is unreachable before an allowed decision.
|
|
72
|
+
- Sanitized arguments/text replace originals when returned.
|
|
73
|
+
- Output is reviewed before return, storage, logging or planner reuse.
|
|
74
|
+
- Delegation authorization is verified at the target execution boundary.
|
|
75
|
+
- Fail-closed behavior is tested against an unavailable sidecar.
|
|
76
|
+
|
|
77
|
+
A check performed in an unrelated helper does not protect another raw executor
|
|
78
|
+
path. Keep the decision and execution boundary structurally adjacent.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Google ADK integration
|
|
2
|
+
|
|
3
|
+
Register AgenticDome callbacks when constructing each `LlmAgent`, attach them to
|
|
4
|
+
an existing agent, or register the plugin helper centrally. Explicitly secure
|
|
5
|
+
local tools that can cause a side effect.
|
|
6
|
+
|
|
7
|
+
## Try it without an account
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install "agenticdome-python-sdk[google-adk]"
|
|
11
|
+
export AGENTICDOME_MODE=local_sim
|
|
12
|
+
agenticdome-demo --framework google-adk --scenario both
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Attach in production
|
|
16
|
+
|
|
17
|
+
Configure the assigned runtime first:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
unset AGENTICDOME_MODE
|
|
21
|
+
export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example.com"
|
|
22
|
+
export AGENTICDOME_API_KEY="your-runtime-sdk-key"
|
|
23
|
+
export AGENTICDOME_TENANT_ID="your-tenant-id"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Pass the application-owned model into the same factory that constructs every
|
|
27
|
+
protected ADK agent:
|
|
28
|
+
|
|
29
|
+
```python
|
|
30
|
+
from typing import Any
|
|
31
|
+
|
|
32
|
+
from google.adk.agents import LlmAgent
|
|
33
|
+
from agenticdome_sdk.google_adk import AgenticDomeGoogleADKFirewall
|
|
34
|
+
|
|
35
|
+
def build_secured_agent(*, model: Any) -> LlmAgent:
|
|
36
|
+
firewall = AgenticDomeGoogleADKFirewall()
|
|
37
|
+
return LlmAgent(
|
|
38
|
+
name="support-agent",
|
|
39
|
+
model=model,
|
|
40
|
+
instruction="Help support users safely.",
|
|
41
|
+
**firewall.build_callback_kwargs(),
|
|
42
|
+
)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Use `install_on_agent(...)` for an existing agent, `create_plugin()` for
|
|
46
|
+
central registration and `wrap_tool_handler(...)`/`secure_tool(...)` for local
|
|
47
|
+
tools. Prefer async callbacks in async ADK runtimes.
|
|
48
|
+
|
|
49
|
+
See the [Google ADK API guide](../../README.md#google-adk) for callbacks,
|
|
50
|
+
plugins, tools, handoffs, schema validation and streaming examples.
|
|
51
|
+
|
|
52
|
+
## Launch checks
|
|
53
|
+
|
|
54
|
+
- Every production agent receives callbacks from the central factory.
|
|
55
|
+
- Tool handlers use sanitized arguments before local execution.
|
|
56
|
+
- Stable ADK session/run/trace identifiers are available to every callback.
|
|
57
|
+
- Google Cloud principal and project context is passed when authenticated.
|
|
58
|
+
- Delegation across workers uses shared, one-time verification state.
|
|
59
|
+
|
|
60
|
+
Configuration alone does not register ADK callbacks, and remote tools remain
|
|
61
|
+
outside the local process boundary.
|