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.

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.