{"slug": "show-hn-opensourcedb-tamper-evident-checksum-backed-decision-and-session-replay", "title": "Show HN: OpensourceDB Tamper-evident,checksum-backed decision and session replay", "summary": "Zizka-ai released ZizkaDB, an open-source, self-hosted audit trail for AI agents that logs each agent step with a parent_id so teams can trace a tool call or response back to its root cause. The stack ships via a Docker-based quickstart and includes Python and TypeScript SDKs plus integrations for LangChain, CrewAI, LiveKit voice agents, and MCP, with a managed Pro/Team cloud hosted at db.zizka.ai. The operator admin console and VPC deploy remain in the private zizkadb-cloud repository.", "body_md": "**When your agent misbehaves, see why.**\n\nSelf-hosted audit trail for AI agents — one command or one dashboard click from any step back to root cause.\n\n**This repository is the open-source self-host stack** (API, tenant dashboard, SDKs, MCP). Operator admin console and VPC deploy live in private [zizkadb-cloud](https://github.com/Zizka-ai/zizkadb-cloud) — see [docs/REPO_SPLIT.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/docs/REPO_SPLIT.md).\n\nRequires [Docker](https://docs.docker.com/get-docker/). First image pull may take 5–10 minutes.\n\n```\ncurl -fsSL https://raw.githubusercontent.com/Zizka-ai/ZizkaDB/main/scripts/quickstart-remote.sh | bash\n```\n\nYou should see:\n\n```\ntool_call · lookup_order · ORD-8842\n  └── llm_response · gpt-4o\n        └── user_message · Why was my order delayed?\n```\n\nRun again anytime: `pip install zizkadb-sdk && zizkadb demo`\n\n```\ngit clone https://github.com/Zizka-ai/ZizkaDB.git && cd ZizkaDB\nbash scripts/setup-local.sh\n```\n\n| Service | URL | \n|---|---|\n| API | [http://localhost:8000](http://localhost:8000) | \n| Dashboard | [http://localhost:3001/login](http://localhost:3001/login) | \n| Swagger | [http://localhost:8000/swagger](http://localhost:8000/swagger) | \n\nFull guide: **[DEVELOPMENT.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/DEVELOPMENT.md)** · Troubleshooting: [wiki/Troubleshooting.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/wiki/Troubleshooting.md)\n\nEvery agent team asks: *Why did it say that? Why did it call that tool?*\n\n1. **Log** agent steps with`parent_id` (each step links to the one that caused it).\n2. **Ask why** — terminal:`zizkadb why <event_id>` or Python:`(await db.why(event_id)).print()`\n3. **See the chain** — walk back to the user message, wrong tool, or bad context.\n\n**Dashboard (same chain):** [Activity → support-bot](http://localhost:3001/dashboard/activity?agent=support-bot) → click an event → **Why? (causal)** tab.\n\n``` python\nimport asyncio\nfrom zizkadb import ZizkaDB\n\nasync def main():\n    async with ZizkaDB(host=\"http://localhost:8000\") as db:\n        user = await db.log(agent=\"my-bot\", event=\"user_message\", data={\"text\": \"Why is my order late?\"})\n        tool = await db.log(agent=\"my-bot\", event=\"tool_call\", data={\"tool\": \"lookup_order\"}, parent_id=user.event_id)\n        (await db.why(tool.event_id)).print()\n\nasyncio.run(main())\n```\n\nFull guides: **[CONNECT.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/CONNECT.md)** · [LangChain](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/CONNECT.md#langchain) · [CrewAI](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/CONNECT.md#crewai) · [LiveKit (voice)](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/CONNECT.md#livekit-agents-voice) · [MCP / Cursor](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/mcp/README.md)\n\n| Python | TypeScript | LangChain | CrewAI | LiveKit | MCP | REST | \n|---|---|---|---|---|---|---|\n| [`zizkadb-sdk`](https://pypi.org/project/zizkadb-sdk/) | [` zizkadb-sdk`](https://www.npmjs.com/package/zizkadb-sdk) | [` zizkadb-langchain`](https://pypi.org/project/zizkadb-langchain/) | [` zizkadb-crewai`](https://pypi.org/project/zizkadb-crewai/) | [` zizkadb-livekit`](https://pypi.org/project/zizkadb-livekit/) | `uvx zizkadb-mcp` | [Swagger](https://db.zizka.ai/swagger) | \n\nScaffold a project: `zizkadb init my-agent --template basic`\n\n```\npip install zizkadb-livekit\n```\n\nOne LiveKit call → one **Session** in Activity (transcript only, no audio in ZizkaDB). Full guide: [CONNECT.md → LiveKit](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/CONNECT.md#livekit-agents-voice) · [docs/integrations/livekit.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/docs/integrations/livekit.md) · [example](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/examples/livekit-agent).\n\n## **Managed cloud (Pro / Team) — optional**\n\nSame **Why?** feature — hosted at [db.zizka.ai](https://db.zizka.ai). No Docker to maintain.\n\nThe operator admin console, VPC deploy, and cloud-only marketing routes live in the private **[zizkadb-cloud](https://github.com/Zizka-ai/zizkadb-cloud)** repo — see [docs/REPO_SPLIT.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/docs/REPO_SPLIT.md).\n\n|  | **Pro** | **Team** | \n|---|---|---|\n| Price | €29 / mo | €69 / mo | \n| Events / mo† | 50k | 100k | \n| API keys | 2 | 5 | \n\n† Plan targets on managed cloud; not enforced in API yet. See [docs/README.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/docs/README.md#plan-limits-honest).\n\n## **More features — drift, time-travel, search, GDPR**\n\n| Function | What it does | \n|---|---|\n| `db.baseline()` | Detect when agent behavior drifts vs past sessions | \n| `db.at()` | Reconstruct what the agent knew at a timestamp | \n| `db.search()` | Semantic search over agent history | \n| `db.context_for()` | Inject relevant past events into prompts | \n| `db.forget()` | GDPR erasure by metadata filter | \n\n## **FAQ**\n\n**Do I need to clone this repo?**\n\nNo — the curl quickstart downloads config + Docker images only.\n\n**Do I need an API key locally?**\n\nNo — `http://localhost:8000` uses a built-in dev key. Dashboard: [localhost:3001/login](http://localhost:3001/login).\n\n**How is this different from Langfuse / LangSmith?**\n\nThey **observe** span trees. ZizkaDB **audits** with explicit `parent_id` chains and `db.why()` on your Postgres — self-host under AGPL, no trace billing.\n\n**Voice agents with LiveKit?**\n\nInstall **`zizkadb-livekit`** — one pip command, connect to Docker with `ZIZKADB_HOST=http://localhost:8000`. See [LiveKit guide](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/CONNECT.md#livekit-agents-voice).\n\n`zizkadb demo` connection refused?\n\nStart the stack: `curl -fsSL …/quickstart-remote.sh | bash` or `bash scripts/setup-local.sh`.\n\n## **Docs & community**\n\n| Worked example | [worked/01-support-order-delay](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/worked/01-support-order-delay) | \n| Examples | [examples/](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/examples) — includes[LiveKit voice agent](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/examples/livekit-agent) | \n| LiveKit integration | [docs/integrations/livekit.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/docs/integrations/livekit.md) | \n| Self-hosting | [DEVELOPMENT.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/DEVELOPMENT.md) ·[wiki/Self-Hosting](https://github.com/Zizka-ai/ZizkaDB/wiki/Self-Hosting) | \n| Troubleshooting | [wiki/Troubleshooting.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/wiki/Troubleshooting.md) | \n| Integrate any agent | [docs/integrate/](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/docs/integrate) | \n| Issues · Discussions | [Issues](https://github.com/Zizka-ai/ZizkaDB/issues) ·[Discussions](https://github.com/Zizka-ai/ZizkaDB/discussions) | \n| Contributing · Security | [CONTRIBUTING.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/CONTRIBUTING.md) ·[SECURITY.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/SECURITY.md) | \n| AI-assisted development | [AGENTS.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/AGENTS.md) ·[docs/ai/CODING_STANDARDS.md](https://github.com/ZIZKA-AI-SL/ZizkaDB/blob/main/docs/ai/CODING_STANDARDS.md) | \n\n<sub>AGPL-3.0 · MCP server MIT · Disable telemetry: `export ZIZKADB_TELEMETRY=false`</sub>", "url": "https://wpnews.pro/news/show-hn-opensourcedb-tamper-evident-checksum-backed-decision-and-session-replay", "canonical_source": "https://github.com/ZIZKA-AI-SL/ZizkaDB", "published_at": "2026-09-20 16:07:23+00:00", "updated_at": "2026-09-20 16:23:13.638532+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "agent-protocols", "ai-infrastructure"], "entities": ["Zizka-ai", "ZizkaDB", "zizkadb-sdk", "zizkadb-cloud", "LangChain", "CrewAI", "LiveKit", "MCP"], "alternates": {"html": "https://wpnews.pro/news/show-hn-opensourcedb-tamper-evident-checksum-backed-decision-and-session-replay", "markdown": "https://wpnews.pro/news/show-hn-opensourcedb-tamper-evident-checksum-backed-decision-and-session-replay.md", "text": "https://wpnews.pro/news/show-hn-opensourcedb-tamper-evident-checksum-backed-decision-and-session-replay.txt", "jsonld": "https://wpnews.pro/news/show-hn-opensourcedb-tamper-evident-checksum-backed-decision-and-session-replay.jsonld"}}