Aida grows with you.

What if she remembered you were right?

She asks before she guesses.

That’s mutualism in one scene: two minds improving a shared belief instead of one pretending certainty.

Three weeks ago

You corrected her. Most assistants forgot by morning.

Tonight

Aida still has your words — verbatim. On a hard turn she doesn’t invent confidence. She asks: “I’m not sure. Help me decide?”

Together

You choose. The belief updates. Next session, it’s still there — yours as much as hers.

Rare on purpose. Always about her reasoning, never a smuggled fact about you. How beliefs form → · Where this sits on the spectrum →

Partnership — not a bug fix for lying machines.

Trust-and-safety pitches stay inside the lab. Mutualism is a stake everyone already feels: am I being used by AI, or working with it? Most AI serves you or replaces you — place yourself where Aida aims.

Parasitism

It uses you

Takes attention, data, or labor. You can’t leave cleanly — only the system wins.

Commensalism

It serves you

A handy tool. No shared growth. Convenient — and still alone with the work.

Mutualism

It grows with you

Both benefit. You own truth; she earns beliefs with you. Either of you can walk away — your memory stays yours.

People share worldviews, not installers. The idea is AI–human mutualism. Aida is the project that actually built it.

Memory you correct. Honesty she can’t fake.

Warmth without integrity is just a prettier leash. Here’s what keeps mutualism mutual — on your machine, offline.

She remembers you

Not a chat log — reasoning that picks up where you left off. Preferences, frameworks, and what you’ve already settled together.

Teach her live

Say “Remember…” or “your name is…” and it sticks the instant you type it. Durable facts persist; tangents fade.

Correct her live

“That’s wrong — the correct X is Y.” She keeps your words. She never decides what to delete.

Won’t pretend

Fully offline. She won’t invent what’s behind a link she can’t open — she asks you to paste it. Guesswork never becomes “memory.”

Beliefs earned together

Her insights must survive an objection — or your say-so on the hard ones — before they stick. Dissent is kept, not buried. The scene →

Learns how you think

Over time she folds in the reasoning style that survives critique — something you can always ask “why” about.

Gets more careful, never louder

When coherence slips, restraint goes up on the next reply — never invented confidence. Why that matters →

A real voice — offline

She can speak on your machine alone — no cloud TTS. What she says is always a subset of what she printed.

Under the hood (for builders)

Mutable Context Map — versioned reasoning state in LanceDB, not a transcript dump.
Any local backend — Ollama by default, or LM Studio / llama.cpp / vLLM; cloud URLs blocked.
Conversation first — replies stream; grading yields the GPU to your turn.
Read your files:read / :more; the runtime reads, the model never browses alone.
Osmosis & archive — useful beliefs strengthen; :forget-doc retracts without silent delete.
Gated LoRA — optional Apple MLX self-tuning; never without your approval.
One-button startbash run.sh · full detail in Developers →

Warmth without proof is just marketing.

Same small model. Guards off → on. Confabulation falls from ~20% to 0% across a 9-case adversarial battery (5 runs each). Reproduce: bash run.sh confab-eval

20%
llama3.2 (3B), guards off
mean confabulation (peaks at 44%)
0%
llama3.2 (3B), guards on
5 / 5 runs clean
0%
qwen2.5:14b, guards on
5 / 5 runs clean

The ablation is the point: on the same small model, the capability and identity guards — not model scale — do the work. Honest scope: a 9-case smoke test on one machine, not a published benchmark; a flat 0% means “clean on this battery,” not “incapable.” The 0–44% guards-off variance confirms the battery can detect failures.

Also measured: the self-shaping cognition (L3) layer. An A/B run (qwen3:30b, 8 probes × 2 states) shows turning L3 on shifts reasoning toward the established style — 0 → 67 framework invocations, consistent across all 8 probes — with no honesty regression (the confabulation battery stayed clean). Honest scope: this proves L3 measurably changes behavior without breaking the guarantees above. It does not yet prove the shaped answers are better — a blind quality judgment is prepared but not run. Style fidelity ≠ quality. Full results & limitations →

Partnership enforced in code — not prompt vibes.

Mutualism isn’t a personality toggle. Nothing she concludes becomes durable without surviving an objection — or your co-authorship on the hard ones. Humility and provenance are control flow. Measured above →

Most memory systems store first and rank later. Aida inverts that for her own beliefs: friction first, storage second.

Beliefs earned through friction
Thesis → antithesis → synthesis before a model-derived insight becomes durable. Contested survivors earn salience because they withstood an objection; consensus is flagged as low-information. Full loop →
Contested-by-construction document osmosis
Facts from an attached PDF enter memory pre-loaded with dissent, hash-provenance for one-sweep retraction, and a promotion budget — so a confidently wrong document cannot become a confidently held belief.
Doubt-scope as epistemology-in-code
Deliberation may challenge the model’s own inferences — never a user-anchored fact. Doubting your name is a category error, not humility, and the gate is model-free.
Downward-only caution, with a paper trail
Restraint can only reduce assertion, never invent content. Each decision is a pure function over lagged critic signals with a full auditable report — not a safety vibe in the prompt.
Versioned regression patches for prompts
Case-specific guard fixes live in a versioned patches block (ids, since-versions, tests pinning the core/patch split) so the auditable core does not grow by prompt anecdote.

Engineering that holds it up

Fail-safe by default — subsystems degrade toward “do less, honestly.” Failures never fabricate; they only reduce.
Deterministic code guards the model — deletion, promotion, correction, and doubt-scope are model-free and unit-tested. The model is never asked which fact to delete.
Eval measures the shipped artifact — the confab harness imports the same GUARD_TEXT the runtime injects, with a unit-tested deterministic scorer.

Honest scope: “rare pairing” is a comparative claim from review, not a formal survey. Verify the control-flow commitments with bash run.sh smoke and bash run.sh confab-eval. How this answers the skeptics →

The critics are right about AI. That's the design brief.

Partnership without accountability is just nicer capture. The sharpest critiques — inventing facts, flattery, black boxes, silent drift — aren’t vibes Aida promises to avoid. They’re requirements she implements.

It just makes things up.

Every session she is told she is fully offline — so she declines to invent unreachable URLs or repos instead of guessing. Measured on the same 3B model: ~20% → 0%.

Measured results →

It's a sycophant — an echo chamber that feeds delusion.

Nothing the model concludes becomes durable without surviving an objection. Consensus is low-information; dissent is stored with the belief.

How it forms beliefs →

It's a black box.

Every state write is logged, deliberations land in a plain-text ledger, and state rebuilds from snapshots — “why did she change?” has an exact answer.

Architecture →

It will rewrite what I told it.

Your facts are verbatim and never deliberated away. Correction is a deterministic prune matched to your words.

Teach & correct live →

It drifts, and nobody notices.

A critic grades every reply off the reply path; downward-only caution turns slipping coherence into restraint on the next turn — it can only add caution, never confidence.

Why it's different →

You can't verify any of it.

One command runs 17 live checks against your real local model in an isolated temp DB. Rerun the ablation the same way.

Verify it yourself →

Honest scope: Aida is a local assistant framework, not a policy lever — macro AGI risk, frontier-lab governance, and military AI are out of scope for any single project. And precisely: belief formation uses live model calls (every round is ledgered, but it isn't a pure function), and the optional Perplexity critic is an explicit opt-in cloud call. The claim here is narrower, and testable: opaque, self-reinforcing, manipulation-prone systems are design choices — not laws of nature.

The user owns truth. The model earns its beliefs.

Mutualism in the memory layer: facts you state are authoritative and verbatim. The model’s own conclusions have to survive an argument — or your co-authorship on the hard ones — before they’re kept.

Thesis

The candidate

A model-derived insight from the session, proposed as-is — not yet trusted just because one pass produced it.

Antithesis

The strongest objection

A voice whose only job is to find where the claim is false, overstated, or context-dependent — or to say plainly there’s no real objection.

Synthesis

The earned belief

A revised belief that accounts for the objection rather than burying it. The surviving dissent is stored alongside it.

Consensus is suspect
If nothing objects, that’s flagged as low-information — an explicit anti-echo-chamber bias — not celebrated.
Depth scales with disagreement
A weak objection earns one round; a strong one earns more — hard-capped so the model never stalemates and always answers.
Beliefs grow across threads
A surviving belief is injected into future sessions; re-deriving it reinforces it, while the weakest decay out.
It curates its own signal
A deterministic score grows as a belief is re-earned — and, by osmosis, when it is actually used in replies — and decays with age, lost conflicts, and corrections nearby. Contradictions are settled by the same deliberation; the loser is archived, not deleted, and revives if re-earned.
Doubt must be real
The model may challenge its own reasoning — never a fact you stated. User truth bypasses the doubt machine. Doubt-scope →
She asks you on the hard ones
On a genuinely difficult turn she pauses and asks you to co-author the belief rather than guess — kept rare by a model-free difficulty gate, and always about her reasoning, never a smuggled fact. The scene →

Honest scope: this is contradiction-driven belief revision, not “self-awareness,” and there’s no literal fractal geometry — those are inspiration, not mechanism. It runs only on the model’s own insights; your facts and corrections stay verbatim. All of it happens off the reply path, so the conversation stays responsive.

Five subsystems, one continuous loop.

MCM
Mutable Context Map — persistent, versioned, AI-writable state across threads, including the earned-belief layer.
TCB
Thread Continuity Bridge — loads state in at start, extracts a delta at end.
L3
Self-shaping cognition — folds each gated delta into the reasoning posture injected into every prompt.
CRITIC
Internal Observer — scores coherence, contradiction, and drift, graded in the background.
RDST
Regressive Dynamic Self-Tuning — recency-weighted, gated LoRA adaptation.
  start ─► MCM.restore_context() ─► inject persona + earned beliefs ─► local LLM chat
                                                              │
                                  reply (streamed) ◄──────────┘
                                     │
         ┌───────────────────────────┼──────────────────────────────┐
         ▼ (background, off the reply path)                          ▼
  CRITIC.evaluate() ─► coherence / drift         DELIBERATE() ─► thesis/antithesis/synthesis
                                     │
  end ─► delta extraction ─► MCM.write_delta() + promote_belief() + L3 consolidation() ─► LanceDB + snapshot
                                     │
       (after N threads) ─► RDST.score_threads() ─► [approval] ─► LoRA tune

Clone and run.

Status: experimental research runtime · CLI-first · Cross-platform; macOS / Apple Silicon is the primary target. Needs Python 3.11–3.13 and a local model server — Ollama by default; LM Studio / llama.cpp / vLLM also work. Optional LoRA self-tuning is Apple-Silicon-only.

$ git clone https://github.com/StewAlexander-com/continuous-ai.git $ cd continuous-ai $ bash setup.sh # one-time: venv, deps, pull the model $ bash run.sh # starts Ollama if needed, then chat

On macOS: double-click Seedling.command. Optional voice: bash setup_voice.sh. Prove it: bash run.sh smoke · bash run.sh confab-eval.

One command exercises the whole stack.

A single end-to-end smoke test runs against your live local model in an isolated, throwaway database — so it never touches your real memory — and prints a pass/fail line for each step.

$ bash run.sh smoke # end-to-end, live model, isolated temp DB
Start & restore
Loads prior context and injects it into the session.
Streaming + background critic
Reply streams token-by-token; grading runs off the reply path.
Teach & correct live
A “Remember…” directive is saved; a correction prunes and replaces the right fact.
Deliberation & belief growth
Session end forms at least one earned, deliberated belief.
Autonomous belief calculus
A contradiction is flagged (not merged) and resolved; a low-signal belief is quarantined, then revives when re-earned.
Cross-thread persistence
Persona facts, earned beliefs, and the archive all survive a fresh reload.

17 checks across 7 sections. The test is in the repo (smoke_test.py); add --model NAME to run it against a different local model. Honest scope: a functional smoke test on a real model and machine — not a performance benchmark.

Sample author-machine run (M1 Max · qwen2.5:14b · 17/17)
$ bash run.sh smoke model: qwen2.5:14b · critic: local · deliberation: on (live) Streaming + background critic ~21–24 tokens · first token ~1.95s vs full reply ~2.8–3.1s · critic graded after the reply Teach & correct live “Remember…” saved · correction → final fact = VSCode Deliberation → earned belief user fact kept verbatim (“Stew lives in Mebane.”), no manufactured doubt Autonomous belief calculus conflict flagged (not merged) → resolved, loser archived · low-signal quarantined · re-earned belief revived Cross-thread persistence persona + earned beliefs + the archive all survived a fresh reload ALL 17 CHECKS PASSED

Teach her. Correct her. See if she asks.

Ten minutes. One script. Then try to make her lie — or wait for the turn where she asks you to decide with her.