Current

Tiered memory consolidation

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.

Tiers are policies over cost and lifecycle, not hard-coded stores. Mari provides topic segmentation and a deterministic promotion planner. The host supplies compression models and commits selected revisions, keeping raw observations available for audit.

How it works

Filter observations cheaply, group them at attention-peak/similarity-valley topic boundaries, compress within bounded groups, and score promotion from recurrence, recency, usefulness, and evidence diversity. Expensive resolving, superseding, and summarization run in an offline call/token budget. Promotion creates a new artifact revision linked to every contributing observation.

Observation buffercheap filters · content hashes

topic boundary

Session groupsbounded compression

offline window

Consolidated artifactsresolve · supersede · review

Select promotions under explicit model-call and token budgets
from mari_components.knowledge import (
    ConsolidationBudget,
    PromotionSignal,
    plan_consolidation,
)

plan = plan_consolidation(
    [
        PromotionSignal(
            artifact_id="session:refunds",
            recurrence=0.9,
            recency=0.8,
            usefulness=0.95,
            evidence_diversity=0.7,
            estimated_calls=2,
            estimated_tokens=2400,
        )
    ],
    budget=ConsolidationBudget(max_model_calls=20, max_tokens=50_000),
    minimum_score=0.70,
)
assert plan.selected_ids == ("session:refunds",)