agentmesh-platform 1.0.0a1__tar.gz → 1.0.0a2__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.
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/.gitignore +2 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/PKG-INFO +132 -6
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/README.md +107 -3
- agentmesh_platform-1.0.0a2/docs/CLOUDEVENTS_SCHEMA.md +281 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/docs/GTM-PLAN.md +13 -3
- agentmesh_platform-1.0.0a2/docs/IMPLEMENTATION-SUMMARY.md +339 -0
- agentmesh_platform-1.0.0a2/docs/PRD-IMPLEMENTATION.md +406 -0
- agentmesh_platform-1.0.0a2/docs/PROXY-IMPLEMENTATION.md +435 -0
- agentmesh_platform-1.0.0a2/docs/RFC_AGENT_SBOM.md +329 -0
- agentmesh_platform-1.0.0a2/docs/blog/hackernews-submission.md +52 -0
- agentmesh_platform-1.0.0a2/docs/blog/launch-announcement.md +144 -0
- agentmesh_platform-1.0.0a2/docs/integrations/claude-desktop.md +186 -0
- agentmesh_platform-1.0.0a2/docs/integrations/proxy-examples.md +194 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/pyproject.toml +30 -5
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/__init__.py +6 -13
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/cli/main.py +131 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/cli/proxy.py +448 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/core/__init__.py +7 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/core/identity/__init__.py +17 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/core/identity/ca.py +386 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/governance/policy.py +14 -11
- agentmesh_platform-1.0.0a2/src/agentmesh/observability/__init__.py +16 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/observability/metrics.py +237 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/observability/tracing.py +203 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/services/__init__.py +10 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/services/audit/__init__.py +14 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/services/registry/__init__.py +12 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/services/registry/agent_registry.py +249 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/services/reward_engine/__init__.py +14 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/storage/__init__.py +18 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/storage/memory_provider.py +232 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/storage/postgres_provider.py +463 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/storage/provider.py +231 -0
- agentmesh_platform-1.0.0a2/src/agentmesh/storage/redis_provider.py +223 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/trust/__init__.py +2 -1
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/trust/bridge.py +37 -0
- agentmesh_platform-1.0.0a2/tests/test_cli.py +257 -0
- agentmesh_platform-1.0.0a2/tests/test_governance.py +170 -0
- agentmesh_platform-1.0.0a2/tests/test_identity.py +372 -0
- agentmesh_platform-1.0.0a2/tests/test_proxy.py +244 -0
- agentmesh_platform-1.0.0a2/tests/test_storage.py +228 -0
- agentmesh_platform-1.0.0a2/tests/test_trust.py +259 -0
- agentmesh_platform-1.0.0a1/tests/test_governance.py +0 -217
- agentmesh_platform-1.0.0a1/tests/test_identity.py +0 -197
- agentmesh_platform-1.0.0a1/tests/test_trust.py +0 -146
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/LICENSE +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/cli/__init__.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/governance/__init__.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/governance/audit.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/governance/compliance.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/governance/shadow.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/identity/__init__.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/identity/agent_id.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/identity/credentials.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/identity/delegation.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/identity/risk.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/identity/spiffe.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/identity/sponsor.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/reward/__init__.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/reward/engine.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/reward/learning.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/reward/scoring.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/trust/capability.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/src/agentmesh/trust/handshake.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/tests/__init__.py +0 -0
- {agentmesh_platform-1.0.0a1 → agentmesh_platform-1.0.0a2}/tests/test_reward.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentmesh-platform
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.0a2
|
|
4
4
|
Summary: The Secure Nervous System for Cloud-Native Agent Ecosystems - Identity, Trust, Reward, Governance
|
|
5
5
|
Project-URL: Homepage, https://github.com/imran-siddique/agent-mesh
|
|
6
6
|
Project-URL: Documentation, https://github.com/imran-siddique/agent-mesh#readme
|
|
@@ -23,16 +23,28 @@ Classifier: Topic :: Security :: Cryptography
|
|
|
23
23
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
24
24
|
Classifier: Topic :: System :: Systems Administration :: Authentication/Directory
|
|
25
25
|
Requires-Python: >=3.11
|
|
26
|
-
Requires-Dist: agent-os-kernel[iatp,nexus]>=1.2.0
|
|
27
26
|
Requires-Dist: aiohttp>=3.9.0
|
|
28
27
|
Requires-Dist: click>=8.1.0
|
|
29
28
|
Requires-Dist: cryptography>=42.0.0
|
|
30
29
|
Requires-Dist: httpx>=0.26.0
|
|
31
|
-
Requires-Dist: pydantic>=2.5.0
|
|
30
|
+
Requires-Dist: pydantic[email]>=2.5.0
|
|
32
31
|
Requires-Dist: pynacl>=1.5.0
|
|
33
32
|
Requires-Dist: pyyaml>=6.0
|
|
34
33
|
Requires-Dist: rich>=13.0.0
|
|
35
34
|
Requires-Dist: structlog>=24.1.0
|
|
35
|
+
Provides-Extra: agent-os
|
|
36
|
+
Requires-Dist: agent-os-kernel[iatp,nexus]>=1.2.0; extra == 'agent-os'
|
|
37
|
+
Provides-Extra: all
|
|
38
|
+
Requires-Dist: asyncpg>=0.29.0; extra == 'all'
|
|
39
|
+
Requires-Dist: fastapi>=0.109.0; extra == 'all'
|
|
40
|
+
Requires-Dist: opentelemetry-api>=1.20.0; extra == 'all'
|
|
41
|
+
Requires-Dist: opentelemetry-exporter-otlp>=1.20.0; extra == 'all'
|
|
42
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.41b0; extra == 'all'
|
|
43
|
+
Requires-Dist: opentelemetry-sdk>=1.20.0; extra == 'all'
|
|
44
|
+
Requires-Dist: prometheus-client>=0.19.0; extra == 'all'
|
|
45
|
+
Requires-Dist: redis[asyncio]>=5.0.0; extra == 'all'
|
|
46
|
+
Requires-Dist: sqlalchemy[asyncio]>=2.0.0; extra == 'all'
|
|
47
|
+
Requires-Dist: uvicorn[standard]>=0.27.0; extra == 'all'
|
|
36
48
|
Provides-Extra: dev
|
|
37
49
|
Requires-Dist: black>=24.1.0; extra == 'dev'
|
|
38
50
|
Requires-Dist: mypy>=1.8.0; extra == 'dev'
|
|
@@ -40,9 +52,19 @@ Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
|
40
52
|
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
|
|
41
53
|
Requires-Dist: pytest>=7.4.0; extra == 'dev'
|
|
42
54
|
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
55
|
+
Provides-Extra: observability
|
|
56
|
+
Requires-Dist: opentelemetry-api>=1.20.0; extra == 'observability'
|
|
57
|
+
Requires-Dist: opentelemetry-exporter-otlp>=1.20.0; extra == 'observability'
|
|
58
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.41b0; extra == 'observability'
|
|
59
|
+
Requires-Dist: opentelemetry-sdk>=1.20.0; extra == 'observability'
|
|
60
|
+
Requires-Dist: prometheus-client>=0.19.0; extra == 'observability'
|
|
43
61
|
Provides-Extra: server
|
|
44
62
|
Requires-Dist: fastapi>=0.109.0; extra == 'server'
|
|
45
63
|
Requires-Dist: uvicorn[standard]>=0.27.0; extra == 'server'
|
|
64
|
+
Provides-Extra: storage
|
|
65
|
+
Requires-Dist: asyncpg>=0.29.0; extra == 'storage'
|
|
66
|
+
Requires-Dist: redis[asyncio]>=5.0.0; extra == 'storage'
|
|
67
|
+
Requires-Dist: sqlalchemy[asyncio]>=2.0.0; extra == 'storage'
|
|
46
68
|
Description-Content-Type: text/markdown
|
|
47
69
|
|
|
48
70
|
# AgentMesh
|
|
@@ -51,8 +73,15 @@ Description-Content-Type: text/markdown
|
|
|
51
73
|
|
|
52
74
|
*Identity · Trust · Reward · Governance*
|
|
53
75
|
|
|
76
|
+
[](https://github.com/imran-siddique/agent-mesh/stargazers)
|
|
77
|
+
[](https://github.com/imran-siddique/agent-mesh/actions/workflows/ci.yml)
|
|
54
78
|
[](LICENSE)
|
|
55
79
|
[](https://python.org)
|
|
80
|
+
[](https://github.com/imran-siddique/agent-os)
|
|
81
|
+
|
|
82
|
+
> ⭐ **If this project helps you, please star it!** It helps others discover AgentMesh.
|
|
83
|
+
|
|
84
|
+
> 🔗 **Part of the Agent Ecosystem** — Works seamlessly with [Agent-OS](https://github.com/imran-siddique/agent-os) for IATP trust protocol
|
|
56
85
|
|
|
57
86
|
---
|
|
58
87
|
|
|
@@ -102,10 +131,23 @@ AgentMesh provides:
|
|
|
102
131
|
|
|
103
132
|
## Quick Start
|
|
104
133
|
|
|
134
|
+
### Option 1: Secure Claude Desktop (Recommended)
|
|
135
|
+
|
|
105
136
|
```bash
|
|
106
|
-
# Install AgentMesh
|
|
107
|
-
pip install agentmesh
|
|
137
|
+
# Install AgentMesh
|
|
138
|
+
pip install agentmesh-platform
|
|
108
139
|
|
|
140
|
+
# Set up Claude Desktop to use AgentMesh governance
|
|
141
|
+
agentmesh init-integration --claude
|
|
142
|
+
|
|
143
|
+
# Restart Claude Desktop - all MCP tools are now secured!
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Claude will now route tool calls through AgentMesh for policy enforcement and trust scoring.
|
|
147
|
+
|
|
148
|
+
### Option 2: Create a Governed Agent
|
|
149
|
+
|
|
150
|
+
```bash
|
|
109
151
|
# Initialize a governed agent in 30 seconds
|
|
110
152
|
agentmesh init --name my-agent --sponsor alice@company.com
|
|
111
153
|
|
|
@@ -116,10 +158,29 @@ agentmesh register
|
|
|
116
158
|
agentmesh run
|
|
117
159
|
```
|
|
118
160
|
|
|
161
|
+
### Option 3: Wrap Any MCP Server
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# Proxy any MCP server with governance
|
|
165
|
+
agentmesh proxy --target npx --target -y \
|
|
166
|
+
--target @modelcontextprotocol/server-filesystem \
|
|
167
|
+
--target /path/to/directory
|
|
168
|
+
|
|
169
|
+
# Use strict policy (blocks writes/deletes)
|
|
170
|
+
agentmesh proxy --policy strict --target <your-mcp-server>
|
|
171
|
+
```
|
|
172
|
+
|
|
119
173
|
## Installation
|
|
120
174
|
|
|
121
175
|
```bash
|
|
122
|
-
pip install agentmesh
|
|
176
|
+
pip install agentmesh-platform
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Or install with extra dependencies:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
pip install agentmesh-platform[server] # FastAPI server
|
|
183
|
+
pip install agentmesh-platform[dev] # Development tools
|
|
123
184
|
```
|
|
124
185
|
|
|
125
186
|
Or from source:
|
|
@@ -130,6 +191,71 @@ cd agent-mesh
|
|
|
130
191
|
pip install -e .
|
|
131
192
|
```
|
|
132
193
|
|
|
194
|
+
## Examples & Integrations
|
|
195
|
+
|
|
196
|
+
**Real-world examples** to get started quickly:
|
|
197
|
+
|
|
198
|
+
| Example | Use Case | Key Features |
|
|
199
|
+
|---------|----------|--------------|
|
|
200
|
+
| [MCP Tool Server](./examples/01-mcp-tool-server/) | Secure MCP server with governance | Rate limiting, output sanitization, audit logs |
|
|
201
|
+
| [Multi-Agent Customer Service](./examples/02-customer-service/) | Customer support automation | Delegation chains, trust handshakes, A2A |
|
|
202
|
+
| [Healthcare HIPAA](./examples/03-healthcare-hipaa/) | HIPAA-compliant data analysis | Compliance automation, PHI protection, Merkle audit |
|
|
203
|
+
| [GitHub PR Review](./examples/05-github-integration/) | Code review agent | Output policies, shadow mode, trust decay |
|
|
204
|
+
|
|
205
|
+
**Framework integrations:**
|
|
206
|
+
- **[Claude Desktop](./docs/integrations/claude-desktop.md)** - Secure MCP tools with one command
|
|
207
|
+
- [LangChain Integration](./examples/integrations/langchain.md) - Secure LangChain agents with policies
|
|
208
|
+
- [CrewAI Integration](./examples/integrations/crewai.md) - Multi-agent crew governance
|
|
209
|
+
|
|
210
|
+
📚 **[Browse all examples →](./examples/)**
|
|
211
|
+
|
|
212
|
+
## The AgentMesh Proxy: "SSL for AI Agents"
|
|
213
|
+
|
|
214
|
+
**Problem:** AI agents like Claude Desktop have unfettered access to your filesystem, database, and APIs through MCP servers. One hallucination could be catastrophic.
|
|
215
|
+
|
|
216
|
+
**Solution:** AgentMesh acts as a transparent governance proxy:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
# Before: Unsafe direct access
|
|
220
|
+
{
|
|
221
|
+
"mcpServers": {
|
|
222
|
+
"filesystem": {
|
|
223
|
+
"command": "npx",
|
|
224
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me"]
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
# After: Protected by AgentMesh
|
|
230
|
+
{
|
|
231
|
+
"mcpServers": {
|
|
232
|
+
"filesystem": {
|
|
233
|
+
"command": "agentmesh",
|
|
234
|
+
"args": [
|
|
235
|
+
"proxy", "--policy", "strict",
|
|
236
|
+
"--target", "npx", "--target", "-y",
|
|
237
|
+
"--target", "@modelcontextprotocol/server-filesystem",
|
|
238
|
+
"--target", "/Users/me"
|
|
239
|
+
]
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**What you get:**
|
|
246
|
+
- 🔒 **Policy Enforcement** - Block dangerous operations before they execute
|
|
247
|
+
- 📊 **Trust Scoring** - Behavioral monitoring (800-1000 scale)
|
|
248
|
+
- 📝 **Audit Logs** - Tamper-evident record of every action
|
|
249
|
+
- ✅ **Verification Footers** - Visual confirmation in outputs
|
|
250
|
+
|
|
251
|
+
**Set it up in 10 seconds:**
|
|
252
|
+
```bash
|
|
253
|
+
agentmesh init-integration --claude
|
|
254
|
+
# Restart Claude Desktop - done!
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
Learn more: **[Claude Desktop Integration Guide](./docs/integrations/claude-desktop.md)**
|
|
258
|
+
|
|
133
259
|
## Core Concepts
|
|
134
260
|
|
|
135
261
|
### 1. Agent Identity
|
|
@@ -4,8 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
*Identity · Trust · Reward · Governance*
|
|
6
6
|
|
|
7
|
+
[](https://github.com/imran-siddique/agent-mesh/stargazers)
|
|
8
|
+
[](https://github.com/imran-siddique/agent-mesh/actions/workflows/ci.yml)
|
|
7
9
|
[](LICENSE)
|
|
8
10
|
[](https://python.org)
|
|
11
|
+
[](https://github.com/imran-siddique/agent-os)
|
|
12
|
+
|
|
13
|
+
> ⭐ **If this project helps you, please star it!** It helps others discover AgentMesh.
|
|
14
|
+
|
|
15
|
+
> 🔗 **Part of the Agent Ecosystem** — Works seamlessly with [Agent-OS](https://github.com/imran-siddique/agent-os) for IATP trust protocol
|
|
9
16
|
|
|
10
17
|
---
|
|
11
18
|
|
|
@@ -55,10 +62,23 @@ AgentMesh provides:
|
|
|
55
62
|
|
|
56
63
|
## Quick Start
|
|
57
64
|
|
|
65
|
+
### Option 1: Secure Claude Desktop (Recommended)
|
|
66
|
+
|
|
58
67
|
```bash
|
|
59
|
-
# Install AgentMesh
|
|
60
|
-
pip install agentmesh
|
|
68
|
+
# Install AgentMesh
|
|
69
|
+
pip install agentmesh-platform
|
|
61
70
|
|
|
71
|
+
# Set up Claude Desktop to use AgentMesh governance
|
|
72
|
+
agentmesh init-integration --claude
|
|
73
|
+
|
|
74
|
+
# Restart Claude Desktop - all MCP tools are now secured!
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Claude will now route tool calls through AgentMesh for policy enforcement and trust scoring.
|
|
78
|
+
|
|
79
|
+
### Option 2: Create a Governed Agent
|
|
80
|
+
|
|
81
|
+
```bash
|
|
62
82
|
# Initialize a governed agent in 30 seconds
|
|
63
83
|
agentmesh init --name my-agent --sponsor alice@company.com
|
|
64
84
|
|
|
@@ -69,10 +89,29 @@ agentmesh register
|
|
|
69
89
|
agentmesh run
|
|
70
90
|
```
|
|
71
91
|
|
|
92
|
+
### Option 3: Wrap Any MCP Server
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Proxy any MCP server with governance
|
|
96
|
+
agentmesh proxy --target npx --target -y \
|
|
97
|
+
--target @modelcontextprotocol/server-filesystem \
|
|
98
|
+
--target /path/to/directory
|
|
99
|
+
|
|
100
|
+
# Use strict policy (blocks writes/deletes)
|
|
101
|
+
agentmesh proxy --policy strict --target <your-mcp-server>
|
|
102
|
+
```
|
|
103
|
+
|
|
72
104
|
## Installation
|
|
73
105
|
|
|
74
106
|
```bash
|
|
75
|
-
pip install agentmesh
|
|
107
|
+
pip install agentmesh-platform
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Or install with extra dependencies:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
pip install agentmesh-platform[server] # FastAPI server
|
|
114
|
+
pip install agentmesh-platform[dev] # Development tools
|
|
76
115
|
```
|
|
77
116
|
|
|
78
117
|
Or from source:
|
|
@@ -83,6 +122,71 @@ cd agent-mesh
|
|
|
83
122
|
pip install -e .
|
|
84
123
|
```
|
|
85
124
|
|
|
125
|
+
## Examples & Integrations
|
|
126
|
+
|
|
127
|
+
**Real-world examples** to get started quickly:
|
|
128
|
+
|
|
129
|
+
| Example | Use Case | Key Features |
|
|
130
|
+
|---------|----------|--------------|
|
|
131
|
+
| [MCP Tool Server](./examples/01-mcp-tool-server/) | Secure MCP server with governance | Rate limiting, output sanitization, audit logs |
|
|
132
|
+
| [Multi-Agent Customer Service](./examples/02-customer-service/) | Customer support automation | Delegation chains, trust handshakes, A2A |
|
|
133
|
+
| [Healthcare HIPAA](./examples/03-healthcare-hipaa/) | HIPAA-compliant data analysis | Compliance automation, PHI protection, Merkle audit |
|
|
134
|
+
| [GitHub PR Review](./examples/05-github-integration/) | Code review agent | Output policies, shadow mode, trust decay |
|
|
135
|
+
|
|
136
|
+
**Framework integrations:**
|
|
137
|
+
- **[Claude Desktop](./docs/integrations/claude-desktop.md)** - Secure MCP tools with one command
|
|
138
|
+
- [LangChain Integration](./examples/integrations/langchain.md) - Secure LangChain agents with policies
|
|
139
|
+
- [CrewAI Integration](./examples/integrations/crewai.md) - Multi-agent crew governance
|
|
140
|
+
|
|
141
|
+
📚 **[Browse all examples →](./examples/)**
|
|
142
|
+
|
|
143
|
+
## The AgentMesh Proxy: "SSL for AI Agents"
|
|
144
|
+
|
|
145
|
+
**Problem:** AI agents like Claude Desktop have unfettered access to your filesystem, database, and APIs through MCP servers. One hallucination could be catastrophic.
|
|
146
|
+
|
|
147
|
+
**Solution:** AgentMesh acts as a transparent governance proxy:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Before: Unsafe direct access
|
|
151
|
+
{
|
|
152
|
+
"mcpServers": {
|
|
153
|
+
"filesystem": {
|
|
154
|
+
"command": "npx",
|
|
155
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me"]
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
# After: Protected by AgentMesh
|
|
161
|
+
{
|
|
162
|
+
"mcpServers": {
|
|
163
|
+
"filesystem": {
|
|
164
|
+
"command": "agentmesh",
|
|
165
|
+
"args": [
|
|
166
|
+
"proxy", "--policy", "strict",
|
|
167
|
+
"--target", "npx", "--target", "-y",
|
|
168
|
+
"--target", "@modelcontextprotocol/server-filesystem",
|
|
169
|
+
"--target", "/Users/me"
|
|
170
|
+
]
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**What you get:**
|
|
177
|
+
- 🔒 **Policy Enforcement** - Block dangerous operations before they execute
|
|
178
|
+
- 📊 **Trust Scoring** - Behavioral monitoring (800-1000 scale)
|
|
179
|
+
- 📝 **Audit Logs** - Tamper-evident record of every action
|
|
180
|
+
- ✅ **Verification Footers** - Visual confirmation in outputs
|
|
181
|
+
|
|
182
|
+
**Set it up in 10 seconds:**
|
|
183
|
+
```bash
|
|
184
|
+
agentmesh init-integration --claude
|
|
185
|
+
# Restart Claude Desktop - done!
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Learn more: **[Claude Desktop Integration Guide](./docs/integrations/claude-desktop.md)**
|
|
189
|
+
|
|
86
190
|
## Core Concepts
|
|
87
191
|
|
|
88
192
|
### 1. Agent Identity
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
# CloudEvents Audit Log Schema
|
|
2
|
+
|
|
3
|
+
AgentMesh audit logs follow the [CloudEvents v1.0](https://cloudevents.io/) specification for interoperability with enterprise event systems.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
CloudEvents is a specification for describing event data in a common way. By adopting CloudEvents, AgentMesh audit logs can be natively ingested by:
|
|
8
|
+
|
|
9
|
+
- **Azure Event Grid**
|
|
10
|
+
- **AWS EventBridge**
|
|
11
|
+
- **Google Cloud Eventarc**
|
|
12
|
+
- **Apache Kafka**
|
|
13
|
+
- **Splunk**
|
|
14
|
+
- **Datadog**
|
|
15
|
+
- **Any CloudEvents-compatible system**
|
|
16
|
+
|
|
17
|
+
## Event Types
|
|
18
|
+
|
|
19
|
+
| Event Type | Description |
|
|
20
|
+
|------------|-------------|
|
|
21
|
+
| `ai.agentmesh.agent.registered` | New agent registered |
|
|
22
|
+
| `ai.agentmesh.agent.verified` | Agent identity verified |
|
|
23
|
+
| `ai.agentmesh.policy.evaluation` | Policy was evaluated |
|
|
24
|
+
| `ai.agentmesh.policy.violation` | Policy violation detected |
|
|
25
|
+
| `ai.agentmesh.tool.invoked` | Tool was invoked |
|
|
26
|
+
| `ai.agentmesh.tool.blocked` | Tool invocation blocked |
|
|
27
|
+
| `ai.agentmesh.trust.handshake` | Trust handshake performed |
|
|
28
|
+
| `ai.agentmesh.trust.score.updated` | Trust score changed |
|
|
29
|
+
| `ai.agentmesh.audit.integrity.verified` | Audit log integrity checked |
|
|
30
|
+
|
|
31
|
+
## Schema
|
|
32
|
+
|
|
33
|
+
### Base CloudEvent Structure
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"specversion": "1.0",
|
|
38
|
+
"id": "550e8400-e29b-41d4-a716-446655440000",
|
|
39
|
+
"type": "ai.agentmesh.policy.violation",
|
|
40
|
+
"source": "did:mesh:agent123",
|
|
41
|
+
"time": "2026-02-03T12:00:00.000Z",
|
|
42
|
+
"datacontenttype": "application/json",
|
|
43
|
+
"subject": "tool:filesystem:read",
|
|
44
|
+
"data": {
|
|
45
|
+
// Event-specific payload
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Required Fields
|
|
51
|
+
|
|
52
|
+
| Field | Type | Description |
|
|
53
|
+
|-------|------|-------------|
|
|
54
|
+
| `specversion` | String | Always "1.0" |
|
|
55
|
+
| `id` | String | Unique event ID (UUID) |
|
|
56
|
+
| `type` | String | Event type from list above |
|
|
57
|
+
| `source` | URI | Agent DID or service identifier |
|
|
58
|
+
| `time` | Timestamp | ISO 8601 timestamp |
|
|
59
|
+
|
|
60
|
+
### Optional Fields
|
|
61
|
+
|
|
62
|
+
| Field | Type | Description |
|
|
63
|
+
|-------|------|-------------|
|
|
64
|
+
| `subject` | String | Specific subject (tool name, resource) |
|
|
65
|
+
| `datacontenttype` | String | Always "application/json" |
|
|
66
|
+
| `dataschema` | URI | Link to JSON schema |
|
|
67
|
+
|
|
68
|
+
## Event Payloads
|
|
69
|
+
|
|
70
|
+
### Policy Violation
|
|
71
|
+
|
|
72
|
+
```json
|
|
73
|
+
{
|
|
74
|
+
"specversion": "1.0",
|
|
75
|
+
"id": "event-uuid-here",
|
|
76
|
+
"type": "ai.agentmesh.policy.violation",
|
|
77
|
+
"source": "did:mesh:agent-abc123",
|
|
78
|
+
"time": "2026-02-03T12:00:00.000Z",
|
|
79
|
+
"datacontenttype": "application/json",
|
|
80
|
+
"subject": "tool:shell:execute",
|
|
81
|
+
"data": {
|
|
82
|
+
"trace_id": "trace-uuid-here",
|
|
83
|
+
"agent_id": "agent-abc123",
|
|
84
|
+
"agent_name": "CustomerServiceBot",
|
|
85
|
+
"tool_name": "shell:execute",
|
|
86
|
+
"tool_args": {
|
|
87
|
+
"command": "rm -rf /",
|
|
88
|
+
"args_hash": "sha256:abc123..."
|
|
89
|
+
},
|
|
90
|
+
"policy_id": "policy-no-destructive-commands",
|
|
91
|
+
"policy_name": "No Destructive Commands",
|
|
92
|
+
"violation_reason": "Command matches destructive pattern",
|
|
93
|
+
"severity": "critical",
|
|
94
|
+
"action_taken": "blocked",
|
|
95
|
+
"merkle_proof": {
|
|
96
|
+
"entry_hash": "sha256:...",
|
|
97
|
+
"previous_hash": "sha256:...",
|
|
98
|
+
"chain_position": 1542
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Tool Invoked (Success)
|
|
105
|
+
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"specversion": "1.0",
|
|
109
|
+
"id": "event-uuid-here",
|
|
110
|
+
"type": "ai.agentmesh.tool.invoked",
|
|
111
|
+
"source": "did:mesh:agent-abc123",
|
|
112
|
+
"time": "2026-02-03T12:00:00.000Z",
|
|
113
|
+
"subject": "tool:database:query",
|
|
114
|
+
"data": {
|
|
115
|
+
"trace_id": "trace-uuid-here",
|
|
116
|
+
"agent_id": "agent-abc123",
|
|
117
|
+
"tool_name": "database:query",
|
|
118
|
+
"tool_args_hash": "sha256:...",
|
|
119
|
+
"execution_time_ms": 45.2,
|
|
120
|
+
"result_hash": "sha256:...",
|
|
121
|
+
"policy_verdict": "allowed",
|
|
122
|
+
"policies_evaluated": ["policy-read-only", "policy-no-pii"],
|
|
123
|
+
"merkle_proof": {
|
|
124
|
+
"entry_hash": "sha256:...",
|
|
125
|
+
"previous_hash": "sha256:..."
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Trust Handshake
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"specversion": "1.0",
|
|
136
|
+
"id": "event-uuid-here",
|
|
137
|
+
"type": "ai.agentmesh.trust.handshake",
|
|
138
|
+
"source": "did:mesh:agent-requester",
|
|
139
|
+
"time": "2026-02-03T12:00:00.000Z",
|
|
140
|
+
"subject": "did:mesh:agent-provider",
|
|
141
|
+
"data": {
|
|
142
|
+
"requester_did": "did:mesh:agent-requester",
|
|
143
|
+
"provider_did": "did:mesh:agent-provider",
|
|
144
|
+
"capabilities_requested": ["database:read", "api:call"],
|
|
145
|
+
"capabilities_granted": ["database:read"],
|
|
146
|
+
"capabilities_denied": ["api:call"],
|
|
147
|
+
"requester_trust_score": 847,
|
|
148
|
+
"provider_trust_score": 920,
|
|
149
|
+
"handshake_result": "partial",
|
|
150
|
+
"signature": "base64:..."
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Trust Score Updated
|
|
156
|
+
|
|
157
|
+
```json
|
|
158
|
+
{
|
|
159
|
+
"specversion": "1.0",
|
|
160
|
+
"id": "event-uuid-here",
|
|
161
|
+
"type": "ai.agentmesh.trust.score.updated",
|
|
162
|
+
"source": "did:mesh:agent-abc123",
|
|
163
|
+
"time": "2026-02-03T12:00:00.000Z",
|
|
164
|
+
"data": {
|
|
165
|
+
"agent_did": "did:mesh:agent-abc123",
|
|
166
|
+
"previous_score": 850,
|
|
167
|
+
"new_score": 835,
|
|
168
|
+
"change": -15,
|
|
169
|
+
"reason": "policy_violation",
|
|
170
|
+
"dimensions": {
|
|
171
|
+
"policy_compliance": 75,
|
|
172
|
+
"resource_efficiency": 90,
|
|
173
|
+
"output_quality": 85,
|
|
174
|
+
"security_posture": 80,
|
|
175
|
+
"collaboration_health": 88
|
|
176
|
+
},
|
|
177
|
+
"tier_change": {
|
|
178
|
+
"from": "Trusted",
|
|
179
|
+
"to": "Trusted"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Extension Attributes
|
|
186
|
+
|
|
187
|
+
AgentMesh defines these extension attributes:
|
|
188
|
+
|
|
189
|
+
| Attribute | Type | Description |
|
|
190
|
+
|-----------|------|-------------|
|
|
191
|
+
| `agentmeshmerkleroot` | String | Current Merkle tree root hash |
|
|
192
|
+
| `agentmeshtrustscope` | String | Trust scope (local, federated) |
|
|
193
|
+
| `agentmeshpolicyversion` | String | Policy engine version |
|
|
194
|
+
|
|
195
|
+
## JSON Schema
|
|
196
|
+
|
|
197
|
+
Full JSON Schema for validation:
|
|
198
|
+
|
|
199
|
+
```json
|
|
200
|
+
{
|
|
201
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
202
|
+
"$id": "https://agentmesh.dev/schemas/cloudevents/v1/policy-violation.json",
|
|
203
|
+
"title": "AgentMesh Policy Violation Event",
|
|
204
|
+
"type": "object",
|
|
205
|
+
"required": ["specversion", "id", "type", "source", "time", "data"],
|
|
206
|
+
"properties": {
|
|
207
|
+
"specversion": { "const": "1.0" },
|
|
208
|
+
"id": { "type": "string", "format": "uuid" },
|
|
209
|
+
"type": { "const": "ai.agentmesh.policy.violation" },
|
|
210
|
+
"source": { "type": "string", "format": "uri" },
|
|
211
|
+
"time": { "type": "string", "format": "date-time" },
|
|
212
|
+
"data": {
|
|
213
|
+
"type": "object",
|
|
214
|
+
"required": ["trace_id", "agent_id", "tool_name", "violation_reason"],
|
|
215
|
+
"properties": {
|
|
216
|
+
"trace_id": { "type": "string" },
|
|
217
|
+
"agent_id": { "type": "string" },
|
|
218
|
+
"tool_name": { "type": "string" },
|
|
219
|
+
"violation_reason": { "type": "string" },
|
|
220
|
+
"severity": { "enum": ["low", "medium", "high", "critical"] }
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## Integration Examples
|
|
228
|
+
|
|
229
|
+
### Azure Event Grid
|
|
230
|
+
|
|
231
|
+
```python
|
|
232
|
+
from azure.eventgrid import EventGridPublisherClient
|
|
233
|
+
from azure.core.credentials import AzureKeyCredential
|
|
234
|
+
|
|
235
|
+
client = EventGridPublisherClient(endpoint, AzureKeyCredential(key))
|
|
236
|
+
client.send([cloud_event]) # AgentMesh CloudEvent
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### AWS EventBridge
|
|
240
|
+
|
|
241
|
+
```python
|
|
242
|
+
import boto3
|
|
243
|
+
|
|
244
|
+
client = boto3.client('events')
|
|
245
|
+
client.put_events(Entries=[{
|
|
246
|
+
'Source': cloud_event['source'],
|
|
247
|
+
'DetailType': cloud_event['type'],
|
|
248
|
+
'Detail': json.dumps(cloud_event['data']),
|
|
249
|
+
'EventBusName': 'agentmesh-audit'
|
|
250
|
+
}])
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Splunk HEC
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
curl -X POST https://splunk:8088/services/collector/event \
|
|
257
|
+
-H "Authorization: Splunk $TOKEN" \
|
|
258
|
+
-d '{"event": <cloudevent-json>}'
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## Migration from Legacy Format
|
|
262
|
+
|
|
263
|
+
If upgrading from pre-CloudEvents audit logs:
|
|
264
|
+
|
|
265
|
+
```python
|
|
266
|
+
def migrate_to_cloudevent(legacy_log):
|
|
267
|
+
return {
|
|
268
|
+
"specversion": "1.0",
|
|
269
|
+
"id": legacy_log["trace_id"],
|
|
270
|
+
"type": f"ai.agentmesh.tool.{legacy_log['policy_verdict']}",
|
|
271
|
+
"source": f"did:mesh:{legacy_log['agent_id']}",
|
|
272
|
+
"time": legacy_log["timestamp"],
|
|
273
|
+
"datacontenttype": "application/json",
|
|
274
|
+
"data": legacy_log
|
|
275
|
+
}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
*Schema Version: 1.0*
|
|
281
|
+
*Last Updated: February 2026*
|
|
@@ -10,20 +10,30 @@ AgentMesh is the first platform purpose-built for the **Governed Agent Mesh** -
|
|
|
10
10
|
|
|
11
11
|
```
|
|
12
12
|
PyPI Packages:
|
|
13
|
-
├── agent-os (1.2.0)
|
|
13
|
+
├── agent-os-kernel (1.2.0) ✅ PUBLISHED
|
|
14
14
|
│ ├── Core kernel
|
|
15
15
|
│ ├── [nexus] - Trust Exchange
|
|
16
16
|
│ ├── [iatp] - Inter-Agent Trust Protocol
|
|
17
17
|
│ └── [full] - All components
|
|
18
18
|
│
|
|
19
|
-
└── agentmesh (1.0.
|
|
20
|
-
├── Depends on: agent-os[nexus,iatp]
|
|
19
|
+
└── agentmesh-platform (1.0.0a1) ✅ PUBLISHED
|
|
20
|
+
├── Depends on: agent-os-kernel[nexus,iatp]
|
|
21
21
|
├── Layer 1: Identity
|
|
22
22
|
├── Layer 2: Trust
|
|
23
23
|
├── Layer 3: Governance
|
|
24
24
|
└── Layer 4: Reward
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Install the complete governance platform
|
|
31
|
+
pip install agentmesh-platform
|
|
32
|
+
|
|
33
|
+
# Or install just the kernel
|
|
34
|
+
pip install agent-os-kernel[nexus,iatp]
|
|
35
|
+
```
|
|
36
|
+
|
|
27
37
|
## GTM Timeline
|
|
28
38
|
|
|
29
39
|
### Week 1-2: Open Source Launch
|