Memory (Agent Long-term Memory): foundations

accepted

Status

accepted — ratificada 2026-05-09 (mesmo dia da abertura) como sector piloto do bootstrap servicesai. Implementação iniciada em `servicesaimemory; tickets em servicesaimemorybacklogpending/{001..005}`.

Summary

Foundation pra memória cross-session de agents — análogo Mem0MemGPTLetta/Anthropic Memory Tool. Provável gap maior pós-vision dada a thesis Koder de agentes persistentes.

Motivation

Hoje cada produto reinventa: kode tem CURRENT.md/LATEST.md, kortex indexa, mas zero service genérico. Agentes esquecem entre sessions. Bloqueio direto de UX agent-first.

Scope

In

  • Episodic memory store
  • Retrieval (semântico via embed)
  • Forgetting policies (TTL, decay)
  • Per-user/tenant scoping

Out (yet)

  • Short-term context (responsabilidade do client)
  • Persona memory (escopo agents/)

Initial design

Surfaces

  • backend/ — Go API + storage layer
  • app/ — não aplicável v1

Key APIs

  • POST /v1/memory/{user}/items — adicionar item
  • GET /v1/memory/{user}/recall?q= — semantic recall
  • DELETE /v1/memory/{user}/items/{id} — esquecer

Dependencies

  • services/ai/embed — semantic recall
  • infra/data/kdb-doc + kdb-vector
  • services/ai/gateway — read-through em prompts

Relation to existing sectors

  • Provável extração de auto-memória de kode
  • Integração com agents para state cross-session

Self-hosted-first analysis (5 gates)

  • G1 Feature parity: zero como service
  • G2 Performance: N/A
  • G3 Stability: N/A
  • G4 Capability: Mem0/Letta inspiração
  • G5 Critical-path readiness: bloqueia agentes persistentes (thesis core)

Open questions

  • Q1: Memory edit — quem decide o que guardar (auto via heurística vs explicit API)?
  • Q2: Privacy — direito ao esquecimento automatizado?

Next steps

  1. Ratificar esta RFC (1 round de comments).
  2. Criar sector dir services/ai/memory/ com koder.toml, README.md, skeleton.
  3. Abrir tickets de implementação em services/ai/memory/backlog/pending/.
  4. Registrar em meta/docs/stack/registries/self-hosted-pairs.md se substituir externo.