Test the four operations that define memory

OperationTestFailure looks like
RecallA fact stated once, many sessions agoNot found
UpdateA fact changed laterOld value returned
TimeWhat was true on a dateCurrent value returned instead
AbstainQuestion with no supporting memoryConfident invented answer

Add a scope test

Ingest data for two users and ask user A about something only user B said. The correct result is nothing. Public suites rarely test this; production depends on it.

Required baselines

  • No memory: the model alone.
  • Full context: the whole history in the window, where it fits.
  • Simple retrieval: vector search over raw messages.

Separate retrieval and answer scores

Score whether the right evidence was retrieved separately from whether the final answer was right. Otherwise a strong answer model can hide weak memory, or a weak judge can hide good retrieval.

The publication checklist

  1. Data

    Suite, version, subset; or your own set described.

  2. Configuration

    Memory settings, token budget, answer model.

  3. Judge

    Model, prompt, and agreement with humans on a sample.

  4. Outputs

    Per-question answers and judgements published.

  5. Uncertainty

    Confidence intervals or repeated runs.

A minimal harness

Pseudocode
for case in cases:
    for record in case.history:                      # original timestamps
        send(record.text, record.time, record.author)
    wait_for_jobs()
    ctx = recall(case.question, viewer=case.viewer, max_tokens=BUDGET)
    answer = model(ctx, case.question)
    log(case.id, ctx, answer, judge(answer, case.gold))