Kremis
A knowledge graph that records, associates, and retrieves — but never invents. Same input, same output. Honest about what is fact, what is absent, and nothing in between.
The problem
An LLM is fluent and confident even when it is wrong. Ask it for a fact it never saw and it will often produce a plausible one anyway — no trace, no provenance, no way to tell recall from invention.
The usual framing says the hard problem is generating knowledge. Kremis takes the opposite posture: the hard problem is being able to verify it. A model is a good narrator and a poor ledger. So give it a ledger it cannot lie to.
The approach
Kremis is the substrate, not the model. It holds what is actually known and answers only from that — a missing entity returns an explicit not found, never a guess.
- A pure deterministic core.
kremis-coreis Rust with no async and no floating-point: same input always produces the same output. The graph starts empty — zero pre-loaded knowledge — and emerges entirely from ingested signals, never from assumptions. - State you can hash. Every result traces to ingested data, and the full graph state is hashed with BLAKE3. Two runs over the same signals are byte-for-byte comparable.
- Proof-carrying answers. A
/certifyendpoint returns reproducible Verifiable Query Certificates — an answer you can replay and check, not one you have to trust. Canonical KREX snapshots give deterministic binary exports for provenance and audit. - Pure core, network at the edge. I/O, HTTP, and concurrency live in a thin
application layer (tokio, axum, clap) wrapped around the core. Three ways in —
CLI, HTTP REST, and an MCP bridge — so an AI assistant queries the same
verified graph a human does. Persistence is ACID via embedded
redb.
The proof
The honesty demo runs an LLM against the graph. Faced with six model-generated claims, Kremis confirmed the three that were present and rejected the three that were absent — no ambiguity.
# ingest signals, then serve
cargo run -p kremis -- ingest -f examples/sample_signals.json -t json
cargo run -p kremis -- server
# honesty demo (mock LLM, or --ollama for a real one)
python examples/demo_honesty.py
Status
Alpha — functional and tested; breaking changes may still land before v1.0. Rust throughout, Apache 2.0, built with AI assistance and a deterministic spine.
The project's spine
Keep it minimal. Keep it deterministic. Keep it grounded. Keep it honest.