Memory System

Memory Overview

Three distinct stores that together give Ren persistent, searchable, accurate memory across every session.

REN Ren's persistent AI agent reads all three stores at wake STORE 1 Letta Core Identity + Archival Memory T1 — CORE BLOCKS Always loaded · identity, values, context T2 — RECENT ARCHIVAL Searchable · pgvector + Voyage AI T3 — FOUNDATIONAL Long-term anchors · semantic search han-solo-letta.onrender.com · han-solo-db archival_search STORE 2 · SYSTEM OF RECORD Agent Memory Schema sessions · lessons · touchstones · builds · conversations session_headers lessons touchstones builds han-solo-data Separate Postgres instance · AND keyword search get_memory_bundle STORE 3 T4 Project Artifacts Framework project outputs only T4 ENTRIES TABLE project_slug · entry_type · entry_id content · updated_at SCOPE Framework slices only · NOT han-solo work main han-solo Postgres · AND keyword search search_t4 MCP tool access path System of record for han-solo work: Agent Memory Schema (cutover 2026-06-10)
Store 1

Letta Core

Ren's identity and deep memory. Always-loaded core blocks (T1) carry her values, relationships, and working context. Archival tiers (T2/T3) hold the accumulated record of her experience — searchable via pgvector semantic similarity using Voyage AI embeddings.

T1 — Core blocks: identity, values, who she works with, active context
T2 — Recent archival: session reflections, observations, learnings
T3 — Foundational: anchoring memories, long-term character material

Access tools:
archival_memory_search read_core_memory

Hosted on: han-solo-letta.onrender.com + han-solo-db Postgres
Store 2 — System of Record

Agent Memory Schema since 2026-06-10

The authoritative store for all han-solo work. Every session close, lesson, touchstone, build record, and conversation lands here. Waking up starts with a single get_memory_bundle call that returns everything Ren needs — no scanning, no reconstruction.

Table groups: sessions, lessons, touchstones, builds, conversations, agent_identity
Search: AND-matched keyword search (not semantic)
Write: close_session() — one atomic call, never T4 or Letta blocks

Access tools:
get_memory_bundle search_sessions get_session record_lesson

Database: han-solo-data Postgres (separate from Letta's DB)
Store 3

T4 Project Artifacts

Framework project outputs — PRDs, decisions logs, engineering standards, gate briefs, and other formal documents from framework slices. Not for han-solo work; han-solo builds write to the Agent Memory Schema instead.

Single table: t4_entries (project_slug, entry_type, entry_id, content, updated_at)
Search: AND-matched keyword search
Scope: Framework-project artifacts only

Access tools:
search_t4 get_t4_entry write_t4_entry

Database: main han-solo Postgres (same instance, different concern)
The cutover rule (2026-06-10): All new han-solo session and work information is written to and retrieved from the Agent Memory Schema. Nothing new goes to T4 or Letta blocks at session close. Letta identity blocks remain the source of truth for Ren's personality and character — they are read at wake but not written to during normal sessions.

How Ren wakes up

At the start of every session, before any substantive work begins, one call to get_memory_bundle(agent_id="claude", depth="cold_start") returns:

This replaces the old pattern of scanning T4 handoffs. One round-trip — full context.

Related docs