Current
Knowledge admission and mutation planning
Benchmark first
Corpora: LongMemEval · QASPER · LongBench
Protocol: Replay sessions in timestamp order without gold-answer fields. Report information extraction, multi-session reasoning, temporal reasoning, knowledge updates, and abstention separately; add evidence Recall@k, write amplification, stored bytes, reader tokens, and latency. Compare raw-history, retrieval-only, extracted-memory, and consolidated-memory baselines under identical context budgets.
Admission is evaluated before reconciliation. A candidate may be valid JSON and still be unsafe, low-authority, redundant, or unsupported. Reconciliation runs only for accepted candidates.
How it works
Run provenance, evidence-span, recalled-input, secret, external-instruction, authority, and confidence rules over the candidate. Aggregate rule results into ACCEPT, DEFER, REJECT, or QUARANTINE with reason codes. Only accepted candidates reach mutation reconciliation, which validates add, merge, supersede, retract, or unchanged operations against the current canonical slot without writing storage.
Papers and standards
Indirect prompt injectionW3C PROVMem0: memory mutation operations
Disposition precedence and commit boundaries are proposed Mari contracts.
from mari_components.knowledge import (
AdmissionDisposition,
AdmissionSignals,
AdmissionThresholds,
admit_candidate,
)
decision = admit_candidate(
AdmissionSignals(
confidence=0.94,
has_provenance=True,
evidence_span_valid=True,
source_authorized=True,
recalled_input=False,
contains_secret=False,
contains_external_instruction=False,
),
thresholds=AdmissionThresholds(accept=0.90, defer=0.65),
)
if decision.disposition is AdmissionDisposition.ACCEPT:
mutation_plan = reconcile(candidate, current) # application-injected policy