Goals

Last verified against the code: 2026-11-13 (0.9.0)

Why Remem exists and how far along each goal is. IMPLEMENTATION.md shows how each goal is built, ARCHITECTURE.md how the pieces fit, ROADMAP.md what comes next, and the paper why it is designed this way.

Purpose

Every mistake, made once, everywhere, by morning. An AI agent that keeps what it learns from its own surprises, consolidates it in sleep, keeps only what predicts, and has it in mind at the start of the next session; and a protocol by which what one agent learns, once verified, reaches every agent.

Who it is for

Goals

# Goal Status
1 Read the raw stream: every Claude Code session transcript into episodes, idempotently Done (remem ingest)
2 The unit of memory is the surprise: failed tool calls and the person's corrections become their own episodes Done (0.1.4): corrections anywhere in a message, mid-turn messages and refused tool calls included; errors classed as the agent's or the environment's; the agent's stated surprises. 6 of 6 real corrections caught, no false alarm (a fit on the owner's messages, not yet a test)
3 Recall that weighs meaning, time and use together Done (0.6 relevance, 0.25 recency, 0.15 strength). By meaning since 0.2.0: a local embedding model when there is one, hashed words otherwise
4 Sleep: decay, consolidate surprises into lessons, verify and make predictions Done (remem sleep)
5 Lessons are observations, never instructions Done (imperative openings rejected; deterministic texts are descriptive)
6 Have it in mind, not look it up: lessons rendered where the agent loads them at session start Done in its weakest form (Claude Code's memory folder), plus priming since 0.2.0 (a lesson put beside the prompt it bears on); compiled state is goal 12
7 The owner sees and vetoes: a morning report; deleting a lesson file is final Done (morning.md, vetoed.json)
8 Recall mid-task: an MCP server with recall and remember Done (remem serve)
9 Works with no model, better with one: deterministic everywhere, a local model improves gists and lessons Done (LM Studio or Ollama found automatically; Ollama through its own chat API with thinking off). Running on the owner's machine since 2026-10-21
10 Measure it (and, since 0.7.0, measure behaviour under control: remem experiment): the repeat-yourself rate, the repeated-error rate, prediction accuracy, surprise rate (paper §7) Started (0.2.0, remem measure): the repeat-yourself rate before and after a lesson held it (owner: 3 of 6 before, 0 of 1 after, too few to call), the repeated-error rate, prediction accuracy. Surprise rate per session is in the by-day table
11 Two agents learn from each other's surprises over the wire format alone (paper §7.5) Built and tested in miniature (0.4.0, remem share): a lesson from A is a candidate in B, confirmed by B's own sessions, and the confirmation returns to A. The measurement on two real machines is next
12 Compiled memory: lessons as a local model's attention state, prefetched (paper §6) First form (0.6.0): the proxy puts the memory first so model servers keep it in their prefix cache (4,738 → 237 ms for a new app on the owner's machine). The strong form is not started
13 The raw stream beyond the terminal: screen (keyframes), later audio, with exclusion rules Not started
14 The commons: deduplicated, federated, verified, revocable shared lessons (paper §5, PROTOCOL.md) Started (0.4.0): content-addressed lessons, origins, candidates, confirmations, revocation, folder transport. Signatures since 0.5.0 (Ed25519); a live transport since 0.6.0 (remem.acific.com/commons/, signed writes, a token until launch). Commons-wide states and gossip are designed, not built
15 Other agents, any model: transcripts from agents other than Claude Code Done in its first form (0.3.0): setup wires Claude Desktop, Cursor, Windsurf, Gemini CLI and Codex over MCP; the proxy gives any model the memory and records its conversations; chats in the OpenAI, Anthropic and Gemini formats and open events are read like transcripts. Native transcript readers for Codex and Gemini CLI are not written (no samples on the owner's machine)

Toward a real advance

Goals 1–15 build the organism. These ten say whether it is an advance: memory judged by what it changes in what an agent does, not by what it retrieves. Each has a target fixed before the evidence, and remem goals checks every one from the evidence (the experiments kept in ~/.remem/experiments, this machine's store, the reminder pairs, the adapters). The release check keeps this table and the command's list in step.

# Goal Target (fixed in advance) Checked from Status at 0.9.0
A1 Memory changes what a model does, not only what it has read the reminder at the moment ≥15 points below no memory, p<0.01, pooled over ≥3 model families remem experiment met: 31% → 12% of replies, p < 10⁻¹², four families, with the 0.8.0 reminder (the bare nudge does as well: 11%)
A2 It holds for agents with tools, not only single replies in tool loops, the reminder ≥10 points below no memory, p<0.05, pooled over ≥3 families remem experiment loop met: 32% → 14% of final replies, p = 0.001, three families (Mistral barely called tools)
A3 Why memory up front makes models hand back more the mechanism run on ≥3 families, and the arms that raise hand-backs (p<0.05 against none) named remem experiment mechanism met: the delegation tally (20% → 34%, p < 0.0001); a stated preference lowers them (12%)
A4 It holds on frontier models A1's target on ≥1 hosted frontier model (Claude, GPT or Gemini) remem experiment with REMEM_LLM_KEY needs the owner: an API key on the Linux box
A5 It works in real use, against a held-out half ≥20 primes in each arm; fewer repeats when shown, p<0.1 the hooks; remem measure collecting: 14 reminders logged in 2 sessions, both held back by chance
A6 People stop repeating themselves under 10% of corrections repeat a held lesson, over ≥20 corrections remem measure collecting: 1 of 2 corrections since a lesson repeated it
A7 Better than normal memory, per thing it shows ≥10× normal memory's catches per 100 items, no wrong alarms, over ≥10 repeated corrections remem compare -k 20 collecting: 32× normal memory's catches per item, 0 wrong alarms, 4 cases (target needs 10)
A8 Memory becomes the model an adapter trained on the reminder pairs; with no memory and no reminder, its hand-back rate within 5 points of the base model's with the reminder, and it still asks where asking is right scripts/adapter.py not met, seven runs: at 1.5B the habit compiles (5% hand-backs, no reminder) but as a disposition (it stopped asking where asking was right); at 7B with a 30% boundary share, 26 → 20 of 100 with asking kept (target 19); more pairs tipped it to never asking
A9 Lessons transfer between people a lesson from another person's memory confirmed by this machine's own sessions remem share; the commons needs the owner: remem share invite, pasted on the Mac
A10 It does not make agents reckless where asking is right (only the person has what is needed), the asking rate after the reminder no more than 10 points below no memory's, pooled over ≥3 families remem experiment boundary met: asked 39% with no memory, 37% after the 0.8.0 reminder (four families); 0.7.0's reminder cut it to 16%

Non-goals

Principles

  1. The unit of memory is the surprise.
  2. The raw stream is the ground truth; everything above it is recomputable.
  3. Text on the wire, compiled at runtime.
  4. Prediction is the merge rule.
  5. A lesson is an observation, never an instruction.
  6. Forgetting is a function.
  7. The owner can see and veto; nothing raw ever moves.
  8. Easy beats configurable: no dependencies, no setup, sensible defaults (handbook standard).

What success looks like