Netzilo AI Detection & Response (AIDR) — governance for Python AI agents.
Project description
netzilo (Python)
Netzilo AI Detection & Response(AIDR) for Python
Provides full governance for custom AI agents written in Python
How it works
The Netzilo client is compiled to a native shared library and loaded in-process
via ctypes. Every LLM prompt, model response, and tool call your agent makes can
be evaluated — allowed, blocked, or redacted — against policy pulled live from your
Netzilo management server. No daemon, no sidecar, no proxy to stand up.
Install
pip install netzilo
Wheels are published per platform (Linux, macOS, Windows) and are independent of your Python version.
Core API
API mirrors the C exports — start / stop / is_running.
import netzilo
netzilo.start({"management_url": "https://srv.netzilo.com",
"pat": "nzl_...", # or "setup_key": "..."
"agent_name": "my-agent"}) # non-blocking; policy pulled in background
netzilo.is_running() # -> bool
allowed, reason = netzilo.is_allowed("Bash", {"command": "rm -rf /"})
netzilo.report_result("Bash", "<stdout>") # post-tool observability
netzilo.stop() # graceful stop (auto-registered atexit)
Evaluation runs inside the process — evaluate() calls the embedded engine
directly, with no HTTP roundtrip and no local port to manage.
Framework adapters
Adapters are submodules of the one netzilo package — no separate installs.
Each is a single call. The framework is imported lazily inside the adapter, so
pip install netzilo never pulls crewai/langgraph/autogen unless you use it.
# CrewAI — registers before/after tool and LLM hooks process-wide
from netzilo.crewai import govern
govern(config={...})
# LangGraph — wrap nodes before compile()
import netzilo.langgraph
netzilo.langgraph.govern(graph, config={...})
# AutoGen — intervention handler
from netzilo.autogen import handler
runtime = SingleThreadedAgentRuntime(intervention_handlers=[handler(config={...})])
Optional convenience extras pull a framework alongside netzilo:
pip install netzilo[crewai], netzilo[langgraph], netzilo[autogen].
Configuration
start() / govern() accept a config dict. Common keys:
| Key | Description |
|---|---|
management_url |
Your Netzilo management server. |
pat / setup_key |
Credential used to enroll the agent. |
agent_name |
Identifier this agent reports as. |
config_path |
Where to store local client state (default under the home dir). |
log_level / log_file |
Logging verbosity and destination. |
Notes
- The native library is bundled inside the wheel; pip selects the correct one for your platform automatically. Adapters ship inside the same wheel as submodules — a single distribution, not per-framework packages.
- For local development against a locally built library, set
NETZILO_LIB_PATHto its path.
Netzilo is a commercial product. See https://www.netzilo.com.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
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 netzilo-4.1.124-py3-none-win_amd64.whl.
File metadata
- Download URL: netzilo-4.1.124-py3-none-win_amd64.whl
- Upload date:
- Size: 25.1 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7aa704cc8ac6a4e08103fbc3c50aec4d223e8d3c4becd956f677c262fffc4229
|
|
| MD5 |
5aaae4f810afe7fbeb6cf0759f1c3d86
|
|
| BLAKE2b-256 |
bd2de40dc0065880ea085d49309a9f546d1b037fc5956c3bd5ea1fa334ef0888
|
File details
Details for the file netzilo-4.1.124-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: netzilo-4.1.124-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 24.8 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e8fe53db841fe30498ab7a50dbea33e4192bdc5fdcd8699cb38eb98b41fbce5
|
|
| MD5 |
5227b66359943cb49d1dcdd84a0fb1fe
|
|
| BLAKE2b-256 |
1a2e8ed2063d653c00433ea8f57106ec4a0266d54bc66329e7fc94152f47fcf7
|
File details
Details for the file netzilo-4.1.124-py3-none-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.
File metadata
- Download URL: netzilo-4.1.124-py3-none-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
- Upload date:
- Size: 27.2 MB
- Tags: Python 3, manylinux: glibc 2.28+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbcd83160cc4f5a2e630f5603a7fd03f0f9818de6c026e8d1cf4691d70539e9e
|
|
| MD5 |
efe276e80f3f1cb615e6525116ef9224
|
|
| BLAKE2b-256 |
205cc0fb74d17d23262a661d2679c82a17ce3357c02509c059dc7040d422f3c7
|
File details
Details for the file netzilo-4.1.124-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: netzilo-4.1.124-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 22.7 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e26d137926a5eabc66beaf19cf8f09c828bc2ed6113991676eb851eeb0087137
|
|
| MD5 |
1393348e0717110345b2feefd73eea29
|
|
| BLAKE2b-256 |
2da9806805e39f194e3d90284891d318091fe6f499f9881d48413bb51372c9a4
|
File details
Details for the file netzilo-4.1.124-py3-none-macosx_10_13_x86_64.whl.
File metadata
- Download URL: netzilo-4.1.124-py3-none-macosx_10_13_x86_64.whl
- Upload date:
- Size: 24.5 MB
- Tags: Python 3, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
634f27594762db5213daab42277b62a1d2f275a4eab4713065585809980a1c48
|
|
| MD5 |
f48b7f0ac53d6b561a630673a6fb952b
|
|
| BLAKE2b-256 |
1164a2bca39befc83c3bc63d8aa7d57b2177ee15475206aae9d8118515bb04f4
|