agenticdome-python-sdk 1.2.12__tar.gz → 1.2.13__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.13}/PKG-INFO +5 -4
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/README.md +3 -3
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_python_sdk.egg-info/PKG-INFO +5 -4
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_python_sdk.egg-info/SOURCES.txt +17 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/README.md +43 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/agno.md +46 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/autogen.md +45 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/aws-bedrock.md +49 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/claude-agent-sdk.md +47 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/crewai.md +51 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/custom-python.md +62 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/google-adk.md +46 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/langgraph.md +49 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/llamaindex.md +52 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/microsoft-agent-framework.md +47 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/microsoft-ai-foundry.md +48 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/openai-agents.md +52 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/pydanticai.md +51 -0
- agenticdome_python_sdk-1.2.13/docs/frameworks/smolagents.md +46 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/docs/mcp-integration.md +7 -20
- agenticdome_python_sdk-1.2.13/docs/performance-evidence.md +43 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/PRODUCTION_INTEGRATION.md +15 -16
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/README.md +15 -15
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/pyproject.toml +2 -1
- agenticdome_python_sdk-1.2.13/tests/test_framework_guides.py +124 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_local_simulation.py +15 -15
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/CONTRIBUTING.md +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/LICENSE +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/MANIFEST.in +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/NOTICE +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/SECURITY.md +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_python_sdk.egg-info/dependency_links.txt +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_python_sdk.egg-info/entry_points.txt +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_python_sdk.egg-info/requires.txt +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_python_sdk.egg-info/top_level.txt +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/__init__.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/_framework_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/_mode.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/agno.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/autogen.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/aws_bedrock.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/claude.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/client.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/crewai.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/demo.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/google_adk.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/identity.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/langgraph.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/llamaindex.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/mcp_host.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/microsoft_agent_framework.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/microsoft_ai_foundry.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/openai_agents.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/proof.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/pydantic.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/simulation.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/agenticdome_sdk/smolagents.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/attack_demo.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/crewai_agenticdome_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/README.md +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/_shared.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/agno.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/autogen.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/aws_bedrock.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/claude_agent_sdk.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/crewai.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/custom_python.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/google_adk.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/langgraph.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/llamaindex.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/mcp.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/microsoft_agent_framework.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/microsoft_ai_foundry.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/openai_agents.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/pydanticai.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/frameworks/smolagents.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/langgraph_agenticdome_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/local_simulation_gallery.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/examples/mcp_gateway_action_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/setup.cfg +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/setup.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_agno_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_attack_demo.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_autogen_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_aws_bedrock_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_claude_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_client.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_crewai_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_execution_broker.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_google_adk_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_identity_context.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_langgraph_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_llamaindex_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_mcp_host_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_mcp_launch_example.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_microsoft_agent_framework_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_microsoft_ai_foundry_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_openai_agents_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/tests/test_pydanticai_integration.py +0 -0
- {agenticdome_python_sdk-1.2.12 → agenticdome_python_sdk-1.2.13}/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.13
|
|
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.13
|
|
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,46 @@
|
|
|
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
|
+
```python
|
|
18
|
+
from agenticdome_sdk.agno import AgenticDomeAgnoFirewall
|
|
19
|
+
|
|
20
|
+
firewall = AgenticDomeAgnoFirewall()
|
|
21
|
+
agent = firewall.attach_firewall(agent)
|
|
22
|
+
|
|
23
|
+
@firewall.secure_tool(
|
|
24
|
+
tool_name="crm.customer.read",
|
|
25
|
+
tool_platform="crm",
|
|
26
|
+
)
|
|
27
|
+
def read_customer(agent, customer_id: str):
|
|
28
|
+
return crm.read_customer(customer_id)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Use `create_hook_bundle()`, `create_middleware()` or `create_plugin()` when the
|
|
32
|
+
selected Agno assembly style expects those objects. Ensure components created
|
|
33
|
+
later by factories receive the same attachment.
|
|
34
|
+
|
|
35
|
+
See the [Agno API guide](../../README.md#agno) for Agent/Team hooks, plugins,
|
|
36
|
+
secured tools, delegation, retrieval and streaming examples.
|
|
37
|
+
|
|
38
|
+
## Launch checks
|
|
39
|
+
|
|
40
|
+
- The central Agent/Team/Workflow factory performs the attachment once.
|
|
41
|
+
- Components dynamically created after startup are also attached.
|
|
42
|
+
- Tool hooks execute sanitized arguments and review returned values.
|
|
43
|
+
- Retrieved content is sanitized before it enters model context.
|
|
44
|
+
- Specialist delegation is verified at the specialist's execution boundary.
|
|
45
|
+
|
|
46
|
+
An unattached component or raw tool remains outside SDK protection.
|
|
@@ -0,0 +1,45 @@
|
|
|
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
|
+
```python
|
|
18
|
+
from agenticdome_sdk.autogen import AgenticDomeAutoGenFirewall
|
|
19
|
+
|
|
20
|
+
firewall = AgenticDomeAutoGenFirewall()
|
|
21
|
+
secure_team = firewall.wrap_team(
|
|
22
|
+
team,
|
|
23
|
+
session_id="stable-session-id",
|
|
24
|
+
agent_id="operations-team",
|
|
25
|
+
)
|
|
26
|
+
result = await secure_team.run(task=user_prompt)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
For AutoGen Core, install `create_intervention_handler(...)` when constructing
|
|
30
|
+
the runtime. For legacy deployments, use `attach_conversable_agent(...)` and
|
|
31
|
+
the dependency-light base SDK. In every variant, wrap local side-effecting
|
|
32
|
+
handlers with `wrap_tool_handler(...)`.
|
|
33
|
+
|
|
34
|
+
See the [AutoGen API guide](../../README.md#microsoft-autogen) for AgentChat,
|
|
35
|
+
Core intervention, termination/freeze, legacy and tool examples.
|
|
36
|
+
|
|
37
|
+
## Launch checks
|
|
38
|
+
|
|
39
|
+
- Application code invokes the secured team proxy, not the original team.
|
|
40
|
+
- Core runtimes include the intervention handler before startup.
|
|
41
|
+
- Session freeze/denial is terminal until an authorized resolution.
|
|
42
|
+
- Local tools cannot be reached through an unwrapped registration path.
|
|
43
|
+
- The selected AutoGen generation is inside its certified dependency range.
|
|
44
|
+
|
|
45
|
+
Conversation screening alone does not authorize the eventual tool execution.
|
|
@@ -0,0 +1,49 @@
|
|
|
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
|
+
```python
|
|
18
|
+
import boto3
|
|
19
|
+
from agenticdome_sdk.aws_bedrock import AgenticDomeAWSBedrockFirewall
|
|
20
|
+
|
|
21
|
+
bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")
|
|
22
|
+
firewall = AgenticDomeAWSBedrockFirewall()
|
|
23
|
+
|
|
24
|
+
response = await firewall.converse_securely(
|
|
25
|
+
bedrock_runtime_client=bedrock,
|
|
26
|
+
model_id=model_id,
|
|
27
|
+
messages=messages,
|
|
28
|
+
agent_id="support-agent",
|
|
29
|
+
session_id="stable-session-id",
|
|
30
|
+
)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Use the corresponding secure methods for streaming, `InvokeModel` and Bedrock
|
|
34
|
+
Agents. Use `wrap_tool_handler(...)`, `secure_tool(...)`, and
|
|
35
|
+
`wrap_action_group_lambda(...)` at local execution boundaries.
|
|
36
|
+
|
|
37
|
+
See the [AWS Bedrock API guide](../../README.md#aws-bedrock) for Converse,
|
|
38
|
+
InvokeModel, streaming, Agents, action groups, tools, retrieval and handoffs.
|
|
39
|
+
|
|
40
|
+
## Launch checks
|
|
41
|
+
|
|
42
|
+
- No production path calls boto3 directly for a protected model operation.
|
|
43
|
+
- Local tool-use and action-group handlers are independently authorized.
|
|
44
|
+
- Streamed events and final responses are reviewed before delivery.
|
|
45
|
+
- AWS principal, account, region and resource identifiers are propagated.
|
|
46
|
+
- Retrieved knowledge-base nodes are sanitized before planner reuse.
|
|
47
|
+
|
|
48
|
+
The SDK protects calls and content at the application boundary; it cannot
|
|
49
|
+
instrument execution occurring solely inside AWS-managed services.
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
```python
|
|
18
|
+
from agenticdome_sdk.claude import AgenticDomeClaudeFirewall
|
|
19
|
+
|
|
20
|
+
firewall = AgenticDomeClaudeFirewall()
|
|
21
|
+
options = firewall.install_on_options(options)
|
|
22
|
+
|
|
23
|
+
async for message in firewall.secure_query(
|
|
24
|
+
prompt=user_prompt,
|
|
25
|
+
options=options,
|
|
26
|
+
session_id="stable-session-id",
|
|
27
|
+
agent_id="support-agent",
|
|
28
|
+
):
|
|
29
|
+
consume(message)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Use `run_client_securely(...)` for a constructed SDK client and
|
|
33
|
+
`secure_sdk_tool(...)` for local SDK MCP tools. Every query/client path must use
|
|
34
|
+
the options object containing the installed hooks.
|
|
35
|
+
|
|
36
|
+
See the [Claude Agent SDK API guide](../../README.md#claude-agent-sdk) for hook
|
|
37
|
+
composition, query/client, tool output, delegation and streaming behavior.
|
|
38
|
+
|
|
39
|
+
## Launch checks
|
|
40
|
+
|
|
41
|
+
- The secured options instance is the one supplied to every production client.
|
|
42
|
+
- Pre-tool denials prevent the SDK tool implementation from running.
|
|
43
|
+
- Tool results and final messages pass through the secured iterator.
|
|
44
|
+
- Decision context is bound and consumed at delegated local execution.
|
|
45
|
+
- Alternate query/client construction paths are removed or equivalently wrapped.
|
|
46
|
+
|
|
47
|
+
Hooks cannot intercept an unrelated client created with different options.
|
|
@@ -0,0 +1,51 @@
|
|
|
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, then import the adapter in application bootstrap **before** constructing
|
|
22
|
+
agents or crews:
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
import agenticdome_sdk.crewai # registers the process-wide hooks
|
|
26
|
+
|
|
27
|
+
from crewai import Agent, Crew, Task
|
|
28
|
+
|
|
29
|
+
# Construct agents, tasks and crews only after the security hooks are loaded.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
For explicit lifecycle control, instantiate `AgenticDomeCrewAIFirewall` and
|
|
33
|
+
call `attach(crew)`. Protect every high-impact local tool with
|
|
34
|
+
`@firewall.secure_tool(...)`; register the wrapped callable rather than its raw
|
|
35
|
+
implementation. Use the sanitized arguments supplied by the wrapper.
|
|
36
|
+
|
|
37
|
+
The complete, tested code patterns for scoped attachment, secured tools,
|
|
38
|
+
delegation, streaming output and multi-worker state are in the
|
|
39
|
+
[CrewAI API guide](../../README.md#crewai).
|
|
40
|
+
|
|
41
|
+
## Launch checks
|
|
42
|
+
|
|
43
|
+
- Hooks load before any `Crew` executes.
|
|
44
|
+
- A blocked tool never reaches its function body.
|
|
45
|
+
- Allowed and sanitized arguments are the values the real function receives.
|
|
46
|
+
- Manager-to-specialist execution is verified at the specialist boundary.
|
|
47
|
+
- Every worker uses stable session identity; shared delegation uses Redis.
|
|
48
|
+
- A sidecar outage produces the deliberately selected fail posture.
|
|
49
|
+
|
|
50
|
+
AgenticDome cannot protect a raw tool or alternate execution route that bypasses
|
|
51
|
+
the hooks/wrapper. Offline simulation is not tenant assurance.
|
|
@@ -0,0 +1,62 @@
|
|
|
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
|
+
```python
|
|
18
|
+
from agenticdome_sdk import AgentGuardClient
|
|
19
|
+
|
|
20
|
+
client = AgentGuardClient()
|
|
21
|
+
decision = client.guardrail_validate(
|
|
22
|
+
text="Support agent requests a customer lookup.",
|
|
23
|
+
agent_id="support-agent",
|
|
24
|
+
session_id="stable-session-id",
|
|
25
|
+
direction="outbound",
|
|
26
|
+
platform="python",
|
|
27
|
+
tool_name="crm.customer.read",
|
|
28
|
+
tool_args={"customer_id": customer_id},
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
if decision.get("verdict") == "BLOCKED":
|
|
32
|
+
raise PermissionError(decision.get("reason", "Action blocked"))
|
|
33
|
+
|
|
34
|
+
# Execute only after the decision and use sanitized arguments when returned.
|
|
35
|
+
raw_output = execute_customer_lookup(customer_id)
|
|
36
|
+
safe_output = client.mesh_validate(
|
|
37
|
+
agent_id="support-agent",
|
|
38
|
+
session_id="stable-session-id",
|
|
39
|
+
direction="output",
|
|
40
|
+
platform="python",
|
|
41
|
+
text=str(raw_output),
|
|
42
|
+
)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Use the A2A authorization and verification methods when a manager delegates a
|
|
46
|
+
sensitive tool to another agent. For high-impact outbound HTTP execution, use
|
|
47
|
+
the documented broker receipt and enforcement headers at the last responsible
|
|
48
|
+
moment.
|
|
49
|
+
|
|
50
|
+
See the [core client API guide](../../README.md#core-sdk-client-custom-runtimes)
|
|
51
|
+
for prompt, tool, A2A, DLP, incident and brokered-execution examples.
|
|
52
|
+
|
|
53
|
+
## Launch checks
|
|
54
|
+
|
|
55
|
+
- The real function is unreachable before an allowed decision.
|
|
56
|
+
- Sanitized arguments/text replace originals when returned.
|
|
57
|
+
- Output is reviewed before return, storage, logging or planner reuse.
|
|
58
|
+
- Delegation authorization is verified at the target execution boundary.
|
|
59
|
+
- Fail-closed behavior is tested against an unavailable sidecar.
|
|
60
|
+
|
|
61
|
+
A check performed in an unrelated helper does not protect another raw executor
|
|
62
|
+
path. Keep the decision and execution boundary structurally adjacent.
|
|
@@ -0,0 +1,46 @@
|
|
|
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
|
+
```python
|
|
18
|
+
from google.adk.agents import LlmAgent
|
|
19
|
+
from agenticdome_sdk.google_adk import AgenticDomeGoogleADKFirewall
|
|
20
|
+
|
|
21
|
+
firewall = AgenticDomeGoogleADKFirewall()
|
|
22
|
+
agent = LlmAgent(
|
|
23
|
+
name="support-agent",
|
|
24
|
+
model="gemini-2.5-flash",
|
|
25
|
+
instruction="Help support users safely.",
|
|
26
|
+
**firewall.build_callback_kwargs(),
|
|
27
|
+
)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Use `install_on_agent(...)` for an existing agent, `create_plugin()` for
|
|
31
|
+
central registration and `wrap_tool_handler(...)`/`secure_tool(...)` for local
|
|
32
|
+
tools. Prefer async callbacks in async ADK runtimes.
|
|
33
|
+
|
|
34
|
+
See the [Google ADK API guide](../../README.md#google-adk) for callbacks,
|
|
35
|
+
plugins, tools, handoffs, schema validation and streaming examples.
|
|
36
|
+
|
|
37
|
+
## Launch checks
|
|
38
|
+
|
|
39
|
+
- Every production agent receives callbacks from the central factory.
|
|
40
|
+
- Tool handlers use sanitized arguments before local execution.
|
|
41
|
+
- Stable ADK session/run/trace identifiers are available to every callback.
|
|
42
|
+
- Google Cloud principal and project context is passed when authenticated.
|
|
43
|
+
- Delegation across workers uses shared, one-time verification state.
|
|
44
|
+
|
|
45
|
+
Configuration alone does not register ADK callbacks, and remote tools remain
|
|
46
|
+
outside the local process boundary.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# LangGraph and LangChain integration
|
|
2
|
+
|
|
3
|
+
LangGraph is graph-native: make security nodes or wrappers part of the graph
|
|
4
|
+
before compilation. For LangChain `create_agent`, install AgenticDome as
|
|
5
|
+
middleware and secure any local side-effecting tools separately.
|
|
6
|
+
|
|
7
|
+
## Try it without an account
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install "agenticdome-python-sdk[langgraph]"
|
|
11
|
+
export AGENTICDOME_MODE=local_sim
|
|
12
|
+
agenticdome-demo --framework langgraph --scenario both
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Attach in production
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
from langgraph.graph import START, StateGraph
|
|
19
|
+
from agenticdome_sdk.langgraph import AgentState, AgenticDomeLangGraphFirewall
|
|
20
|
+
|
|
21
|
+
firewall = AgenticDomeLangGraphFirewall()
|
|
22
|
+
graph = StateGraph(AgentState)
|
|
23
|
+
graph.add_node("input_security", firewall.input_node(agent_id="support"))
|
|
24
|
+
graph.add_node("agent", agent_node)
|
|
25
|
+
graph.add_node("tool_security", firewall.transition_node(agent_id="support"))
|
|
26
|
+
graph.add_node("tools", tool_node)
|
|
27
|
+
graph.add_node("output_security", firewall.output_node(agent_id="support"))
|
|
28
|
+
graph.add_edge(START, "input_security")
|
|
29
|
+
# Connect input_security -> agent -> tool_security -> tools -> output_security.
|
|
30
|
+
compiled = graph.compile()
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Alternatively use `wrap_agent_node()`, `wrap_tool_node()`, or
|
|
34
|
+
`as_langchain_middleware(...)`. Blocked state must route to a non-executing
|
|
35
|
+
security node; it must never fall through to the tool node.
|
|
36
|
+
|
|
37
|
+
See the [LangGraph API guide](../../README.md#langgraph) for complete graph
|
|
38
|
+
topology, middleware, handoff, retrieval and streaming examples.
|
|
39
|
+
|
|
40
|
+
## Launch checks
|
|
41
|
+
|
|
42
|
+
- Security nodes/wrappers are present before `compile()` returns.
|
|
43
|
+
- Every path to a tool node crosses an authorization boundary.
|
|
44
|
+
- Blocked routes terminate without invoking the raw tool.
|
|
45
|
+
- Retrieval is sanitized before it becomes model context.
|
|
46
|
+
- Streaming and final output use the documented output boundary.
|
|
47
|
+
- A delegated specialist verifies the handoff before its tool executes.
|
|
48
|
+
|
|
49
|
+
An edge or node that calls a raw executor directly is outside SDK coverage.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# LlamaIndex integration
|
|
2
|
+
|
|
3
|
+
Protect both sides of a RAG application: query/tool execution and the retrieved
|
|
4
|
+
or synthesized content that is inserted into model context or returned to a
|
|
5
|
+
caller.
|
|
6
|
+
|
|
7
|
+
## Try it without an account
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install "agenticdome-python-sdk[llamaindex]"
|
|
11
|
+
export AGENTICDOME_MODE=local_sim
|
|
12
|
+
agenticdome-demo --framework llamaindex --scenario both
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Attach in production
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
from agenticdome_sdk.llamaindex import AgenticDomeLlamaIndexFirewall
|
|
19
|
+
|
|
20
|
+
firewall = AgenticDomeLlamaIndexFirewall()
|
|
21
|
+
secure_lookup = firewall.to_function_tool(
|
|
22
|
+
lookup_customer,
|
|
23
|
+
tool_name="crm.customer.read",
|
|
24
|
+
tool_platform="crm",
|
|
25
|
+
agent_id="support-agent",
|
|
26
|
+
session_id="stable-session-id",
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
secure_query_engine = firewall.wrap_query_engine(
|
|
30
|
+
query_engine,
|
|
31
|
+
agent_id="support-agent",
|
|
32
|
+
session_id="stable-session-id",
|
|
33
|
+
)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Also wrap retrievers or install the node postprocessor before retrieved text is
|
|
37
|
+
placed into a prompt. Callback handlers add visibility but do not replace hard
|
|
38
|
+
tool/query wrappers.
|
|
39
|
+
|
|
40
|
+
See the [LlamaIndex API guide](../../README.md#llamaindex) for FunctionTool,
|
|
41
|
+
query, retrieval, node postprocessor, callback and delegation examples.
|
|
42
|
+
|
|
43
|
+
## Launch checks
|
|
44
|
+
|
|
45
|
+
- Every side-effecting FunctionTool is created from a secured callable.
|
|
46
|
+
- Query engines invoked directly are wrapped or called through `run_query_securely()`.
|
|
47
|
+
- Retrieved nodes are sanitized before model-context assembly.
|
|
48
|
+
- Final synthesized output is reviewed before return or storage.
|
|
49
|
+
- Callback visibility is not treated as the sole execution control.
|
|
50
|
+
|
|
51
|
+
Provider-native and remote tools require protection at their local request and
|
|
52
|
+
response boundary.
|