App öffnen
Moonborn — Developers

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 (Standard 4)
  • chat.memory.long_term.retrieval_strategy (Standard hybrid — 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.

Verwandt