This repository has been archived on 2026-04-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
core/docs/archive/DESIGN-0.18.0.md

2.8 KiB

DESIGN-0.18.0: Memory System

Version: 0.18.0
Status: Phase 1 Complete
Depends on: compaction (v0.15.0), knowledge bases (v0.14.0), persona-KB binding (v0.17.0), SQLite backend (v0.17.1)


1. Overview

Memory provides long-term fact persistence across conversations. Unlike compaction (within-conversation context) or knowledge bases (static documents), memory captures preferences, facts, and context that accumulate over time from natural conversation.

Key differentiator: Persona-scoped memory. Each Persona builds its own memory independently, preventing cross-context contamination. A helpdesk Persona accumulates FAQ knowledge; a tutoring Persona tracks per-student progress; a user's personal preferences stay separate from any Persona context.


2. Scope Model

Three memory scopes with clear ownership:

┌─────────────────────────────────────────────────┐
│ user scope                                      │
│ owner_id = user_id                              │
│ "Jeff prefers Go over Python"                   │
│ "Deployment uses Kubernetes + Traefik"          │
│ Visible in ALL conversations for this user      │
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
│ persona scope                                   │
│ owner_id = persona_id                           │
│ "Common question: how to reset password"        │
│ "Policy: refunds within 30 days only"           │
│ Shared across ALL users of this Persona         │
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
│ persona_user scope                              │
│ owner_id = persona_id, user_id = user_id        │
│ "Student struggles with recursion"              │
│ "Customer prefers email over phone"             │
│ Per-user within a specific Persona              │
└─────────────────────────────────────────────────┘

Scope resolution at recall time:

When a Persona is active, all three scopes are queried and merged with priority ordering: persona_user > persona > user. When no Persona is active, only user scope is queried.


[... full content pasted ...]