Most agent memory today is either context window state or an append only retrieval store. That allows recall but not learning. Facts become stale, procedures drift, and agents cannot revise knowledge safely without losing provenance or auditability.
Membrane treats memory as something that can evolve over time. It ingests raw experience, promotes it into structured knowledge, and allows records to be superseded, forked, contested, merged, or retracted with evidence. The goal is to let long lived agents improve while remaining predictable and inspectable.
The core ideas are simple.
- Memory is typed instead of stored as flat text - Knowledge is revisable and keeps provenance - Agents can learn competences and procedures, not just facts - Salience decays over time so unused knowledge fades - Retrieval is filtered by trust and sensitivity levels - Revision history remains auditable
Membrane runs either as a daemon with a gRPC API or as an embedded Go library. Storage uses SQLite with optional SQLCipher encryption. The repository includes an evaluation suite covering ingestion, revision, consolidation, and retrieval ordering.
Membrane intentionally does not implement vector similarity search. Retrieval backends and agent policy are separated from the memory layer so the system can remain deterministic and inspectable.
I built this while experimenting with long lived agents that need something closer to learning than what RAG systems currently provide. Feedback on architecture, edge cases, and real-world use cases would be helpful.
If you have any suggestions or want to contribute, anything is welcome :)