How recall works: cite, or refuse.
Every answer Dijin gives comes with its evidence, or it tells you it can't answer. It won't guess, and it won't make up a source.
The proof contract for agent memory
When agents share context through Dijin, every claim must survive the same test: cite, or refuse.
That means an agent can use a memory only when Dijin can attach the source event, DMF record, span, valid time, trust tier, and audit trail. If a scope blocks the evidence, Dijin says it is withheld. If the evidence does not exist, Dijin says “I don’t know.”
Policy withheld is not absence.
This distinction matters for AI agents. A connected agent should know whether a memory does not exist, or whether it exists but is outside the granted scope.
Cite-or-refuse, by design
Grounded answer
The answer comes with an evidence footer that lists the source events and DMF records it was built from. You can open every citation and check it.
Typed refusal
When the evidence isn't there, Dijin says so and gives a typed reason. It doesn't fill the gap with a guess.
Anatomy of a proof
Every grounded answer carries a sealed evidence pack. These are the fields a verifier reads. If even one is missing, Dijin refuses instead of answering.
Evidence ID
A stable handle for this exact piece of proof. You can cite it, revoke it, and audit it on its own.
Source event
The original moment the claim came from, the source itself rather than a summary of it.
DMF record
The owner-signed record in your portable archive. It's the same bytes you can verify offline.
Span
The exact range inside the source the claim is drawn from, so nothing rests on a vague whole-document reference.
Valid + transaction time
When the fact was true, and when Dijin learned it. Two clocks, so a fact that's been superseded stays honest.
Trust tier
How strongly the evidence backs the claim, so ranking never props up a weak source.
Model + pipeline version
Which extractor and version produced it, so every claim stays reproducible and traceable.
Refusal types
No evidence-backed memory for the request.
Nothing in your memory grounds the answer. Dijin returns "I don't know" rather than guessing.
Policy withheld
The evidence exists but a scope or policy blocks it. Dijin tells you it's withheld, not that it's absent.
Transport error
A connection or system fault. This is kept separate from a refusal, so you never mistake a glitch for an empty memory.
What's proven today
The proof comes in layers, and we only show what actually works today.