Python SDK for flux7-mesh — governance mesh for AI agent tool calls
Project description
mesh7 Python SDK
Governance mesh for AI agent tool calls. Wraps any Python function with policy enforcement, human approval, and tracing via flux7-mesh.
Install
pip install flux7-mesh
pip install flux7-mesh[anthropic] # with Claude API support
Quick start
Direct client
from mesh7 import AgentMesh
mesh = AgentMesh("http://localhost:9090", agent="my-agent")
# Check what's available
tools = mesh.tools()
health = mesh.health()
# Policy check only (POST /decide) — no execution
decision = mesh.decide("filesystem.write_file", {"path": "/tmp/x"})
print(decision.action) # allow | deny | human_approval
# Full proxy (POST /tool/{name}) — policy + execute + trace
decision = mesh.call_tool("filesystem.read_file", {"path": "/tmp/data.txt"})
print(decision.result)
# Manage grants
mesh.create_grant("filesystem.*", "30m")
mesh.revoke_grant("grant-id")
GovernedToolkit (Claude API)
from mesh7 import GovernedToolkit
toolkit = GovernedToolkit(agent="my-agent")
@toolkit.tool
def get_weather(city: str) -> str:
"""Get current weather for a city."""
return fetch_weather(city)
@toolkit.tool
def send_email(to: str, subject: str, body: str) -> str:
"""Send an email."""
return smtp_send(to, subject, body)
# Generate tools[] for Claude API
schemas = toolkit.schemas()
# Process tool_use blocks with governance
response = client.messages.create(model="claude-sonnet-4-6", tools=schemas, ...)
results = toolkit.process_response([b.model_dump() for b in response.content])
The toolkit:
schemas()— generates thetools[]array from Python function signaturesprocess_response()— interceptstool_useblocks, checks policy via mesh7, executes locally if allowedexecute()— single tool call with governance
Prerequisites
mesh7 daemon running:
mesh7 serve --config config.yaml
API
AgentMesh(url, agent, timeout)
| Method | Description |
|---|---|
decide(name, args) |
Evaluate policy without executing |
call_tool(name, args) |
Execute tool through governance (proxy) |
tools() |
List available tools |
approvals() |
List pending approvals |
approve(id) / deny(id) |
Resolve approval |
grants() |
List active grants |
create_grant(tools, duration) |
Create temporal grant |
health() / is_healthy() |
Check mesh status |
GovernedToolkit(agent, url)
| Method | Description |
|---|---|
@toolkit.tool |
Decorator to register a function |
schemas() |
Generate Claude API tools array |
execute(name, input) |
Governed execution |
process_response(content) |
Process Claude response blocks |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
flux7_mesh-0.2.0.tar.gz
(7.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flux7_mesh-0.2.0.tar.gz.
File metadata
- Download URL: flux7_mesh-0.2.0.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2762c8685a584f0dc4d362b83998ab09f829deeba77ff7c3968ad1b82b316691
|
|
| MD5 |
b1f6e5803c1f396d9c3acd85d87c3e99
|
|
| BLAKE2b-256 |
59d1d977449d9f85b458bcb0de5cab4835c846663c1fa5941784e7318b1fb913
|
File details
Details for the file flux7_mesh-0.2.0-py3-none-any.whl.
File metadata
- Download URL: flux7_mesh-0.2.0-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
127dea36bc85b30f314e574ceaa05cc8861821e073c2721e0a04b29d1e31bf2f
|
|
| MD5 |
a1f85cb691631d8c5ab5e56d855d696d
|
|
| BLAKE2b-256 |
9dc8f666a190e3204471b345eb2760594d83e4d780024ebbb47eb772e0f51de8
|