Know when the evidence behind AI knowledge has changed.
Moonwire tracks the evidence behind agent memories, decisions and artifacts, then invalidates downstream knowledge when the source changes.
Problem
Knowledge outlives its evidence.
Agents turn database rows, policy files, API responses and SaaS records into answers, memories and actions. Those outputs persist after their sources change.
Moonwire makes evidence change an explicit, auditable systems event.
{ "canonical_ref": "mw://acme/policy/refunds", "version": "v7", "content_hash": "sha256:…", "metadata": { "owner": "support-platform" } } No policy text is stored.
How it works
Lineage in. Invalidation out.
Moonwire records immutable evidence versions and explicit dependency edges. When evidence changes, one durable event walks the downstream graph once—even through cycles.
30-second code example
Record the evidence you used.
Your application keeps the content. Moonwire receives references, versions, selectors and lineage.
from moonwire import Moonwire
with Moonwire(api_key=os.environ["MOONWIRE_API_KEY"]) as moonwire:
with moonwire.execution() as run:
run.evidence(
ref="mw://acme/policy/refunds",
version="v7",
selector={"fields": ["refund_window_days"]},
)
result = my_agent(...)
artifact = run.commit(
type="answer",
external_id="answer-123",
)
status = moonwire.check(artifact.id)
if not status.safe_to_use:
revalidate(result)Deliberately narrow
Why this is not another vector database or RAG platform
Self-hosting
One service. One database.
$ git clone https://github.com/pycarrot/moonwire
$ cd moonwire
$ docker compose up -d --build --wait
✓ postgres healthy
✓ moonwire healthySDK · CLI · REST
state · outbox · audit
Security and privacy
Infrastructure that minimizes what it knows.
Documentation
Everything needed to ship and operate Pulse.
Open source
Evidence changes. Your agents should know.
Apache-2.0 licensed infrastructure for systems that need an auditable answer to “is this artifact still safe to use?”