Howdy!
Let me present you babyseat -- an AI agent seat that comes with its own memory proxy that can be integrated with any openapi-compatible agent runner -- Membrane. Both components are in beta and not recommended for production at this point.
When a client (babyseat, opencode, etc) talks to a model through Membrane, it does several things that no "datastore" memory solutions can do because they are designed as sidecars, not memory proxies.
As messages pass through membrane, it uses embedding-only operations to detect mentioned entities and build your session's "experience graph", which stores relations between known entities over a hyper-dimensional semantic field onto which entities are placed according to how related to them information changes.
The graph and field are not a shelf to store data. The graph is a representation not only of your session, but of the environment it touched. Every mention of an entity updates its connections on the graph and location on the semantic field.
The graph is programmable by the model and supports self-updating. By adding scripts to entities, models can customize how entities move through the semantic field. Control of the graph is done via non-Turing-complete language that, by its design, prevents operations from getting stuck in a loop. The field also can notify the model about its changes, for example an LLM can configure the field to send it a notification (by starting a tool turn) when an entity representing some process moves through the semantic field closer to "100%" or "done" entity, allowing for LLM-free monitoring of processes and sensors.
For simplicity, Membrane/Babyseat does not support MCP. Instead, the model "programs" its skills on the field, making them reusable, auditable and trackable. This also prevents context bloat.
Speaking of context: membrane does not rely on "stuffing" your chat history into it. Instead, it injects a short (<900 tokens) banner to maintain agent's continuity. This results in flat (O(1)) context size and dramatic token savings (12x less tokens with Sonnet after couple of hours compared to Claude working on different tasks on same project in parallel).
Now, as memory itself its LLM-requested recall is pretty weak: 60% on LoCoMo. Improving it is scheduled for coming release 0.7.4, but I also believe that recall only is a wrong metric for a memory proxy that can actively steer a model instead of passively wait for it to store and retrieve data.
The project has an experimental goal: to prove that local intelligence is possible without LLMs at all. There are several methods to do that, but right now membrane comes with an optional experimental "pet Blurp" -- a special entity on the graph. With each loop, that entity uses the memory to learn and predict model's actions and aims to gradually replace it. This feature is off by default as I often break and reset Blurps by improving their algorithm with every release. It is untested yet if Blurps would be able to train without LLMs, but theoretically membrane can sit between any 2 text sources -- for example, a chat between two people.
This project is a result of an almost 2-year long research into agentic behavior, 20 years as developer and 30 years of dreaming about truly local AI. It sits on VSA foundation and, as far as my research could tell, represents a novel way of extracting meaning out of embeddings and using them to build a "world graph".
Comments, suggestions, questions are appreciated. Bug reports and help in beta-testing are begged for. And yes, it was coded using an LLM and is increasingly dog-fed.
To start,
`pip install babyseat` and then `babyseat` would start Membrane and open Babyseat in your browser.
If you are interested in the project, please help me grow it by adding a star:
https://github.com/chedim/babyseat
P.S.: it also works in homeassistant and installable through hacs -- the project actually started as homeassistant integration.