Docs

The Brain · 03.13

What the Brain Remembers (and What It Refuses to Guess)

Why deciding what to remember is a judgement call, what the on-device model can and cannot do — measured — and the tier you choose in Settings.

FormationSettings

The decision nobody can make with a threshold

Deciding whether a sentence is a standing rule, a one-off task, or noise is a judgement call, and the Brain is explicit about how it makes that call rather than hiding it behind a similarity number.

Here is the problem, measured against the bundled on-device model (multilingual-e5-small) rather than assumed:

Pair typeCosine similarity
Unrelated statements0.76 – 0.80
True duplicates (same rule, reworded)0.92 – 0.97
Same topic, different rule0.89 – 0.97
Direct contradictions0.93 – 0.98

Read the last two rows again. A contradiction is the most similar thing to the rule it overturns. "Always deploy on Friday" and "never deploy on Friday" scored 0.9763 — higher than any genuine duplicate in the set. The bands overlap, which means no similarity threshold, at any value, can tell "this is the same memory" apart from "this is the opposite memory."

That is why Agentis does not merge memories on similarity. Similarity only nominates a candidate; a separate signal decides. When two statements are close but not provably identical, the Brain writes both and raises a dispute rather than silently letting one absorb the other — because the alternative is that correcting your agent quietly reinforces the rule you were trying to overturn.

What the on-device model is, and isn't, for

The bundled model is a retrieval embedder. It is genuinely good at that: unrelated text sits at 0.76–0.80 against 0.92+ for duplicates, and it matches across languages well ("Never deploy on Friday" ↔ "Nunca faça deploy na sexta-feira" scores 0.95).

It cannot classify intent. Asked to sort statements into rule / preference / fact / lesson / task / noise, it scored 44–63%; on the only decision that matters in practice — remember this, or drop it — it scored 48%, worse than a coin flip. It called "thanks, that works" a rule and "the root cause was a stale cache entry" a task.

The reason is structural, not a tuning problem: an embedding model encodes topic, not speech act. Everything about deploying lands in the same region of the space whether it is a standing rule, a one-off command, or small talk. So Agentis uses it for recall and does not pretend it can judge.

Choosing how your workspace errs

Since the on-device model cannot judge, the honest question is not "smart or dumb" but which way the system fails when it is unsure. You choose that in Settings → Runtimes → What the Brain remembers:

TierBehaviorCost
On-deviceKeeps generously. Deterministic signals act as a confidence boost, never a veto, so an uncertain statement is written at low confidence and shown on your canvas instead of being dropped. High recall, some noise, nothing lost.Free, offline, works in every language
Model-assistedA Formation Judge reconciles each candidate against what you already know (ADD / UPDATE / NOOP) and resolves the conflicting pairs the on-device tier can only flag. Higher precision, tidier graph.Spends tokens on every capture
OffForms no new memories. Existing ones stay readable.None

The setting takes effect on the next formation pass — no restart. It is deliberately separate from the broader model-assist switch, so you can run a cheap brain alongside a strong evaluator if that is the trade you want.

Staged memory is visible, not hidden

Memory formed without a judge is staged: written at low confidence, carrying a time-to-live, and decaying unless something reinforces it. Staged memory now appears on your Brain canvas with a "Staged (decays unless reused)" badge.

This is a deliberate correction. Staging is a lifecycle, not a reason to hide what your brain is holding — and previously, a workspace with no judge model configured could watch its agents learn all day and still see an empty canvas. Staged atoms remain excluded from recall, so they never dilute what gets injected into an agent's context; they are simply no longer invisible to you.

Every script, not just English

Formation, deduplication, and contradiction detection are Unicode-aware end to end. Text is segmented per-script (CJK per character, since those languages have no spaces), accents survive intact — configuração stays one word instead of shattering into configura — and the polarity signal that distinguishes a correction from a duplicate covers English, Portuguese, Spanish, French, Italian, German, Russian, Chinese, Japanese, and Korean.

A rule stated in your own language is a rule, and a correction stated in your own language overturns the thing it contradicts.

Continue