Skip to content

Memory stores but does not grow: request hybrid recall, belief revision, and an on-request brain view #6034

Description

@ThingsCouldGetDicey

Summary

Odysseus's memory is excellent at storing and retrieving entries, but it does not revise from challenge, it has no sense of who the agent is becoming, and recall surfaces only exact matches, not related ones.

The gap

  1. Retrieval is vector-only — exact-term and mixed queries that lexical matching would catch are missed (measured 11 vs 9 recall on the same corpus, same model, at equal latency).
  2. Memory never revises — a conceded argument in conversation does not change the actionable rule; the system stores rather than learns.
  3. No observable state — there is no way to see where persona/identity are forming, the association graph, or which neurons are firing.

Proposed fix

Attach a self-contained memory layer to the existing MemoryManager + MemoryVectorStore (additive, opt-in, nothing replaced):

  • Hybrid recall: BM25 + dense + RRF fusion with precomputed association enrichment, replacing MemoryVectorStore.search via a thin adapter. Degrades gracefully when ChromaDB is unavailable.
  • Socratic growth: a belief-revision loop where a conceded argument amends the actionable rule or records a principled hold, with a coherence audit.
  • Brain view: an on-request /api/memory-brain/overview endpoint + a Brain tab in the memory modal (SVG, monochrome, CSS-variable driven). Purely diagnostic, never in the recall path.

Implemented and verified in PR #6033.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready for reviewDescription complete — ready for maintainer review

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions