Memory that knows
what it doesn't know

Librarian finds the few conversations that matter in months of chat history, lets Reactor answer with citations, and says “not in memory” when the answer isn't there.

Try a question
87.1
offline score on dev
0.2%
of the archive read per question
146/146
test questions answered by Reactor
11/16
missed facts recovered by ask-back

Live replay

One question, two hundred conversations

Every answer below was given by Reactor on the hidden test set. Each dot is one conversation in the user's archive; the lit ones are all Reactor was shown.

Loading recorded Reactor answers…

← → step · / pick a question · A next question Reactor asked back on

How it works

Code does the searching. Reactor does the reading.

Retrieval, dates and arithmetic run locally in milliseconds. Reactor, the only model allowed to answer, reads a small dated evidence pack and cites it.

  1. 01

    Route

    Each question goes to one of five lenses: a fact about me, something you told me, counting across chats, something that changed, dates and gaps.

  2. 02

    Retrieve

    BM25 and bge-small embeddings, fused and reranked by a cross-encoder. All local, no hosted model.

  3. 03

    Pack

    About three dated sessions out of two hundred, in time order, plus notes our code computed, such as day gaps and the latest value.

  4. 04

    Answer and cite

    Reactor answers from the pack and labels the passages it used; code maps them to session ids.

  5. 05

    Abstain

    When no passage states it, the answer is “not in memory”. Near-misses, other people's pets and plans that never happened, don't count.

Ask-back

Reactor searches the user's memory itself

Reactor's one tool is opening a web page, so we give it a private, per-question link to this one user's archive, served by our own search. It is not a web search.

Round 1

Pack and a link

Reactor gets our evidence pack plus the archive link, and is told to search before it concludes, and always before it says “not in memory”.

Round 2

Everything it found

In the same Reactor history, it gets the pack plus every passage its own queries returned, labelled, so the final answer cites real sessions.

11/16

On dev, where our pack missed a gold session, two plain keyword follow-ups recovered it in 11 of 16 questions.

“What kitchen gadget did I get before the Air Fryer?” → the Instant Pot session.

Results

Measured offline, before every Reactor call

Our harness scores any retrieval variant against gold in minutes: does the pack let a reader answer, are the citations right, how long is it. That let us iterate all night on one slow Reactor.

Offline score S (0–100)
Systemdevdev200
Naive keyword baseline42.9–
Generic hybrid retrieval73.4–
Routed v186.084.9
Routed v3, submitted87.187.0
v3 on dev, by question type
TypeS
Fact about me87.4
What you told me93.0
Counting across chats85.8
Something changed91.5
Dates and gaps80.3

Test submission

146/146

answered by Reactor, 13 of them “not in memory”, a citation on every answer, zero format errors. No hosted LLM anywhere in the pipeline.