zizkadb-crewai
Self-hosted, open-source observability and causal debugging for CrewAI.
A CrewAI run is normally a black box: when the output is wrong, it's hard to see which task or
agent caused it. zizkadb-crewai logs every step of a crew run to ZizkaDB
with a parent_id link, so a run becomes a causal tree — and one call, db.why(), walks that
tree back to the root cause.
It doesn't only show what happened; it explains why it happened.
CrewAI run ──▶ ZizkaDBCrewLogger ──▶ ZizkaDB (causal store) ──▶ db.why() / dashboard
Install
Both packages are published on PyPI — no git URLs needed:
pip install zizkadb-sdk zizkadb-crewai crewai
Usage
ZizkaDBCrewLogger logs the crew lifecycle. Events auto-chain through the logger's last_event_id,
so you can omit parent_id to link each event to the previous one.
| Method | Event type | Purpose |
|---|---|---|
await log_kickoff(goal, **extra) |
crew_kickoff |
Start of the run (root of the chain) |
await log_task(description, *, parent_id=None, **extra) |
crew_task |
One node per task |
await log_output(output, *, parent_id=None, **extra) |
crew_output |
Final result |
from zizkadb import ZizkaDB
from zizkadb_crewai import ZizkaDBCrewLogger
# OSS-first: default to a local self-hosted instance; pass api_key only for remote/cloud.
async with ZizkaDB(host="http://localhost:8000") as db:
logger = ZizkaDBCrewLogger(db=db, agent="research-crew")
await logger.log_kickoff(goal="Research causal logging for AI agents")
result = await crew.kickoff_async()
for task_output in result.tasks_output: # one causal node per task
await logger.log_task(
description=task_output.description,
output=str(task_output.raw)[:2000],
)
await logger.log_output(str(result))
# The payoff — explain WHY the crew produced its output:
(await db.why(logger.last_event_id)).print()
db.why() reconstructs the chain:
crew_kickoff → crew_task (Researcher) → crew_task (Writer) → crew_output
Runnable example
A complete two-agent crew (Researcher → Writer) with the why() proof lives at
examples/crewai-agent/. It targets a self-hosted ZizkaDB
(http://localhost:8000) — no cloud signup required.
Monorepo dev install
pip install -e sdk/python -e integrations/crewai
Links
- PyPI:
zizkadb-crewai·zizkadb-sdk - Listed in CrewAI's community integrations:
awesome-crewai
License
zizkadb-crewai and zizkadb-sdk are licensed under AGPL-3.0.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 zizkadb_crewai-0.1.1.tar.gz.
File metadata
- Download URL: zizkadb_crewai-0.1.1.tar.gz
- Upload date:
- Size: 2.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03a2f016fc5c8739cf26a00b20a4f91d8658220979e7f978cf488d7f6bf065b0
|
|
| MD5 |
21d390f1a75fa1741b5b155235ffc3fc
|
|
| BLAKE2b-256 |
1a022c9e69dc7712f9aee848657a6a271d22fdd518c74ff100d3027fb2f048f8
|
File details
Details for the file zizkadb_crewai-0.1.1-py3-none-any.whl.
File metadata
- Download URL: zizkadb_crewai-0.1.1-py3-none-any.whl
- Upload date:
- Size: 3.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2eae496ab0be60bc6ef82eddedb14a9e5ba462ba3aea704c9bb847ea72a9a822
|
|
| MD5 |
40cdc0faa1a25519a3084e3904213ef6
|
|
| BLAKE2b-256 |
72e0d014990bf33189cb78a014cecec08d876d79253092a2b620c4e69b53b425
|