◆ Human–AI collaboration

Collaborative
Episodic Memory

The next frontier of human–AI work

We taught machines to reason with us. We never taught them to remember with us. Thinking together happens turn by turn — a claim, a pushback, a correction, a dead end — and that sequence dies with the window.

The frontier isn't a bigger context window. It's memory that is episodic — formed in turns — and collaborative: shared across your own sessions, and across the people thinking alongside you.

01 · Where memory is made

An episode is a sequence of turns

Not a document. Not a summary. A lived exchange — and only a few moments in it carry any weight later.

YOU
How are other retailers accelerating this?
framing
AI
Here are four tiers of players, with sources…
output
YOU
Don't treat their timeline as validation.
constraint
AI
No connection to that company appears in any primary source — worth re-checking where you saw it.
correction
YOU
Pick the decision class that touches no store and no shopper. Prove the pattern, not the domain.
decision
AI
Expanding that into a table…
output
Most of the transcript is scaffolding
Restating, formatting, fetching, apologising. It can be regenerated any time, for free.
A few turns are irreplaceable
The moments where judgement entered. No amount of re-prompting brings those back.
02 · What's worth keeping

The six kinds of claim
worth keeping

Everything durable an episode leaves behind falls into one of these. They are not equally valuable.

Constrainta rail you must not cross
Decisionwhat was chosen, and why
Correctionwhere the model was wrong
Dead endwhat to stop trying
Open questionwhat was never settled
Factverified, sourced
The correction is the rarest thing in the corpus
It is the one artifact a model cannot produce alone — the moment a human overruled it. A fresh session will confidently make the same mistake again.
The dead end is the cheapest win
“We tried that; here's the threshold where it stops paying.” Nobody should ever have to rediscover it.
A summary keeps the conclusions and drops exactly this layer. That's why summaries don't make good memory — they preserve what the AI said, and lose what the human corrected.
03 · Crossing boundaries

Why memory has to leave
the session it was made in

It's a log. Memory only becomes memory when it can cross three boundaries.

in session
next day
next week
next month
a colleague
Boundary 1
Time
Tomorrow-you has no access to today's context.
Boundary 2
People
Your colleague is re-deriving what you already settled.
Boundary 3
Scale
Ten episodes hold more truth than any one of them — if they can be read together.

Portability is not a convenience.
It is the precondition for the next three things.

04 · Purpose one

Reconciling you
with your earlier self

Across sessions, one person is not one voice. August-you and October-you are two vantage points — and they don't always agree.

Episode · August
“Capture the why, not just the what.”
Episode · September
“Confidence has to survive the hand-off.”
Recurrence — you landed here again, independently
Episode · August
“A → B is a sequence to walk through.”
Episode · October
“They're different kinds of system entirely.”
Revision — you changed your mind
Recurrence = it held
You returned to a position weeks later without prompting. That's durability — not confirmation. Nobody else showed up.
Revision = it moved
Usually the most valuable thing in a personal corpus. Both sides are kept and dated. Later is not automatically righter.
Treat a person as a single voice and a solo corpus looks contradiction-free by definition — and the one thing you most needed to see, that you changed your mind, disappears.
05 · Purpose two

From divergent
to convergent

Three people ran three sessions on the same question. The point isn't to pick a winner — it's to see what survives contact with other minds.

Alice · August
“Ship the guardrail first.”
Bo · September
“Guardrails before frontends.”
Chen · September
“Frontend first — we need adoption.”
Alice · October
“Guardrail first, again.”
Reconcile
Corroborated
Guardrails first — two people, apart
Recurrent
Alice returned to it — held over time
Live disagreement
Chen dissents — carried forward, not averaged
ISOLATED
one episode — said once, by one person
RECURRENT
one person, several episodes — it held across time
CORROBORATED
several people, reached separately — the strongest claim a corpus can make
Frequency is not convergence. Three people agreeing and one person repeating themselves in an afternoon are identical to a word counter — and completely different as evidence.
A convergent memory that quietly averaged away Chen would be worse than no memory at all. Disagreement is a finding, not noise to be smoothed.
06 · Purpose three

Distillation —
many episodes, one gist

Human memory doesn't replay. It consolidates: strip the episode down to what generalises, keep a pointer back to where it came from.

Raw episodes
every turn, every detour
Residue
decisions · constraints · corrections · dead ends
Themes
same idea, different words — linked by meaning
A gist you can hand on
tiered by evidence · every claim traceable
Compress
A 5-million-token transcript becomes a page you can actually load.
Weigh
Claims sort by how many independent vantage points back them.
Cite
If it can't be traced to something a human actually said, it doesn't ship.
A distillation is not new evidence — it's made from the episodes beside it. Fold it back in and each round amplifies the last. Distilling twice must not change the answer.
Silence is not dissent. If someone shared only part of a session, what's missing means not shared — never disagreed with.
07 · The payoff

What the next session
starts with

Cold start
“Tell me about X.”
re-derives · repeats corrections · re-walks dead ends
Warm start
“Here's what's settled.”
opens with the constraints, the corrections, and the open questions
Settled
Decisions and constraints, with who backed them.
Contested
Where people — or your own two selves — still disagree.
Open
The questions nobody has answered yet.

That third column is the one
no summary ever gives you.

08 · Methodology & techniques

The seven stages that turn
episodes into a scored brief

Everything above is the idea. This is the arithmetic — a deterministic seven-stage pipeline, borrowed stage-for-stage from how human memory consolidates, with one stage deliberately refused.

1
Encode
episodic trace
Tulving
2
Overlap
pattern separation
/ completion
3
Replay
hippocampal→
neocortical
4
Schema
schema formation
Bartlett
5
Gist
fuzzy-trace
Brainerd & Reyna
6
Conflict
blending —
refused
7
Forget
Ebbinghaus
decay
Human consolidation blends conflicting episodes — a known source of confabulation. An engineering system must not. Contradictions are surfaced for a human instead of averaged into a comfortable middle.
Stage 1 · Encode

Scoring each claim by its type and its age

# salience prior for every extracted item prior = type_weight × recency_decay
Item typeWeightWhy
correction1.60a human override — free supervision, the highest-value signal in the corpus
decision1.40settled outcomes
constraint1.30hard rules
preference1.20working style
dead end1.15already tried, failed
fact1.00baseline
question0.90unresolved

Extraction is tuned for recall — it over-collects, and later stages suppress the noise. Anything that fails a prose test (markup, path soup, template headers) never enters.

Stage 2 · Overlap

Deciding when two claims say the same thing

This stage decides what every later stage can even see. It's also where the method nearly failed.

# edge exists between items i and j when cos(vi, vj) τ v = L2-normalised TF-IDF · τ = 0.24 # candidates from an inverted index over the 12 heaviest terms # cost ≈ O(n · candidates), not O(n²)
Lexical · TF-IDF
Compares words. Offline, deterministic, cheap.
“codify the why, not the what”
↕ no shared vocabulary → no edge
“confidence must survive the boundary”
Semantic · embeddings
Compares meaning. Finds the same thought in different words.
same two claims
cosine 0.83 → edge
0
edges found by lexical matching on a controlled 3-claim corpus
0
themes — every later stage was doing correct arithmetic on nothing
2
recurrent threads recovered once semantics were switched on
But embeddings cannot see negation. “raise prices” and “do NOT raise prices” embed at 0.905 — closer than a true paraphrase. So overlap is semantic and conflict detection stays lexical, on purpose. The hybrid is forced by the problem, not a hedge.
Stage 3 · Replay

Ranking claims by how many episodes and people back them

Personalised PageRank over the similarity graph — teleport mass is item salience. This is the core of the whole engine.

# personalised PageRank · damping d = 0.85 · ≤ 40 iterations r = d · Wᵀ r + (1 d) · prior # every edge is scaled by how far it reaches wij = cos(vi, vj) × reach(i, j)
Edge spansreachMeaning
different owners1.75two people arrived at it independently
same owner, different episodes1.25you returned to it later
same episode1.00restating it in the moment
The unit is the episode, not the person. Weighting by owner alone treats a solo corpus as having no structure at all; weighting by reach gives one person's evolving thought a rank of its own — strictly below genuine corroboration.
Stage 4 · Schema

Grouping linked claims into themes, and scoring each theme

# theme score score = replay_mass × (0.35 + cohesion) × recurrence × corroboration cohesion = realised internal edges / possible internal edges recurrence = 1 + log₂(n_episodes) corroboration = 1.75 if n_owners > 1 else 1.00

Two guards, in order. (1) Mutual k-NN — an edge survives only if each endpoint is among the other's 10 strongest neighbours. (2) Average linkage — two groups merge only when their mean cross-similarity clears the bar, so one bridging item can't fuse unrelated themes.

557
items collapsed into one meaningless mega-theme under naive single linkage
349
still fused with mutual k-NN alone
10
largest theme with average linkage — and 285 coherent themes
TierConditionReading
corroborated≥ 2 ownersindependently reached — the strongest claim a corpus can make
recurrent1 owner · ≥ 2 episodesit held across time
isolated1 episodesaid once

Citations guarantee at least one item per owner — a theme labelled “corroborated by 3 people” whose evidence all traces to one of them is not auditable.

Stages 5–6 · Gist & conflict

Choosing one claim to represent a theme — and flagging the ones that contradict

# gist = the prototype, verbatim — never a paraphrase gist(T) = argmaxi∈T replay_mass(i) # divergence, NOT a merge divergent(i,j) cos(vi,vj) 0.42 ( negation_parity_flip antonym_clash ) ¬( temporal_restatement same_record_rephrase duplicate )
Temporal restatement
Strip digits; if ≥ 0.85 Jaccard identical it's a progress update, not a contradiction.
Same-record rephrase
Within one episode only a real correction counts — otherwise you're restating yourself.
Duplicates
Deduped on digit-normalised text.
21 → 2
divergences on a real corpus once those three suppressions were added
0 / 3
measured precision of polarity detection on a clean corpus — the weak link
Polarity is not meaning. Counting negation tokens mod 2 makes “does not need to know X” read as opposition to “only needs Y” — when they agree. The same pair got reported as both a theme and a contradiction. Until this is replaced with bounded semantic typing, read the divergence list as candidates for a human, never as findings.
Stage 7 · Forget

Letting old claims fade out of the brief, without deleting them

decay(age) = exp( ln2 · age / ) t½ = 120 days by default # below the salience floor (0.05) an item leaves the BRIEF, # and stays in the corpus. Nothing is ever deleted.
Measured on a real corpus

Only 16% of extracted items
were written by a human

54%
checkpoint artifacts — the agent's own summaries, i.e. derived evidence
47
turn-1 items that were injected system/skill instructions, attributed to the user
16%
genuine human-authored claims — the only real evidence in there
🪞
Unfiltered, 22 texts recurred verbatim across episodes and produced exactly 22 “recurrent” themes. The top result was the system prompt agreeing with itself — found confidently by both backends, because it is a real repetition. Of the wrong thing.
The rule this earns: an item is evidence only if a human authored it in that session. Derived and injected text must be excluded at ingest — not filtered later by whoever reads the brief.

The similarity threshold has to be set per corpus

Similarity floorValueResult
“unrelated” during calibration0.71cross-domain distractors
median pair in a real corpus0.7529a collection is topically homogeneous by construction
fixed 0.80 floor on real datap90840 edges — a hairball
median + 3σ0.862what actually worked

A fixed threshold cannot be right for both a tight single-topic corpus and a broad one. Set it relative to the corpus's own distribution.

What to fix first, in order of impact

First
Extraction
keep only human-authored claims — 84% noise → usable
Second
Polarity
replace parity counting with semantic typing
Third
Similarity
corpus-relative threshold

Swapping the model is the visible change. Filtering the input is what worked.

Honest limits. Cue-based extraction finds candidates, not ground truth. Lexical matching misses paraphrase — “0 recurrent” never means “nothing recurred”. Negation detection is token-parity based and measurably weak. And with one owner and one episode, both corroboration and recurrence are constant, so ranking degenerates to mass × cohesion. Check what went in before trusting what came out.