How yulliwasameur/linera works
LinEra is both a lineage-aware cryptographic-erasure library for LLM-agent memory and a research workflow evaluating memory writing, replay, forgetting, and QA. The main path builds conversation memories, replays them through storage backends with lineage, then measures retrieval and post-forgetting answers; a mem0 adapter is a separate integration branch. Source-index references and README statements support the connections shown; unsampled implementation details are not inferred.
Main entry points: store.py Encrypted SQLite Store · keydag.py Lineage Key DAG · memory.py Memory Backends · build_log.py LLM Memory Writer
Components 20
Memory Experiments
- LLM Memory Writer
agent/build_log.py - Window Writer
agent/build_window.py - LongMemEval Writer
agent/build_lme.py - LLM and Embedder
agent/common.py - Memory Replay
agent/replay.py
Memory Backends
- Memory Backends
agent/memory.py - Baseline Stores
baselines/stores.py - Lineage Capture
lf/lineage.py - Encrypted SQLite Store
lf/store.py - Encrypted Vector Index
lf/vindex.py - mem0 Adapter
integrations/mem0_linera.py
Erasure Primitives
- Lineage Key DAG
lf/keydag.py - Puncturable PRF
lf/pprf.py
Evaluation
- Post-Forget QA
agent/qa.py - mem0 Case Study
eval/mem0_e2e.py - Canary Evaluation
eval/canary.py - Scale and Radius
eval/scale.py - Paper Tables and Figures
eval/make_tables.py
Other components
- Researcher
- Conversation Data
Connections 33
- Researcher → LLM Memory Writer: runs phase A
README.md - Conversation Data → LLM Memory Writer: provides sessions
README.md - LLM Memory Writer → LLM and Embedder: uses models
agent/build_log.py - Window Writer → LLM and Embedder: uses models
agent/build_window.py - LongMemEval Writer → LLM and Embedder: uses models
agent/build_lme.py - LongMemEval Writer → LLM Memory Writer: reuses writer
agent/build_lme.py - Memory Replay → LLM and Embedder: uses embeddings
agent/replay.py - Memory Replay → Memory Backends: writes and forgets
agent/replay.py - Memory Backends → Encrypted SQLite Store: stores objects
agent/memory.py - Memory Backends → Encrypted Vector Index: indexes vectors
agent/memory.py - Memory Backends → Lineage Key DAG: uses lineage keys
agent/memory.py - Memory Backends → Puncturable PRF: uses puncturing
agent/memory.py - Baseline Stores → Puncturable PRF: uses puncturing
baselines/stores.py - Encrypted SQLite Store → Lineage Key DAG: derives object keys
lf/store.py - Encrypted SQLite Store → Puncturable PRF: initializes PRF
lf/store.py - Lineage Key DAG → Puncturable PRF: evaluates and punctures
lf/keydag.py - Encrypted Vector Index → Lineage Key DAG: derives shard keys
lf/vindex.py - mem0 Adapter → Encrypted SQLite Store: stores memories
integrations/mem0_linera.py - mem0 Adapter → Encrypted Vector Index: indexes memories
integrations/mem0_linera.py - mem0 Adapter → Lineage Key DAG: uses lineage keys
integrations/mem0_linera.py - Post-Forget QA → LLM and Embedder: uses models
agent/qa.py - Post-Forget QA → Memory Replay: uses replay records
agent/qa.py - Post-Forget QA → LLM Memory Writer: reuses writer formats
agent/qa.py - mem0 Case Study → mem0 Adapter: evaluates adapter
eval/mem0_e2e.py - Canary Evaluation → Encrypted SQLite Store: tests forgetting
eval/canary.py - Canary Evaluation → Lineage Capture: tests lineage
eval/canary.py - Canary Evaluation → Baseline Stores: compares baselines
eval/canary.py - Scale and Radius → Encrypted SQLite Store: measures storage
eval/scale.py - Scale and Radius → Encrypted Vector Index: measures indexing
eval/scale.py - Scale and Radius → Lineage Key DAG: measures derivation
eval/scale.py - Researcher → Post-Forget QA: runs QA
README.md - Researcher → mem0 Case Study: runs case study
README.md - Researcher → Paper Tables and Figures: generates paper results
README.md