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.
- conversation
- sent to Reactor
- cited
- found by asking back
Reactor's answer
Reactor asked back
Librarian's note
Evidence sent to Reactor
← → 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.
- 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.
- 02
Retrieve
BM25 and bge-small embeddings, fused and reranked by a cross-encoder. All local, no hosted model.
- 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.
- 04
Answer and cite
Reactor answers from the pack and labels the passages it used; code maps them to session ids.
- 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.
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.
| System | dev | dev200 |
|---|---|---|
| Naive keyword baseline | 42.9 | – |
| Generic hybrid retrieval | 73.4 | – |
| Routed v1 | 86.0 | 84.9 |
| Routed v3, submitted | 87.1 | 87.0 |
| Type | S |
|---|---|
| Fact about me | 87.4 |
| What you told me | 93.0 |
| Counting across chats | 85.8 |
| Something changed | 91.5 |
| Dates and gaps | 80.3 |
Test submission
answered by Reactor, 13 of them “not in memory”, a citation on every answer, zero format errors. No hosted LLM anywhere in the pipeline.