blueclaw

Memory

Memory is what the agent keeps about the people it serves between tasks, stored by bluememo.

blueclaw embeds bluememo as a Go module pinned at .dependency/bluememo, on the Postgres API that version provides. Its schema is copied verbatim into migrations/033_memory_store.sql. A fact is one sentence a low-tier model extracts from an episode (a finished task run, or something a person asked the agent to remember), owned by that person and labelled with the security rank and classes of the conversation it came from. A fact with no circles is its owner's alone; a fact that names circles is also read by their members, and memberCircles nests circles. Facts are retired by supersession, forgetting or expiry.

Around the store, internal/memory does the following:

  • Finished, failed and cancelled runs are queued for extraction unless memory.extractionDisabled is set.
  • Launch loads the requester's profile and a recall of the prompt under character budgets and records memory.recall_injected.
  • memory_remember stores one sentence and reports what it created, superseded or reinforced; memory_forget accepts only fact IDs that memory_search returned in the same task.
  • Embeddings go through the capability service at memory.embeddingModel with 1,024 dimensions, and a model change is a reembed job. Profile and rehearse jobs run on the same worker.

bluememo has since moved to one SQLite file per person. The blueclaw integration will follow; until then it runs on the pinned Postgres version.