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
- 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).
- Memory never revises — a conceded argument in conversation does not change the actionable rule; the system stores rather than learns.
- 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.
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
Proposed fix
Attach a self-contained memory layer to the existing
MemoryManager+MemoryVectorStore(additive, opt-in, nothing replaced):MemoryVectorStore.searchvia a thin adapter. Degrades gracefully when ChromaDB is unavailable./api/memory-brain/overviewendpoint + 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.