Replies: 16 comments 19 replies
-
|
Interesting I will be watching where you go. I will install a database on my side of the fork and a memory manager. |
Beta Was this translation helpful? Give feedback.
-
|
Really cool direction. |
Beta Was this translation helpful? Give feedback.
-
|
I love the "Be water" philosophy - it will grow into something worth building. I'm a Bruce Lee fan too! ---my words --- -- LLM (edited) --- No architect. No blueprint. Only gravity, doing what gravity does. Now—the mind. Words arrive. From written. From spoken. These are your rain. Most vanish on contact. But when attention stays, a stream forms. One line of thought, moving. That stream encounters another—a memory already there, a question still alive. They do not meet by accident. They meet because your focus pulled them together. Stream joins stream. River. An idea. Hold that idea. Keep attending. Other rivers feed into it. What flowed now deepens. What moved now settles. Lake. Memory. In nature, gravity gathers water. In mind, attention gathers thought. The process is the same. The force is different. You do not construct memory. You allow it—by sustained focus, by letting streams find streams, by giving gravity time to work. Watch water long enough, you will understand how memory works. |
Beta Was this translation helpful? Give feedback.
-
|
Great idea. |
Beta Was this translation helpful? Give feedback.
-
|
Great idea, the previous memory systems were too complex |
Beta Was this translation helpful? Give feedback.
-
|
My view is that it's good to have core memory, history and personality, and also have a vector database of some kind for long term memory. But designing prompts that ensure proper use of these different memory types is tricky. |
Beta Was this translation helpful? Give feedback.
-
|
Cool! One more idea on enhancing memory "summarisation": Is that possible to use LLM to "pick up" the points that most relevant to recent/short-term or current context? And ignore those minors and not relevant anymore. This will keep in the memory or history, the LLM only focus on relevant and important information. One possible strategy is to use Skill on this summarisation? Thanks. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for this, quick question - if I have an older version of nanobot running (on docker) what's the upgrade path to make use of this new memory system? Is it enough for me to deploy the new version on my existing workspace or is there any migration needed? |
Beta Was this translation helpful? Give feedback.
-
|
Hi, The current system (MEMORY.md + HISTORY.md) handles flat facts and chronological logs well, but lacks topic-organized, structured knowledge that the agent can navigate and build over time. After 50 messages, conversational context about specific topics, people, decisions, and projects is lost — even though HISTORY.md captures a summary, there's no way to look up "what do I know about Docker" or "what decisions did we make about authentication." The knowledge feature enables a knowledge layer on top of the existing memory system. It's complementary — MEMORY.md stays for quick-access facts, HISTORY.md stays for grep-searchable events, and knowledge/ adds depth and structure. |
Beta Was this translation helpful? Give feedback.
-
|
yes, and that is exactly why I think adding a QDrant RAG layer would be a good idea. I developed one myself and it performs very well on my system, however it is a tool as of now - I believe it should be embedded to a deeper degree albeit leaving it as a tool option also. The code should be there for QDrant in general and it should allow to use existing local LAN QDrant endpoints, albeit with a customisable collection identifier . |
Beta Was this translation helpful? Give feedback.
-
|
Do we have something similar to project level memory (like Claude Code does)? - They have seem to have sub-agent memory that is global to the sub-agent and sub-agent memory per project. Or is there no concept of projects for the moment? |
Beta Was this translation helpful? Give feedback.
-
|
Can you guys look into expanding the memory layers? i like the setup as suggested by Daniel https://danielmiessler.com/blog/personal-ai-infrastructure#tier-1-session-memory |
Beta Was this translation helpful? Give feedback.
-
|
would it be possible to have a switch to turn off totally MEMORY.md from config file ? |
Beta Was this translation helpful? Give feedback.
-
|
How many people are still using Nanobot now? Id like to hear from both those who are and have made some adjustments to the level of personalization and utility possible with nanobot, or if they jumped ship and why? |
Beta Was this translation helpful? Give feedback.
-
|
"Less is more" is exactly right, and the thread has been circling around a key question that @luzhi and @foresturquhart raised from different angles: how do you decide what to keep and what to drop as the memory grows? The MEMORY.md + HISTORY.md split is a clean starting point, but the auto-consolidation step — summarize old messages, extract long-term facts, trim the session — is doing a lot of heavy lifting. The quality of that summarization determines whether "less" means "high-signal" or just "less." The distinction matters because naive summarization treats all content equally, compressing important decisions and routine exchanges at the same rate. @luzhi suggested using the LLM to pick up points most relevant to recent context, which is the right direction. In our system, we score each memory by importance (how critical is this information) multiplied by access count (how often has it been retrieved) multiplied by relevance to the current task. Low-scoring memories decay naturally without explicit deletion, while critical memories persist indefinitely. The result is that retrieval quality actually improves over time because the noise floor drops — exactly the "less is more" effect, but achieved through continuous curation rather than periodic bulk summarization. @derdide proposed a knowledge base layer (topic-organized files) and @Ayko9Labs proposed a Qdrant vector layer. These are not competing with the MEMORY.md pattern — they solve the retrieval problem that grep cannot. Grep is deterministic and fast for exact matches, but it cannot answer "what do I know about authentication" when the agent stored the memory using the word "login" or "auth flow." That is where vector search adds value: semantic matching across vocabulary differences. The composable architecture is: MEMORY.md for always-loaded identity and rules (procedural memory), HISTORY.md for grep-searchable event log (episodic memory), and a vector index for semantic retrieval when you do not know the exact keywords (semantic memory). Each layer has a different retrieval strategy because each stores a different kind of knowledge. The key is that all three layers should share the same importance scoring so that curation decisions are consistent — a low-importance memory should be low-importance regardless of which layer it lives in. One concrete implementation detail for the consolidation pipeline: before summarizing old messages into MEMORY.md, run a deduplication pre-pass. Agents often store the same fact multiple times in slightly different phrasings, and naive consolidation preserves all variants. Cluster similar memories first, then extract the canonical version for each cluster, then merge into the long-term store. This alone can reduce the memory footprint by 30-40% without losing any information. |
Beta Was this translation helpful? Give feedback.
-
|
Is there a way to return to this memory model and turn off dreaming? (Other than reverting to a 0.1.4 release) |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The Philosophy
We redesigned nanobot's memory system. Not by adding more — by removing almost everything.
Bruce Lee said:
Most AI agent memory systems chase the same pattern: vector databases, embedding models, semantic retrieval, chunking strategies, re-ranking pipelines... They build a brain that looks like a human brain. But agents are not humans. They don't need to "recall" — they need to find.
So we asked: what is the simplest memory that actually works?
The Architecture
Two files. That's it.
MEMORY.mdHISTORY.mdgrepon demandNo vector DB. No embeddings. No RAG pipeline. No external dependencies.
Why grep beats RAG for agent memory:
grep -i "user preference" HISTORY.mdworks in any shell, any OS, any context.Claude Code uses the same approach — no RAG, just text files and grep search. If it's good enough for Anthropic's own coding agent, it's good enough for us.
Auto-Consolidation
When the conversation grows beyond a configurable threshold (
memoryWindow), nanobot automatically:HISTORY.mdMEMORY.mdThe agent doesn't need to "decide" to remember. It just happens. Like breathing.
"Be water, my friend." Water doesn't decide to fill a cup. It just flows. Nanobot's memory doesn't require the agent to manage it — it adapts to the shape of the conversation automatically.
By the Numbers
memoryWindow: 50)Less code. Fewer bugs. More reliable.
We believe the best agent infrastructure is the kind you forget is there. If you're interested in this approach, check out PR #565 or try it yourself —
nanobot onboardand start chatting.Beta Was this translation helpful? Give feedback.
All reactions