The Memory Bank
The conversation system remembers everything said; the memory bank remembers everything learned. The distinction matters. A conversation record is complete but raw, while a memory entry is deliberate: an agent met something worth keeping, distilled it, typed it, and saved it. Over weeks of operation the memory bank becomes the institutional knowledge of your install, how your business works, what your customers ask, which approaches succeeded, and how every tool is invoked.
The Six Entry Types
general_knowledge holds facts, observations, lessons learned, and answers to questions, the broadest type and the one agents write most. user_knowledge holds the people the system knows: their preferences, their context, and the rules they have set, which is how an instruction you give once is honored everywhere. callable_scripts holds invocation syntax for tools and scripts, an agent that works out how to call something saves the recipe so every agent after it gets it right the first time. work_project tracks ongoing work and initiatives across sessions. cross_reference holds pointers to where information lives externally, the map rather than the territory. learned_procedure holds multi-step workflows learned from experience: the steps, the tools used, what worked, and what to watch out for.
The types are not decoration, they shape retrieval. An agent looking for how to send an SMS queries callable_scripts; one preparing to reply to a person checks user_knowledge for their rules; one starting a familiar kind of task looks for a learned_procedure before improvising. Typed memory keeps the right knowledge findable at the right moment.
The Query and Save Loop
Two standing instructions run through every agent in the platform. Before acting: query the memory bank, the answer to "have we solved this before" is usually there. After acting: save anything worth referencing later, results that matter, rules a person stated, facts discovered, invocations learned, procedures that worked. The loop is what turns one agent's experience into every agent's competence, a lesson the marketing preset learns on Tuesday is available to the coding pipeline on Wednesday.
Memories also carry their source. Entries a person stated directly are marked as human, which lets agents weigh an owner's explicit rule above their own inferences.
What Gets Saved, and When
Agents save on specific triggers rather than on vague enthusiasm, which keeps the bank dense with signal. Work that produced a result worth referencing becomes a general_knowledge entry describing what was done and how it came out. A rule or preference you state becomes a user_knowledge entry the moment you say it. A newly learned tool invocation becomes a callable_scripts entry. A completed multi-step task that could repeat becomes a learned_procedure with the steps and the pitfalls. The result is a memory bank that reads like a well-kept engineering log: every entry exists because something real happened, and each one shortens some future task.
The CLI
The memory bank is a tool like any other, with a full command line that agents and owners share:
php tools/memory_query.php query TYPE "search text" php tools/memory_query.php query all "search text" php tools/memory_query.php create TYPE "name" "summary" "content" php tools/memory_query.php update | delete | list | stats
Query searches by meaning within a type, and query all searches every type together with the knowledge bases, the widest net in the system. Beyond the basics, recall reaches across older conversations and topics, humanrules finds what is known about a specific person, and the knowledge actions manage knowledge bases. Stats shows what the bank holds. Because it is a plain CLI, you can inspect and curate your system's knowledge directly whenever you want.
Backends: Local and Adaptive Recall
The default backend is fully local and works the moment the platform starts: sentence-transformers builds the embeddings, sqlite-vec searches them, and everything lives in the SQLite database in your install. Zero external dependencies, complete privacy, and quality retrieval out of the box.
When you want more, Adaptive Recall is the premium upgrade: knowledge graphs that connect related memories, multi-strategy retrieval that combines several search approaches per query, automatic consolidation that merges and refines entries over time, and ML-powered ranking that learns which memories actually help. Switching is one settings change, set memory_backend to adaptive_recall with your URL and token, and a free tier is available to try it. Every agent and every tool works identically on both backends.
In the Web UI
The Knowledge tab is the owner's window into the memory bank: browse and search entries, review what agents have been saving, and manage knowledge bases. It is also where rewards appear, the patterns the learning layer extracts from successful work, documented in machine learning. A periodic skim of the Knowledge tab is the fastest way to see what your system is learning, and editing or deleting an entry is as direct as editing a row.
Six typed entry kinds, one loop: query before acting, save after. The local backend works with zero setup, Adaptive Recall upgrades retrieval with graphs and learned ranking, and the Knowledge tab keeps the whole store visible and editable.