agenticdome-python-sdk 1.2.9__tar.gz → 1.2.10__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.9 → agenticdome_python_sdk-1.2.10}/MANIFEST.in +1 -0
- {agenticdome_python_sdk-1.2.9/agenticdome_python_sdk.egg-info → agenticdome_python_sdk-1.2.10}/PKG-INFO +101 -27
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/README.md +89 -15
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10/agenticdome_python_sdk.egg-info}/PKG-INFO +101 -27
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_python_sdk.egg-info/SOURCES.txt +20 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_python_sdk.egg-info/requires.txt +11 -11
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/demo.py +59 -23
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/simulation.py +16 -1
- agenticdome_python_sdk-1.2.10/examples/PRODUCTION_INTEGRATION.md +167 -0
- agenticdome_python_sdk-1.2.10/examples/README.md +107 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/README.md +13 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/_shared.py +22 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/agno.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/autogen.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/aws_bedrock.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/claude_agent_sdk.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/crewai.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/custom_python.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/google_adk.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/langgraph.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/llamaindex.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/mcp.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/microsoft_agent_framework.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/microsoft_ai_foundry.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/openai_agents.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/pydanticai.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/frameworks/smolagents.py +4 -0
- agenticdome_python_sdk-1.2.10/examples/local_simulation_gallery.py +32 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/pyproject.toml +12 -12
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_local_simulation.py +116 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/LICENSE +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_python_sdk.egg-info/dependency_links.txt +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_python_sdk.egg-info/entry_points.txt +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_python_sdk.egg-info/top_level.txt +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/__init__.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/_framework_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/_mode.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/agno.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/autogen.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/aws_bedrock.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/claude.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/client.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/crewai.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/google_adk.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/identity.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/langgraph.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/llamaindex.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/mcp_host.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/microsoft_agent_framework.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/microsoft_ai_foundry.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/openai_agents.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/proof.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/pydantic.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/agenticdome_sdk/smolagents.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/examples/attack_demo.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/examples/crewai_agenticdome_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/examples/langgraph_agenticdome_firewall.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/setup.cfg +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/setup.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_agno_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_attack_demo.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_autogen_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_aws_bedrock_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_claude_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_client.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_crewai_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_execution_broker.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_google_adk_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_identity_context.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_langgraph_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_live_tenant.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_llamaindex_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_mcp_host_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_microsoft_agent_framework_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_microsoft_ai_foundry_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_openai_agents_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_pydanticai_integration.py +0 -0
- {agenticdome_python_sdk-1.2.9 → agenticdome_python_sdk-1.2.10}/tests/test_smolagents_integration.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agenticdome-python-sdk
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.10
|
|
4
4
|
Summary: Official Python SDK for AgenticDome security guardrails, DLP, tool authorization, and multi-agent delegation enforcement.
|
|
5
5
|
Author: AgenticDome
|
|
6
6
|
License: Proprietary
|
|
@@ -34,10 +34,10 @@ Requires-Dist: redis>=4.5.0; extra == "redis"
|
|
|
34
34
|
Provides-Extra: pop
|
|
35
35
|
Requires-Dist: cryptography>=42.0.0; extra == "pop"
|
|
36
36
|
Provides-Extra: pydanticai
|
|
37
|
-
Requires-Dist: pydantic-ai<=2.27.
|
|
37
|
+
Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "pydanticai"
|
|
38
38
|
Requires-Dist: anyio>=4.0.0; extra == "pydanticai"
|
|
39
39
|
Provides-Extra: pydantic
|
|
40
|
-
Requires-Dist: pydantic-ai<=2.27.
|
|
40
|
+
Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "pydantic"
|
|
41
41
|
Requires-Dist: anyio>=4.0.0; extra == "pydantic"
|
|
42
42
|
Provides-Extra: langgraph
|
|
43
43
|
Requires-Dist: langgraph<=1.2.10,>=1.2.9; extra == "langgraph"
|
|
@@ -55,13 +55,13 @@ Requires-Dist: azure-identity==1.25.3; extra == "foundry"
|
|
|
55
55
|
Provides-Extra: agno
|
|
56
56
|
Requires-Dist: agno<=2.8.7,>=2.8.0; extra == "agno"
|
|
57
57
|
Provides-Extra: openai-agents
|
|
58
|
-
Requires-Dist: openai-agents<=0.
|
|
58
|
+
Requires-Dist: openai-agents<=0.20.0,>=0.18.3; extra == "openai-agents"
|
|
59
59
|
Provides-Extra: mcp
|
|
60
60
|
Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "mcp"
|
|
61
61
|
Provides-Extra: bedrock
|
|
62
|
-
Requires-Dist: boto3<=1.43.
|
|
62
|
+
Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "bedrock"
|
|
63
63
|
Provides-Extra: aws-bedrock
|
|
64
|
-
Requires-Dist: boto3<=1.43.
|
|
64
|
+
Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "aws-bedrock"
|
|
65
65
|
Provides-Extra: llamaindex
|
|
66
66
|
Requires-Dist: llama-index==0.14.23; extra == "llamaindex"
|
|
67
67
|
Provides-Extra: llama-index
|
|
@@ -71,16 +71,16 @@ Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "google-adk"
|
|
|
71
71
|
Provides-Extra: adk
|
|
72
72
|
Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "adk"
|
|
73
73
|
Provides-Extra: claude
|
|
74
|
-
Requires-Dist: claude-agent-sdk<=0.2.
|
|
74
|
+
Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "claude"
|
|
75
75
|
Provides-Extra: claude-agent-sdk
|
|
76
|
-
Requires-Dist: claude-agent-sdk<=0.2.
|
|
76
|
+
Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "claude-agent-sdk"
|
|
77
77
|
Provides-Extra: smolagents
|
|
78
78
|
Requires-Dist: smolagents==1.26.0; extra == "smolagents"
|
|
79
79
|
Provides-Extra: all
|
|
80
80
|
Requires-Dist: crewai<=1.15.14,>=1.15.5; extra == "all"
|
|
81
81
|
Requires-Dist: redis>=4.5.0; extra == "all"
|
|
82
82
|
Requires-Dist: cryptography>=42.0.0; extra == "all"
|
|
83
|
-
Requires-Dist: pydantic-ai<=2.27.
|
|
83
|
+
Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "all"
|
|
84
84
|
Requires-Dist: anyio>=4.0.0; extra == "all"
|
|
85
85
|
Requires-Dist: langgraph<=1.2.10,>=1.2.9; extra == "all"
|
|
86
86
|
Requires-Dist: langchain-core<=1.5.3,>=1.5.0; extra == "all"
|
|
@@ -89,12 +89,12 @@ Requires-Dist: autogen-agentchat==0.7.5; extra == "all"
|
|
|
89
89
|
Requires-Dist: agno<=2.8.7,>=2.8.0; extra == "all"
|
|
90
90
|
Requires-Dist: azure-ai-projects<=2.4.0,>=2.3.0; extra == "all"
|
|
91
91
|
Requires-Dist: azure-identity==1.25.3; extra == "all"
|
|
92
|
-
Requires-Dist: openai-agents<=0.
|
|
92
|
+
Requires-Dist: openai-agents<=0.20.0,>=0.18.3; extra == "all"
|
|
93
93
|
Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "all"
|
|
94
|
-
Requires-Dist: boto3<=1.43.
|
|
94
|
+
Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "all"
|
|
95
95
|
Requires-Dist: llama-index==0.14.23; extra == "all"
|
|
96
96
|
Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "all"
|
|
97
|
-
Requires-Dist: claude-agent-sdk<=0.2.
|
|
97
|
+
Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "all"
|
|
98
98
|
Requires-Dist: smolagents==1.26.0; extra == "all"
|
|
99
99
|
Provides-Extra: dev
|
|
100
100
|
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
@@ -117,6 +117,53 @@ Dynamic: license-file
|
|
|
117
117
|
|
|
118
118
|
**One security pattern, fifteen runtimes:** CrewAI · PydanticAI · LangGraph/LangChain · Microsoft Agent Framework · Microsoft AutoGen · Microsoft AI Foundry · OpenAI Agents SDK · Claude Agent SDK · Hugging Face smolagents · Agno · Google ADK · LlamaIndex · AWS Bedrock · MCP hosts/gateways · custom Python.
|
|
119
119
|
|
|
120
|
+
## Five-minute developer trial
|
|
121
|
+
|
|
122
|
+
### 1. Install
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
pip install agenticdome-python-sdk
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 2. Enable the offline simulator
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
export AGENTICDOME_MODE=local_sim
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
No account, API key, tenant, network connection, or third-party framework package is required.
|
|
135
|
+
|
|
136
|
+
### 3. See one allowed and one blocked action
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
agenticdome-demo --framework langgraph --scenario both
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Look for `ALLOWED — TOOL WOULD EXECUTE` followed by `BLOCKED — TOOL WOULD NOT EXECUTE`. These are simulations: the example does not execute either tool.
|
|
143
|
+
|
|
144
|
+
### 4. Select your framework
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
agenticdome-demo --list-frameworks
|
|
148
|
+
agenticdome-demo --framework all --scenario both
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
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) to find the exact construction file, public attachment call and local execution boundary for your framework.
|
|
152
|
+
|
|
153
|
+
### 5. Connect the same integration to AgenticDome
|
|
154
|
+
|
|
155
|
+
When you are ready to test real tenant policy, remove `AGENTICDOME_MODE=local_sim`, obtain the assigned runtime sidecar URL, Runtime/SDK API key and tenant ID from AgenticDome, and configure:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
unset AGENTICDOME_MODE
|
|
159
|
+
export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example"
|
|
160
|
+
export AGENTICDOME_API_KEY="your_runtime_sdk_key"
|
|
161
|
+
export AGENTICDOME_TENANT_ID="your_tenant_id"
|
|
162
|
+
agenticdome-demo --framework langgraph --scenario both --live
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Offline simulation demonstrates the SDK decision flow using a bundled public baseline. Only live mode applies the customer's policy, topology, telemetry, signed decisions and runtime enforcement.
|
|
166
|
+
|
|
120
167
|
```python
|
|
121
168
|
# The 30-second version: block a prompt-injected refund before it executes.
|
|
122
169
|
import agenticdome_sdk.crewai # registers global CrewAI security hooks
|
|
@@ -130,18 +177,19 @@ result = crew.kickoff() # hostile prompts, unsafe tools, and rogue
|
|
|
130
177
|
|
|
131
178
|
## Contents
|
|
132
179
|
|
|
133
|
-
1. [
|
|
134
|
-
2. [
|
|
135
|
-
3. [
|
|
136
|
-
4. [
|
|
137
|
-
5. [
|
|
138
|
-
6. [
|
|
139
|
-
7. [
|
|
180
|
+
1. [Five-minute developer trial](#five-minute-developer-trial)
|
|
181
|
+
2. [Why AgenticDome](#why-agenticdome)
|
|
182
|
+
3. [How It Works](#how-it-works)
|
|
183
|
+
4. [Quickstart](#quickstart)
|
|
184
|
+
5. [Installation](#installation)
|
|
185
|
+
6. [Configuration](#configuration)
|
|
186
|
+
7. [Choosing Your Integration Point](#choosing-your-integration-point)
|
|
187
|
+
8. [Framework Integrations](#framework-integrations)
|
|
140
188
|
- [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)
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
189
|
+
9. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
|
|
190
|
+
10. [Production Deployment](#production-deployment)
|
|
191
|
+
11. [Package Build and Verification](#package-build-and-verification)
|
|
192
|
+
12. [License](#license)
|
|
145
193
|
|
|
146
194
|
---
|
|
147
195
|
|
|
@@ -254,11 +302,17 @@ Start with a network-free simulation, then connect the same SDK to your assigned
|
|
|
254
302
|
|
|
255
303
|
```bash
|
|
256
304
|
pip install agenticdome-python-sdk
|
|
257
|
-
|
|
305
|
+
# Show one ALLOWED and one BLOCKED action for LangGraph.
|
|
306
|
+
agenticdome-demo --framework langgraph --scenario both
|
|
307
|
+
|
|
308
|
+
# Or prove the same offline contract across all 15 integrations.
|
|
309
|
+
agenticdome-demo --framework all --scenario both
|
|
258
310
|
agenticdome-demo --list-frameworks
|
|
259
311
|
```
|
|
260
312
|
|
|
261
|
-
This is visibly labelled **LOCAL SIMULATION — NOT CLOUD ENFORCEMENT**. It evaluates a small bundled demonstration policy through the real public client contract, but it does not load tenant policy, issue signed decision tokens or execution receipts, write cloud evidence, or provide runtime assurance. To exercise
|
|
313
|
+
This is visibly labelled **LOCAL SIMULATION — NOT CLOUD ENFORCEMENT**. It evaluates a small bundled demonstration policy through the real public client contract, but it does not load tenant policy, issue signed decision tokens or execution receipts, write cloud evidence, or provide runtime assurance. To exercise any wrapper inside your own process without credentials, set `AGENTICDOME_MODE=local_sim`. The SDK refuses that mode when `AGENTICDOME_PRODUCTION_MODE=true`.
|
|
314
|
+
|
|
315
|
+
Browse the public [`examples/`](examples/README.md) gallery for a runnable allowed/blocked example for CrewAI, PydanticAI, LangGraph, Microsoft Agent Framework, AutoGen, AI Foundry, OpenAI Agents, Claude, smolagents, Agno, Google ADK, LlamaIndex, Bedrock, MCP, and custom Python. Local blocked/redacted results emit safe terminal logs containing verdict metadata only—not raw prompts, arguments, keys, or secrets.
|
|
262
316
|
|
|
263
317
|
**2. Onboard for real enforcement.** Create an account in the AgenticDome Management Console, obtain your tenant identifier and Runtime / SDK API key, and identify the tenant's assigned runtime sidecar.
|
|
264
318
|
|
|
@@ -292,8 +346,13 @@ result = crew.kickoff()
|
|
|
292
346
|
|
|
293
347
|
```bash
|
|
294
348
|
# Local, deterministic and network-free.
|
|
295
|
-
agenticdome-demo --framework crewai --scenario
|
|
296
|
-
agenticdome-demo --framework langgraph --scenario
|
|
349
|
+
agenticdome-demo --framework crewai --scenario both
|
|
350
|
+
agenticdome-demo --framework langgraph --scenario both
|
|
351
|
+
agenticdome-demo --framework claude --scenario both
|
|
352
|
+
agenticdome-demo --framework smolagents --scenario both
|
|
353
|
+
agenticdome-demo --framework all --scenario both
|
|
354
|
+
|
|
355
|
+
# Additional blocked-only examples for focused attack demonstrations.
|
|
297
356
|
agenticdome-demo --framework claude --scenario metadata_exfil
|
|
298
357
|
agenticdome-demo --framework smolagents --scenario metadata_exfil
|
|
299
358
|
|
|
@@ -352,6 +411,18 @@ AgenticDome has two setup layers, and both are required:
|
|
|
352
411
|
|
|
353
412
|
Environment variables do **not** intercept framework execution by themselves.
|
|
354
413
|
|
|
414
|
+
### Offline community trial
|
|
415
|
+
|
|
416
|
+
Every supported Python integration inherits the same credential-free, network-free simulator:
|
|
417
|
+
|
|
418
|
+
```bash
|
|
419
|
+
export AGENTICDOME_MODE="local_sim"
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
No API base, API key, tenant ID, or third-party framework package is needed to run the public demonstration. `ALLOWED` decisions are logged at `INFO`; `BLOCKED` and `REDACTED` decisions are logged at `WARNING` so they are visible in a normal terminal. Logs contain decision metadata only and exclude raw prompt text and tool arguments.
|
|
423
|
+
|
|
424
|
+
Local simulation is deliberately limited: it uses the bundled public baseline, does not execute tools, does not use tenant policy, topology, signed provenance, runtime telemetry, decision tokens, or execution receipts, and cannot satisfy an enforced execution broker. It is refused whenever `AGENTICDOME_PRODUCTION_MODE=true`.
|
|
425
|
+
|
|
355
426
|
### Required variables
|
|
356
427
|
|
|
357
428
|
```bash
|
|
@@ -408,6 +479,7 @@ export AGENTICDOME_PRODUCTION_MODE="false" # production hardening (st
|
|
|
408
479
|
| `AGENTICDOME_API_BASE` | string | required | Tenant runtime sidecar origin, e.g. `https://demo-sidecar.agenticdome.io`. Separate from the control-plane console URL. |
|
|
409
480
|
| `AGENTICDOME_API_KEY` | string | required | API key generated in the AgenticDome console. |
|
|
410
481
|
| `AGENTICDOME_TENANT_ID` | string | required | Tenant or organization isolation namespace. |
|
|
482
|
+
| `AGENTICDOME_MODE` | `live` / `local_sim` | `live` | Selects real sidecar enforcement or the credential-free, network-free demonstration evaluator. `local_sim` is refused in production mode. |
|
|
411
483
|
| `AGENTICDOME_PLATFORM` | string | framework-specific | Runtime platform label included in policy context. |
|
|
412
484
|
| `AGENTICDOME_TIMEOUT_S` | integer | `20` | HTTP timeout in seconds for SDK calls. |
|
|
413
485
|
| `AGENTICDOME_FAIL_CLOSED` | boolean | `true` | Blocks execution if security checks fail. |
|
|
@@ -510,6 +582,8 @@ Every framework adapter exposes the same family of local hardening controls, pre
|
|
|
510
582
|
|
|
511
583
|
One table, one decision. Find your runtime, apply the required code action, and jump to its guide. In every case, environment config alone is **not** enough — hooks activate only after the code attachment shown here.
|
|
512
584
|
|
|
585
|
+
For a shorter operator/developer handoff, use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md). It includes the attachment boundary, bypass warning and production proof checklist for every supported framework without exposing private policy or detection internals.
|
|
586
|
+
|
|
513
587
|
| Runtime | SDK module | Global code location | Required code action | Tool-level enforcement |
|
|
514
588
|
| :--- | :--- | :--- | :--- | :--- |
|
|
515
589
|
| [CrewAI](#crewai) | `agenticdome_sdk.crewai` | Application bootstrap, before crews are created | `import agenticdome_sdk.crewai` once for global hooks, or `AgenticDomeCrewAIFirewall().attach(...)` for scoped hooks | `secure_tool(...)` for explicit local wrapper enforcement, schema validation, sanitized-argument execution |
|
|
@@ -10,6 +10,53 @@
|
|
|
10
10
|
|
|
11
11
|
**One security pattern, fifteen runtimes:** CrewAI · PydanticAI · LangGraph/LangChain · Microsoft Agent Framework · Microsoft AutoGen · Microsoft AI Foundry · OpenAI Agents SDK · Claude Agent SDK · Hugging Face smolagents · Agno · Google ADK · LlamaIndex · AWS Bedrock · MCP hosts/gateways · custom Python.
|
|
12
12
|
|
|
13
|
+
## Five-minute developer trial
|
|
14
|
+
|
|
15
|
+
### 1. Install
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pip install agenticdome-python-sdk
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### 2. Enable the offline simulator
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
export AGENTICDOME_MODE=local_sim
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
No account, API key, tenant, network connection, or third-party framework package is required.
|
|
28
|
+
|
|
29
|
+
### 3. See one allowed and one blocked action
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
agenticdome-demo --framework langgraph --scenario both
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Look for `ALLOWED — TOOL WOULD EXECUTE` followed by `BLOCKED — TOOL WOULD NOT EXECUTE`. These are simulations: the example does not execute either tool.
|
|
36
|
+
|
|
37
|
+
### 4. Select your framework
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
agenticdome-demo --list-frameworks
|
|
41
|
+
agenticdome-demo --framework all --scenario both
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
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) to find the exact construction file, public attachment call and local execution boundary for your framework.
|
|
45
|
+
|
|
46
|
+
### 5. Connect the same integration to AgenticDome
|
|
47
|
+
|
|
48
|
+
When you are ready to test real tenant policy, remove `AGENTICDOME_MODE=local_sim`, obtain the assigned runtime sidecar URL, Runtime/SDK API key and tenant ID from AgenticDome, and configure:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
unset AGENTICDOME_MODE
|
|
52
|
+
export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example"
|
|
53
|
+
export AGENTICDOME_API_KEY="your_runtime_sdk_key"
|
|
54
|
+
export AGENTICDOME_TENANT_ID="your_tenant_id"
|
|
55
|
+
agenticdome-demo --framework langgraph --scenario both --live
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Offline simulation demonstrates the SDK decision flow using a bundled public baseline. Only live mode applies the customer's policy, topology, telemetry, signed decisions and runtime enforcement.
|
|
59
|
+
|
|
13
60
|
```python
|
|
14
61
|
# The 30-second version: block a prompt-injected refund before it executes.
|
|
15
62
|
import agenticdome_sdk.crewai # registers global CrewAI security hooks
|
|
@@ -23,18 +70,19 @@ result = crew.kickoff() # hostile prompts, unsafe tools, and rogue
|
|
|
23
70
|
|
|
24
71
|
## Contents
|
|
25
72
|
|
|
26
|
-
1. [
|
|
27
|
-
2. [
|
|
28
|
-
3. [
|
|
29
|
-
4. [
|
|
30
|
-
5. [
|
|
31
|
-
6. [
|
|
32
|
-
7. [
|
|
73
|
+
1. [Five-minute developer trial](#five-minute-developer-trial)
|
|
74
|
+
2. [Why AgenticDome](#why-agenticdome)
|
|
75
|
+
3. [How It Works](#how-it-works)
|
|
76
|
+
4. [Quickstart](#quickstart)
|
|
77
|
+
5. [Installation](#installation)
|
|
78
|
+
6. [Configuration](#configuration)
|
|
79
|
+
7. [Choosing Your Integration Point](#choosing-your-integration-point)
|
|
80
|
+
8. [Framework Integrations](#framework-integrations)
|
|
33
81
|
- [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)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
82
|
+
9. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
|
|
83
|
+
10. [Production Deployment](#production-deployment)
|
|
84
|
+
11. [Package Build and Verification](#package-build-and-verification)
|
|
85
|
+
12. [License](#license)
|
|
38
86
|
|
|
39
87
|
---
|
|
40
88
|
|
|
@@ -147,11 +195,17 @@ Start with a network-free simulation, then connect the same SDK to your assigned
|
|
|
147
195
|
|
|
148
196
|
```bash
|
|
149
197
|
pip install agenticdome-python-sdk
|
|
150
|
-
|
|
198
|
+
# Show one ALLOWED and one BLOCKED action for LangGraph.
|
|
199
|
+
agenticdome-demo --framework langgraph --scenario both
|
|
200
|
+
|
|
201
|
+
# Or prove the same offline contract across all 15 integrations.
|
|
202
|
+
agenticdome-demo --framework all --scenario both
|
|
151
203
|
agenticdome-demo --list-frameworks
|
|
152
204
|
```
|
|
153
205
|
|
|
154
|
-
This is visibly labelled **LOCAL SIMULATION — NOT CLOUD ENFORCEMENT**. It evaluates a small bundled demonstration policy through the real public client contract, but it does not load tenant policy, issue signed decision tokens or execution receipts, write cloud evidence, or provide runtime assurance. To exercise
|
|
206
|
+
This is visibly labelled **LOCAL SIMULATION — NOT CLOUD ENFORCEMENT**. It evaluates a small bundled demonstration policy through the real public client contract, but it does not load tenant policy, issue signed decision tokens or execution receipts, write cloud evidence, or provide runtime assurance. To exercise any wrapper inside your own process without credentials, set `AGENTICDOME_MODE=local_sim`. The SDK refuses that mode when `AGENTICDOME_PRODUCTION_MODE=true`.
|
|
207
|
+
|
|
208
|
+
Browse the public [`examples/`](examples/README.md) gallery for a runnable allowed/blocked example for CrewAI, PydanticAI, LangGraph, Microsoft Agent Framework, AutoGen, AI Foundry, OpenAI Agents, Claude, smolagents, Agno, Google ADK, LlamaIndex, Bedrock, MCP, and custom Python. Local blocked/redacted results emit safe terminal logs containing verdict metadata only—not raw prompts, arguments, keys, or secrets.
|
|
155
209
|
|
|
156
210
|
**2. Onboard for real enforcement.** Create an account in the AgenticDome Management Console, obtain your tenant identifier and Runtime / SDK API key, and identify the tenant's assigned runtime sidecar.
|
|
157
211
|
|
|
@@ -185,8 +239,13 @@ result = crew.kickoff()
|
|
|
185
239
|
|
|
186
240
|
```bash
|
|
187
241
|
# Local, deterministic and network-free.
|
|
188
|
-
agenticdome-demo --framework crewai --scenario
|
|
189
|
-
agenticdome-demo --framework langgraph --scenario
|
|
242
|
+
agenticdome-demo --framework crewai --scenario both
|
|
243
|
+
agenticdome-demo --framework langgraph --scenario both
|
|
244
|
+
agenticdome-demo --framework claude --scenario both
|
|
245
|
+
agenticdome-demo --framework smolagents --scenario both
|
|
246
|
+
agenticdome-demo --framework all --scenario both
|
|
247
|
+
|
|
248
|
+
# Additional blocked-only examples for focused attack demonstrations.
|
|
190
249
|
agenticdome-demo --framework claude --scenario metadata_exfil
|
|
191
250
|
agenticdome-demo --framework smolagents --scenario metadata_exfil
|
|
192
251
|
|
|
@@ -245,6 +304,18 @@ AgenticDome has two setup layers, and both are required:
|
|
|
245
304
|
|
|
246
305
|
Environment variables do **not** intercept framework execution by themselves.
|
|
247
306
|
|
|
307
|
+
### Offline community trial
|
|
308
|
+
|
|
309
|
+
Every supported Python integration inherits the same credential-free, network-free simulator:
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
export AGENTICDOME_MODE="local_sim"
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
No API base, API key, tenant ID, or third-party framework package is needed to run the public demonstration. `ALLOWED` decisions are logged at `INFO`; `BLOCKED` and `REDACTED` decisions are logged at `WARNING` so they are visible in a normal terminal. Logs contain decision metadata only and exclude raw prompt text and tool arguments.
|
|
316
|
+
|
|
317
|
+
Local simulation is deliberately limited: it uses the bundled public baseline, does not execute tools, does not use tenant policy, topology, signed provenance, runtime telemetry, decision tokens, or execution receipts, and cannot satisfy an enforced execution broker. It is refused whenever `AGENTICDOME_PRODUCTION_MODE=true`.
|
|
318
|
+
|
|
248
319
|
### Required variables
|
|
249
320
|
|
|
250
321
|
```bash
|
|
@@ -301,6 +372,7 @@ export AGENTICDOME_PRODUCTION_MODE="false" # production hardening (st
|
|
|
301
372
|
| `AGENTICDOME_API_BASE` | string | required | Tenant runtime sidecar origin, e.g. `https://demo-sidecar.agenticdome.io`. Separate from the control-plane console URL. |
|
|
302
373
|
| `AGENTICDOME_API_KEY` | string | required | API key generated in the AgenticDome console. |
|
|
303
374
|
| `AGENTICDOME_TENANT_ID` | string | required | Tenant or organization isolation namespace. |
|
|
375
|
+
| `AGENTICDOME_MODE` | `live` / `local_sim` | `live` | Selects real sidecar enforcement or the credential-free, network-free demonstration evaluator. `local_sim` is refused in production mode. |
|
|
304
376
|
| `AGENTICDOME_PLATFORM` | string | framework-specific | Runtime platform label included in policy context. |
|
|
305
377
|
| `AGENTICDOME_TIMEOUT_S` | integer | `20` | HTTP timeout in seconds for SDK calls. |
|
|
306
378
|
| `AGENTICDOME_FAIL_CLOSED` | boolean | `true` | Blocks execution if security checks fail. |
|
|
@@ -403,6 +475,8 @@ Every framework adapter exposes the same family of local hardening controls, pre
|
|
|
403
475
|
|
|
404
476
|
One table, one decision. Find your runtime, apply the required code action, and jump to its guide. In every case, environment config alone is **not** enough — hooks activate only after the code attachment shown here.
|
|
405
477
|
|
|
478
|
+
For a shorter operator/developer handoff, use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md). It includes the attachment boundary, bypass warning and production proof checklist for every supported framework without exposing private policy or detection internals.
|
|
479
|
+
|
|
406
480
|
| Runtime | SDK module | Global code location | Required code action | Tool-level enforcement |
|
|
407
481
|
| :--- | :--- | :--- | :--- | :--- |
|
|
408
482
|
| [CrewAI](#crewai) | `agenticdome_sdk.crewai` | Application bootstrap, before crews are created | `import agenticdome_sdk.crewai` once for global hooks, or `AgenticDomeCrewAIFirewall().attach(...)` for scoped hooks | `secure_tool(...)` for explicit local wrapper enforcement, schema validation, sanitized-argument execution |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agenticdome-python-sdk
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.10
|
|
4
4
|
Summary: Official Python SDK for AgenticDome security guardrails, DLP, tool authorization, and multi-agent delegation enforcement.
|
|
5
5
|
Author: AgenticDome
|
|
6
6
|
License: Proprietary
|
|
@@ -34,10 +34,10 @@ Requires-Dist: redis>=4.5.0; extra == "redis"
|
|
|
34
34
|
Provides-Extra: pop
|
|
35
35
|
Requires-Dist: cryptography>=42.0.0; extra == "pop"
|
|
36
36
|
Provides-Extra: pydanticai
|
|
37
|
-
Requires-Dist: pydantic-ai<=2.27.
|
|
37
|
+
Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "pydanticai"
|
|
38
38
|
Requires-Dist: anyio>=4.0.0; extra == "pydanticai"
|
|
39
39
|
Provides-Extra: pydantic
|
|
40
|
-
Requires-Dist: pydantic-ai<=2.27.
|
|
40
|
+
Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "pydantic"
|
|
41
41
|
Requires-Dist: anyio>=4.0.0; extra == "pydantic"
|
|
42
42
|
Provides-Extra: langgraph
|
|
43
43
|
Requires-Dist: langgraph<=1.2.10,>=1.2.9; extra == "langgraph"
|
|
@@ -55,13 +55,13 @@ Requires-Dist: azure-identity==1.25.3; extra == "foundry"
|
|
|
55
55
|
Provides-Extra: agno
|
|
56
56
|
Requires-Dist: agno<=2.8.7,>=2.8.0; extra == "agno"
|
|
57
57
|
Provides-Extra: openai-agents
|
|
58
|
-
Requires-Dist: openai-agents<=0.
|
|
58
|
+
Requires-Dist: openai-agents<=0.20.0,>=0.18.3; extra == "openai-agents"
|
|
59
59
|
Provides-Extra: mcp
|
|
60
60
|
Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "mcp"
|
|
61
61
|
Provides-Extra: bedrock
|
|
62
|
-
Requires-Dist: boto3<=1.43.
|
|
62
|
+
Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "bedrock"
|
|
63
63
|
Provides-Extra: aws-bedrock
|
|
64
|
-
Requires-Dist: boto3<=1.43.
|
|
64
|
+
Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "aws-bedrock"
|
|
65
65
|
Provides-Extra: llamaindex
|
|
66
66
|
Requires-Dist: llama-index==0.14.23; extra == "llamaindex"
|
|
67
67
|
Provides-Extra: llama-index
|
|
@@ -71,16 +71,16 @@ Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "google-adk"
|
|
|
71
71
|
Provides-Extra: adk
|
|
72
72
|
Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "adk"
|
|
73
73
|
Provides-Extra: claude
|
|
74
|
-
Requires-Dist: claude-agent-sdk<=0.2.
|
|
74
|
+
Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "claude"
|
|
75
75
|
Provides-Extra: claude-agent-sdk
|
|
76
|
-
Requires-Dist: claude-agent-sdk<=0.2.
|
|
76
|
+
Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "claude-agent-sdk"
|
|
77
77
|
Provides-Extra: smolagents
|
|
78
78
|
Requires-Dist: smolagents==1.26.0; extra == "smolagents"
|
|
79
79
|
Provides-Extra: all
|
|
80
80
|
Requires-Dist: crewai<=1.15.14,>=1.15.5; extra == "all"
|
|
81
81
|
Requires-Dist: redis>=4.5.0; extra == "all"
|
|
82
82
|
Requires-Dist: cryptography>=42.0.0; extra == "all"
|
|
83
|
-
Requires-Dist: pydantic-ai<=2.27.
|
|
83
|
+
Requires-Dist: pydantic-ai<=2.27.1,>=2.16.0; extra == "all"
|
|
84
84
|
Requires-Dist: anyio>=4.0.0; extra == "all"
|
|
85
85
|
Requires-Dist: langgraph<=1.2.10,>=1.2.9; extra == "all"
|
|
86
86
|
Requires-Dist: langchain-core<=1.5.3,>=1.5.0; extra == "all"
|
|
@@ -89,12 +89,12 @@ Requires-Dist: autogen-agentchat==0.7.5; extra == "all"
|
|
|
89
89
|
Requires-Dist: agno<=2.8.7,>=2.8.0; extra == "all"
|
|
90
90
|
Requires-Dist: azure-ai-projects<=2.4.0,>=2.3.0; extra == "all"
|
|
91
91
|
Requires-Dist: azure-identity==1.25.3; extra == "all"
|
|
92
|
-
Requires-Dist: openai-agents<=0.
|
|
92
|
+
Requires-Dist: openai-agents<=0.20.0,>=0.18.3; extra == "all"
|
|
93
93
|
Requires-Dist: mcp<=1.28.1,>=1.26.0; extra == "all"
|
|
94
|
-
Requires-Dist: boto3<=1.43.
|
|
94
|
+
Requires-Dist: boto3<=1.43.68,>=1.43.54; extra == "all"
|
|
95
95
|
Requires-Dist: llama-index==0.14.23; extra == "all"
|
|
96
96
|
Requires-Dist: google-adk<=2.6.3,>=2.5.0; extra == "all"
|
|
97
|
-
Requires-Dist: claude-agent-sdk<=0.2.
|
|
97
|
+
Requires-Dist: claude-agent-sdk<=0.2.135,>=0.2.126; extra == "all"
|
|
98
98
|
Requires-Dist: smolagents==1.26.0; extra == "all"
|
|
99
99
|
Provides-Extra: dev
|
|
100
100
|
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
@@ -117,6 +117,53 @@ Dynamic: license-file
|
|
|
117
117
|
|
|
118
118
|
**One security pattern, fifteen runtimes:** CrewAI · PydanticAI · LangGraph/LangChain · Microsoft Agent Framework · Microsoft AutoGen · Microsoft AI Foundry · OpenAI Agents SDK · Claude Agent SDK · Hugging Face smolagents · Agno · Google ADK · LlamaIndex · AWS Bedrock · MCP hosts/gateways · custom Python.
|
|
119
119
|
|
|
120
|
+
## Five-minute developer trial
|
|
121
|
+
|
|
122
|
+
### 1. Install
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
pip install agenticdome-python-sdk
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 2. Enable the offline simulator
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
export AGENTICDOME_MODE=local_sim
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
No account, API key, tenant, network connection, or third-party framework package is required.
|
|
135
|
+
|
|
136
|
+
### 3. See one allowed and one blocked action
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
agenticdome-demo --framework langgraph --scenario both
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Look for `ALLOWED — TOOL WOULD EXECUTE` followed by `BLOCKED — TOOL WOULD NOT EXECUTE`. These are simulations: the example does not execute either tool.
|
|
143
|
+
|
|
144
|
+
### 4. Select your framework
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
agenticdome-demo --list-frameworks
|
|
148
|
+
agenticdome-demo --framework all --scenario both
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
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) to find the exact construction file, public attachment call and local execution boundary for your framework.
|
|
152
|
+
|
|
153
|
+
### 5. Connect the same integration to AgenticDome
|
|
154
|
+
|
|
155
|
+
When you are ready to test real tenant policy, remove `AGENTICDOME_MODE=local_sim`, obtain the assigned runtime sidecar URL, Runtime/SDK API key and tenant ID from AgenticDome, and configure:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
unset AGENTICDOME_MODE
|
|
159
|
+
export AGENTICDOME_API_BASE="https://your-assigned-sidecar.example"
|
|
160
|
+
export AGENTICDOME_API_KEY="your_runtime_sdk_key"
|
|
161
|
+
export AGENTICDOME_TENANT_ID="your_tenant_id"
|
|
162
|
+
agenticdome-demo --framework langgraph --scenario both --live
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Offline simulation demonstrates the SDK decision flow using a bundled public baseline. Only live mode applies the customer's policy, topology, telemetry, signed decisions and runtime enforcement.
|
|
166
|
+
|
|
120
167
|
```python
|
|
121
168
|
# The 30-second version: block a prompt-injected refund before it executes.
|
|
122
169
|
import agenticdome_sdk.crewai # registers global CrewAI security hooks
|
|
@@ -130,18 +177,19 @@ result = crew.kickoff() # hostile prompts, unsafe tools, and rogue
|
|
|
130
177
|
|
|
131
178
|
## Contents
|
|
132
179
|
|
|
133
|
-
1. [
|
|
134
|
-
2. [
|
|
135
|
-
3. [
|
|
136
|
-
4. [
|
|
137
|
-
5. [
|
|
138
|
-
6. [
|
|
139
|
-
7. [
|
|
180
|
+
1. [Five-minute developer trial](#five-minute-developer-trial)
|
|
181
|
+
2. [Why AgenticDome](#why-agenticdome)
|
|
182
|
+
3. [How It Works](#how-it-works)
|
|
183
|
+
4. [Quickstart](#quickstart)
|
|
184
|
+
5. [Installation](#installation)
|
|
185
|
+
6. [Configuration](#configuration)
|
|
186
|
+
7. [Choosing Your Integration Point](#choosing-your-integration-point)
|
|
187
|
+
8. [Framework Integrations](#framework-integrations)
|
|
140
188
|
- [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)
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
189
|
+
9. [Core SDK Client (Custom Runtimes)](#core-sdk-client-custom-runtimes)
|
|
190
|
+
10. [Production Deployment](#production-deployment)
|
|
191
|
+
11. [Package Build and Verification](#package-build-and-verification)
|
|
192
|
+
12. [License](#license)
|
|
145
193
|
|
|
146
194
|
---
|
|
147
195
|
|
|
@@ -254,11 +302,17 @@ Start with a network-free simulation, then connect the same SDK to your assigned
|
|
|
254
302
|
|
|
255
303
|
```bash
|
|
256
304
|
pip install agenticdome-python-sdk
|
|
257
|
-
|
|
305
|
+
# Show one ALLOWED and one BLOCKED action for LangGraph.
|
|
306
|
+
agenticdome-demo --framework langgraph --scenario both
|
|
307
|
+
|
|
308
|
+
# Or prove the same offline contract across all 15 integrations.
|
|
309
|
+
agenticdome-demo --framework all --scenario both
|
|
258
310
|
agenticdome-demo --list-frameworks
|
|
259
311
|
```
|
|
260
312
|
|
|
261
|
-
This is visibly labelled **LOCAL SIMULATION — NOT CLOUD ENFORCEMENT**. It evaluates a small bundled demonstration policy through the real public client contract, but it does not load tenant policy, issue signed decision tokens or execution receipts, write cloud evidence, or provide runtime assurance. To exercise
|
|
313
|
+
This is visibly labelled **LOCAL SIMULATION — NOT CLOUD ENFORCEMENT**. It evaluates a small bundled demonstration policy through the real public client contract, but it does not load tenant policy, issue signed decision tokens or execution receipts, write cloud evidence, or provide runtime assurance. To exercise any wrapper inside your own process without credentials, set `AGENTICDOME_MODE=local_sim`. The SDK refuses that mode when `AGENTICDOME_PRODUCTION_MODE=true`.
|
|
314
|
+
|
|
315
|
+
Browse the public [`examples/`](examples/README.md) gallery for a runnable allowed/blocked example for CrewAI, PydanticAI, LangGraph, Microsoft Agent Framework, AutoGen, AI Foundry, OpenAI Agents, Claude, smolagents, Agno, Google ADK, LlamaIndex, Bedrock, MCP, and custom Python. Local blocked/redacted results emit safe terminal logs containing verdict metadata only—not raw prompts, arguments, keys, or secrets.
|
|
262
316
|
|
|
263
317
|
**2. Onboard for real enforcement.** Create an account in the AgenticDome Management Console, obtain your tenant identifier and Runtime / SDK API key, and identify the tenant's assigned runtime sidecar.
|
|
264
318
|
|
|
@@ -292,8 +346,13 @@ result = crew.kickoff()
|
|
|
292
346
|
|
|
293
347
|
```bash
|
|
294
348
|
# Local, deterministic and network-free.
|
|
295
|
-
agenticdome-demo --framework crewai --scenario
|
|
296
|
-
agenticdome-demo --framework langgraph --scenario
|
|
349
|
+
agenticdome-demo --framework crewai --scenario both
|
|
350
|
+
agenticdome-demo --framework langgraph --scenario both
|
|
351
|
+
agenticdome-demo --framework claude --scenario both
|
|
352
|
+
agenticdome-demo --framework smolagents --scenario both
|
|
353
|
+
agenticdome-demo --framework all --scenario both
|
|
354
|
+
|
|
355
|
+
# Additional blocked-only examples for focused attack demonstrations.
|
|
297
356
|
agenticdome-demo --framework claude --scenario metadata_exfil
|
|
298
357
|
agenticdome-demo --framework smolagents --scenario metadata_exfil
|
|
299
358
|
|
|
@@ -352,6 +411,18 @@ AgenticDome has two setup layers, and both are required:
|
|
|
352
411
|
|
|
353
412
|
Environment variables do **not** intercept framework execution by themselves.
|
|
354
413
|
|
|
414
|
+
### Offline community trial
|
|
415
|
+
|
|
416
|
+
Every supported Python integration inherits the same credential-free, network-free simulator:
|
|
417
|
+
|
|
418
|
+
```bash
|
|
419
|
+
export AGENTICDOME_MODE="local_sim"
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
No API base, API key, tenant ID, or third-party framework package is needed to run the public demonstration. `ALLOWED` decisions are logged at `INFO`; `BLOCKED` and `REDACTED` decisions are logged at `WARNING` so they are visible in a normal terminal. Logs contain decision metadata only and exclude raw prompt text and tool arguments.
|
|
423
|
+
|
|
424
|
+
Local simulation is deliberately limited: it uses the bundled public baseline, does not execute tools, does not use tenant policy, topology, signed provenance, runtime telemetry, decision tokens, or execution receipts, and cannot satisfy an enforced execution broker. It is refused whenever `AGENTICDOME_PRODUCTION_MODE=true`.
|
|
425
|
+
|
|
355
426
|
### Required variables
|
|
356
427
|
|
|
357
428
|
```bash
|
|
@@ -408,6 +479,7 @@ export AGENTICDOME_PRODUCTION_MODE="false" # production hardening (st
|
|
|
408
479
|
| `AGENTICDOME_API_BASE` | string | required | Tenant runtime sidecar origin, e.g. `https://demo-sidecar.agenticdome.io`. Separate from the control-plane console URL. |
|
|
409
480
|
| `AGENTICDOME_API_KEY` | string | required | API key generated in the AgenticDome console. |
|
|
410
481
|
| `AGENTICDOME_TENANT_ID` | string | required | Tenant or organization isolation namespace. |
|
|
482
|
+
| `AGENTICDOME_MODE` | `live` / `local_sim` | `live` | Selects real sidecar enforcement or the credential-free, network-free demonstration evaluator. `local_sim` is refused in production mode. |
|
|
411
483
|
| `AGENTICDOME_PLATFORM` | string | framework-specific | Runtime platform label included in policy context. |
|
|
412
484
|
| `AGENTICDOME_TIMEOUT_S` | integer | `20` | HTTP timeout in seconds for SDK calls. |
|
|
413
485
|
| `AGENTICDOME_FAIL_CLOSED` | boolean | `true` | Blocks execution if security checks fail. |
|
|
@@ -510,6 +582,8 @@ Every framework adapter exposes the same family of local hardening controls, pre
|
|
|
510
582
|
|
|
511
583
|
One table, one decision. Find your runtime, apply the required code action, and jump to its guide. In every case, environment config alone is **not** enough — hooks activate only after the code attachment shown here.
|
|
512
584
|
|
|
585
|
+
For a shorter operator/developer handoff, use the [production integration playbook](examples/PRODUCTION_INTEGRATION.md). It includes the attachment boundary, bypass warning and production proof checklist for every supported framework without exposing private policy or detection internals.
|
|
586
|
+
|
|
513
587
|
| Runtime | SDK module | Global code location | Required code action | Tool-level enforcement |
|
|
514
588
|
| :--- | :--- | :--- | :--- | :--- |
|
|
515
589
|
| [CrewAI](#crewai) | `agenticdome_sdk.crewai` | Application bootstrap, before crews are created | `import agenticdome_sdk.crewai` once for global hooks, or `AgenticDomeCrewAIFirewall().attach(...)` for scoped hooks | `secure_tool(...)` for explicit local wrapper enforcement, schema validation, sanitized-argument execution |
|
|
@@ -31,9 +31,29 @@ agenticdome_sdk/proof.py
|
|
|
31
31
|
agenticdome_sdk/pydantic.py
|
|
32
32
|
agenticdome_sdk/simulation.py
|
|
33
33
|
agenticdome_sdk/smolagents.py
|
|
34
|
+
examples/PRODUCTION_INTEGRATION.md
|
|
35
|
+
examples/README.md
|
|
34
36
|
examples/attack_demo.py
|
|
35
37
|
examples/crewai_agenticdome_firewall.py
|
|
36
38
|
examples/langgraph_agenticdome_firewall.py
|
|
39
|
+
examples/local_simulation_gallery.py
|
|
40
|
+
examples/frameworks/README.md
|
|
41
|
+
examples/frameworks/_shared.py
|
|
42
|
+
examples/frameworks/agno.py
|
|
43
|
+
examples/frameworks/autogen.py
|
|
44
|
+
examples/frameworks/aws_bedrock.py
|
|
45
|
+
examples/frameworks/claude_agent_sdk.py
|
|
46
|
+
examples/frameworks/crewai.py
|
|
47
|
+
examples/frameworks/custom_python.py
|
|
48
|
+
examples/frameworks/google_adk.py
|
|
49
|
+
examples/frameworks/langgraph.py
|
|
50
|
+
examples/frameworks/llamaindex.py
|
|
51
|
+
examples/frameworks/mcp.py
|
|
52
|
+
examples/frameworks/microsoft_agent_framework.py
|
|
53
|
+
examples/frameworks/microsoft_ai_foundry.py
|
|
54
|
+
examples/frameworks/openai_agents.py
|
|
55
|
+
examples/frameworks/pydanticai.py
|
|
56
|
+
examples/frameworks/smolagents.py
|
|
37
57
|
tests/test_agno_integration.py
|
|
38
58
|
tests/test_attack_demo.py
|
|
39
59
|
tests/test_autogen_integration.py
|