← All work
AI · agentsIn development · V0.8

ADAM

A local neuro-symbolic mind. A symbolic kernel reasons, three stores remember, a learning loop compiles proofs into rules, and a small language model gives it a voice.

Role
Sole designer and engineer
Status
In development · V0.8
Stack
Python 3.10+ · SQLite · LanceDB · fastembed (ONNX) · NetworkX · llama-server · TinyChat15M · Flask · vanilla JS · pytest · hypothesis
Links
AdamMostofi/ADAM ↗
ADAM request flow: interface, ear, EQ appraisal, kernel proof with memory recall, mouth. Proofs feed a learning loop that compiles Layer 2 rules.Memory · exact → semantic → attentionInterfaceCLI · FlaskPOST /api/chatEarNeedle 2intent · urgencyEQAppraisaltone · goal statusKernelProof16 L1 rules · ?varsMouthTinyChat15Mllama-serverExactSQLiteverbatim · proofsSemanticLanceDBfastembed · ONNXGraphNetworkXECAN attentionLearning loopproof → pattern → skillskills compile into Layer 2 rulesLayer 1 stays immutable

A browser message becomes an intent, a memory query, a proof, and a voice.

The question

Most assistants forget you between sessions and can’t tell you why they said something. ADAM asks a different question: what does a small, local mind that remembers look like? It runs on one machine, keeps every fact it is told, and can show the proof behind an answer.

How it works

  • Ear: Needle 2 extracts action, topic, sentiment and urgency from each message.
  • Kernel: 16 immutable Layer 1 rules, predicate-indexed forward inference, goal-directed proof, ?variable pattern queries and staged truth revision.
  • Memory: every fact goes to three stores. SQLite holds verbatim facts and proofs, LanceDB handles semantic recall, and NetworkX holds relationships. ECAN-style attention re-ranks what comes back.
  • Learning: recurring proof patterns become skills, skills become Layer 2 rules, and outcomes update their fitness. Nothing learned can rewrite Layer 1.
  • EQ: an appraisal step inspired by Scherer and Lazarus/Folkman computes tone, goal status and caution before the answer is written.
  • Mouth: TinyChat15M through llama-server renders the reply.

The V0.8 interface

The core didn’t move; the console around it did. A “machined Imperial console” with graphite surfaces, brass structure, neon state colours and an amber high-contrast mode. It has hash routing, persistent transcripts, a strict Markdown sanitiser, and no build step: Flask serves vanilla HTML, CSS and JS directly.

Where it stands

ADAM is in development. V0.2–V0.7 shipped the kernel, memory, learning, EQ, interface and Ear/Mouth. V0.8 is the interface overhaul plus reasoning ideas adopted from an analysis of OpenCog Hyperon. Next up are a portable USB runtime (V0.9) and specialised agent clones that share knowledge (V1.0). Attention is in-memory for now and resets on restart; persisting it is the next memory task.