Three distinct stores that together give Ren persistent, searchable, accurate memory across every session.
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
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
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_t4get_t4_entrywrite_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:
Current build and all in-flight work slices
Latest session summary with all open threads and pending next steps