Ymem is in the design and early prototyping stage. The roadmap below is
small and evidence-driven. Detailed design lives in
docs/design/split-plan.md.
- Establish the kernel boundary versus host applications.
- Land the split plan, license, and contribution model.
- Pick the runtime: TypeScript for core, Python for benchmark adapters.
- Specify the generic objects:
MemoryRecord,MemoryQuery,MemoryResult;ProvenanceRef,MemoryTrace,MemoryDiff;EvalCase.
- Specify the core operations:
ingest(batch);retrieve(query);consolidate(request);explain(traceId).
- Define the
MemoryStoreandMemoryProviderinterfaces.
- Default store: SQLite plus in-memory test store, both implementing
MemoryStore. - Default retrieval: BM25/FTS plus a pluggable embedding adapter.
- Default consolidation: duplicate, stale, conflict, and forget-candidate
detection. No automatic mutation; outputs
MemoryDiffcandidates only. - First host integration: consume from ZhiOne as a package dependency.
- Adapters for public benchmarks:
- LongMemEval (long-term conversational memory, update, abstention);
- MemoryAgentBench (retrieval, test-time learning, long-range understanding, selective forgetting);
- LoCoMo (long conversation, temporal and causal memory);
- MemoryArena later (multi-session agentic task memory).
- Eval runner that operates without any host app.
- Trace export format so host apps can contribute private eval fixtures.
- Dream-style offline consolidation runs against trace archives.
- Quality regression tests across versions.
- Tooling to import candidate techniques from awesome-agent-memory as sandboxed experiments and graduate them via ADR.
- No host-app surface (CLI, MCP server, UI) in this repo. Host apps live elsewhere.
- No opinionated ingestion pipeline (no file watcher, no parser). Hosts decide
what becomes a
MemoryRecord. - No long-term retention or migration commitments before the API surface stabilizes.
- No automatic acceptance of high-risk
MemoryDiffcandidates.