- Category
- Developer Tools
- Rank
- No. 1222Tools index
Previous survey · No. 1208 ·
- Type
- TOOL
- Use case
- Security & Identity
- Interfaces
- MCP · Client SDK
- GitHub
- 155 stars
- Latest release
- v0.5.0
- Date
About
ZizkaDB is an audit-trail database for AI agents that stores tamper-evident, checksum-backed decision logs with session replay and time-travel debugging, built to support EU AI Act Article 12 record-keeping requirements. It adds drift detection, an MCP server, and Python and TypeScript SDKs, and can be self-hosted or run as a cloud service.
What it does
ZizkaDB is a flight recorder for AI agents. Your agent sends each step it takes (a user message, a model reply, a tool call) to a FastAPI service on Postgres, and each step can name the step that caused it. From that record you can ask why a step happened and get the chain back to its root, rebuild what the agent knew at a past moment, and pull a ranked block of past context to paste into the next prompt. Each record is hash-chained to the one before it.
Why it's ranked here
The causal link is the distinguishing idea. Tracing tools show what an agent did in order; ZizkaDB stores which step caused which, so the question behind most agent debugging gets one call instead of a scroll. The hash chain gives a check that history was not edited, which matters to teams answering EU AI Act record-keeping. The project backs this with unusually concrete operating policy: a written telemetry disclosure, fix deadlines for vulnerabilities, and a server that refuses to boot with published default secrets.
What's good
Production startup fails loudly on a default dev key, a published JWT secret or an admin token under 16 characters. The telemetry page lists every outbound call; the server and dashboard send nothing, and each client package sends one anonymous install ping that a single environment variable turns off. Search works with keywords and no OpenAI key, adding vector search when embeddings are on. If the vector store goes down, event logging keeps working and the index can be rebuilt from Postgres.
Tradeoffs
Self-hosting is limited to one agent with one API key; multiple agents, fleets and agent-to-agent messaging are reserved for the hosted cloud. The license is AGPL-3.0, a copyleft license written for network server software. With embeddings on, event text goes to OpenAI, and each event stores roughly 6 KB of embedding in Postgres. Production CORS allows every origin unless you set it. Only the latest minor release line gets security fixes.
How to use it well
Pick ZizkaDB if you run one production agent and need to explain its decisions after the fact, or to show an auditor an unaltered log. The one-command Docker quickstart starts Postgres, the API and a dashboard with a demo chain to click through. Then log your own agent through the Python SDK, the TypeScript SDK, or the MCP server, and pass the parent step on every event so the causal links exist. For a server deployment, set production mode, an admin token and allowed CORS origins.
Technical notes+
core/main.py is a FastAPI app (API_VERSION 0.5.0) whose lifespan calls validate_production_startup, rejecting the dev keys zizkadb_dev_local and agdb_dev_local, a set of published JWT secrets, and admin tokens shorter than _MIN_SELFHOST_ADMIN_TOKEN_LEN = 16; it also starts a retention loop and serves a deep health check across Postgres, Redis and Qdrant. CORS falls back to allow_origins ["*"] with credentials off when CORS_ALLOWED_ORIGINS is unset. mcp/zizkadb_mcp/server.py uses FastMCP, defaults ZIZKADB_HOST to the hosted cloud, auto-chains parent_id from session state, and exposes log_event, search_memory, verify_chain, get_context, why, query_events, time_travel, get_baseline and get_token_usage; its install ping posts to the vendor telemetry endpoint unless ZIZKADB_TELEMETRY is false. docs/adr/002-dual-write-postgres-qdrant.md makes Postgres the primary write and Qdrant best-effort. pyproject.toml holds only ruff config; LICENSE is AGPL-3.0.
Observed
- License
- AGPL-3.0 (SECURITY.md notes MIT for the MCP server directory)
- Language
- Python (FastAPI server, SDK, MCP server), plus a TypeScript SDK
- Storage
- Postgres primary, Qdrant optional for vector search, Redis
- Install surface
- Single Docker image on GHCR, full Docker Compose stack, pip and npm SDKs, uvx MCP server
- Interfaces
- REST API with Swagger, Python SDK, TypeScript SDK, MCP server, web dashboard
- Self-hosted limit
- One agent and one API key
- Telemetry
- One anonymous install ping per client process, opt-out via ZIZKADB_TELEMETRY=false (docs/telemetry.md)
- Security policy
- Private email reporting, fix deadlines by severity (SECURITY.md)
Read from README.md, pyproject.toml, docs/README.md, mcp/zizkadb_mcp/server.py, core/main.py, sdk/python/zizkadb/__init__.py, docs/adr/002-dual-write-postgres-qdrant.md, docs/telemetry.md, LICENSE, SECURITY.md.
Tags
Tech Stack
Media
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.