Memory-Konfiguration
Short-Term-Window, Long-Term-Retrieval, Cold-Tier, Cross-Session-Opt-in. Die vier Hebel, die Persona-Memory formen.
Moonborns Memory-Schicht hat drei Tiers (Short-Term-Context, Long- Term-pgvector-Retrieval, Cold-Archive) und einen Opt-in-Escape-Hatch (Cross-Session-Memory). Alle vier sind config-driven.
Short-Term-Window
chat.memory.short_term.window_turns (Standard 12). Die letzten N
Turns reiten in-prompt as-is. Höher = mehr Recall aber mehr Kosten
und langsamere Inferenz.
await client.config.setItem({
key: 'chat.memory.short_term.window_turns',
value: 16,
scope: 'workspace',
scopeId: 'ws_...',
});Long-Term-Retrieval
Alte Turns werden zusammengefasst und mit voyage-3-large embedded
(Standard; konfigurierbar via engine.embedding.model). Jeder neue
Turn ruft die top-K relevantesten Chunks ab:
chat.memory.long_term.top_k(Standard4)chat.memory.long_term.retrieval_strategy(Standardhybrid— semantic + BM25 + rerank + MMR)
Für lange Support-Sessions bumpe top_k auf 8. Für Creative-Play,
wo Kohärenz weniger zählt, drop auf 2.
Cold-Tier
Chunks älter als
chat.memory.long_term.cold_tier_after_days (Standard 90) wandern
in langsamere Storage und werden von Default-Retrieval übersprungen.
Weiter abfragbar, wenn der Nutzer explizit etwas Älteres referenziert.
Cross-Session-Memory (Team+)
Per Default ist Memory session-scoped — eine Persona erinnert sich nicht zwischen Sessions. Um Cross-Session-Kontinuität zu aktivieren:
await client.config.setItem({
key: 'chat.memory.cross_session.enabled',
value: true,
scope: 'workspace',
scopeId: 'ws_...',
});Das hat Privacy-Implikationen — eine Persona trägt nun Information zwischen Sessions, möglicherweise über Nutzer hinweg. Paare mit Consent-UI und einer klaren Retention-Policy.
Manuelles Vergessen
DELETE /v1/chat/sessions/{id}/memory/{chunk_id} entfernt einen
Memory-Chunk. Die Persona vergisst diesen spezifischen Fakt für die
Session.