Memory
Memory is what makes an agent useful on the second run. It is per-project, persistent, and retrieved semantically rather than by keyword.
Two kinds of memory
Short-term is session context: the messages and tool results of the current conversation. Bounded by the model's context window, discarded when the session is deleted.
Long-term is durable facts, deliberately written and semantically retrieved. It outlives the session that produced it.
What belongs in memory
Facts that stay true: a constraint, a decision and its reason, a gotcha that cost someone an hour. Not a log of what happened — use a session export for that.
arble memory add "Staging shares the production Redis. Never flush from staging."
arble memory search "why the postgres driver is pinned"
arble memory rm mem_2fQx8Lp
Summarizing
Memory is read at the start of every run, so its size is a recurring cost rather than a one-time one. Summarizing collapses related entries into fewer, denser ones.
arble memory summarize --older-than 90d
Embeddings and reindexing
Entries are embedded by the configured embedding model. Vectors from different models are not comparable, so changing the model requires a full reindex.
arble memory reindex --model local-embed-v2
Encryption
Memory contents are encrypted with a project-scoped key before being written, so a database dump does not yield readable memory without the key. Back that key up separately from the database — encrypted memory with no key is not a backup.