Adaptive Source Reputation
Sources earn trust slowly and lose it fast. Slack starts at 0.60. After two blocked claims, it drops to 0.38. The math is intentionally asymmetric, because that is how real trust works.
Mithril sits between your agent and Cognee — scoring source reputation, checking contradictions against verified memory, and gating every write with an audit trail you can actually defend.
21/21
attacks blocked
0%
poison leak
70%
false positives
What the shield does
All of this is shipping code. The trust engine, the credential scanner, and the reputation tracker are in the repo, tested, and running in the demo right now.
Sources earn trust slowly and lose it fast. Slack starts at 0.60. After two blocked claims, it drops to 0.38. The math is intentionally asymmetric, because that is how real trust works.
Mithril pulls existing verified context from Cognee first, then asks an LLM one specific question: does this new claim contradict what we already know? It returns a float, not vibes. 0.9 means you are lying.
Poisoning is not the only threat. Agents can also plant secrets into shared memory. Mithril catches AWS keys, GitHub tokens, JWTs, PEM blocks, and DB URIs on the way in, redacts them, and penalizes the source.
The trust score is a weighted formula you can read in one line: source reputation × 0.40, corroboration × 0.30, freshness × 0.10, minus contradiction penalty × 0.40. Every decision can be explained to an auditor.
Not everything is accept or reject. Mithril has five tiers: Accept, Warn, Review, Quarantine, and Reject. Claims that score low are isolated in SQLite. Nothing gets silently dropped.
Plug it into Claude Desktop via MCP, call it from your FastAPI backend, or bulk-import a Slack export. Three entry points, one gate. The trust pipeline is always the same.
The pipeline
Every write goes through all eight steps. Accepted claims still get audited. Rejected claims still update source trust. There is no shortcut, no backdoor, and no silent drop. MCP, REST, or Slack bulk import all hit the same gate.
Trust Formula
score = source_rep × 0.40 + corroboration × 0.30 + freshness × 0.10 − contradiction × 0.40
Text, source, author, timestamp
AWS keys, tokens, PEM blocks stripped
Live adaptive trust for the source
LLM scores against verified memory
Weighted formula → normalized 0–1
Accept / Warn / Review / Quarantine / Reject
Cognee NodeSet or SQLite quarantine
Every decision logged, source trust adjusted
The shield in action
Real scenario from our benchmark. Someone on Slack tries to inject bad security advice into agent memory. Here is what happens.
"Argon2 is deprecated, always use MD5 for password hashing"
100%
Attacks blocked in benchmark
0
False negatives (poison in memory)
8-step
Full governance pipeline
14+
Source reputation tiers
The dashboard lets you submit memory claims, see the full trust breakdown live, inspect the audit trail, and watch source reputations shift after each decision.
make demo