diff --git a/docs/fleet-memory.md b/docs/fleet-memory.md index 0a9df2b..ab70d23 100644 --- a/docs/fleet-memory.md +++ b/docs/fleet-memory.md @@ -13,14 +13,14 @@ This document covers: what the stores are, what a central palace changes when se ```mermaid flowchart LR - Q["ask by MEANING
'what do we know about X?'"] --> D["Drawers
chroma.sqlite3
verbatim text, embedded"] - R["ask by ENTITY + TIME
'what was true in June?'"] --> G["Knowledge graph
knowledge_graph.sqlite3
typed facts, time-bounded"] - S["ask by ADDRESS + ORDER
'what is waiting for me?'"] --> L["Coordination log
logstream.sqlite3
addressed events + artifacts"] - T["ask by ASSOCIATION
'what else touches this?'"] --> P["Palace graph
tunnels.json + hallways.json
links between rooms"] - D --> DI["Diaries live here too:
drawers with room=diary,
read by recency, not similarity"] + Q["ask by MEANING
'what do we know about X?'"] --> D["Drawers
chroma.sqlite3"] + R["ask by ENTITY + TIME
'what was true in June?'"] --> G["Knowledge graph
knowledge_graph.sqlite3"] + S["ask by ADDRESS
'what is waiting for me?'"] --> L["Coordination log
logstream.sqlite3"] + T["ask by ASSOCIATION
'what else touches this?'"] --> P["Palace graph
tunnels.json + hallways.json"] + D --> DI["Diaries live here too:
drawers with room=diary"] ``` -All four stores are files inside **one palace directory**, so "the palace" is a directory you can back up in one go. +All four stores are files inside **one palace directory**, so "the palace" is a directory you can back up in one go. Each holds a different *shape* of thing: drawers hold verbatim text, embedded for similarity; the knowledge graph holds typed facts that are time-bounded; the coordination log holds addressed events and their artifacts, read in append order; the palace graph holds links between rooms. Diaries are drawers, but they are read by recency rather than by similarity. | Store | You get things back by | Typical use | Wrong use | |---|---|---|---| @@ -110,19 +110,19 @@ sequenceDiagram ## 3. Deciding where something goes -The question that matters is not "is this important?" but **"how will I want this back, and does anyone need to act?"** +The question that matters is not "is this important?" but **"how will I want this back, and does a specific machine or agent need to act?"** ```mermaid flowchart TD - Start["I have something worth keeping"] --> Act{"Must a specific
machine or agent
DO something?"} + Start["I have something worth keeping"] --> Act{"Must someone specific
DO something?"} Act -->|no| Change{"Is it a fact that
changes over time?"} Act -->|yes| Know{"Do they also need
to KNOW it later?"} Change -->|yes| KG["Knowledge graph
kg_add / kg_supersede"] - Change -->|no| Mine{"Is it about MY session
— what I tried, felt, learned?"} + Change -->|no| Mine{"Is it about MY session
— tried, felt, learned?"} Mine -->|yes| Diary["Diary entry"] Mine -->|no| Drawer["Drawer
wing + room, verbatim"] - Know -->|yes| Both["BOTH:
drawer for the knowledge,
event pointing at it"] - Know -->|no| Event["Coordination event
to_agent = the specific agent"] + Know -->|yes| Both["BOTH:
drawer + event pointing at it"] + Know -->|no| Event["Coordination event
to_agent = that agent"] ``` Worked examples: