Memory is not one database. It is a governed stack of prompt context, transcript recall, structured knowledge, semantic indexes, a human-readable Wiki, procedural skills, and temporary execution state.
Verified July 15, 2026. Counts are a reviewed snapshot, not real-time telemetry.
A message enters through Hermes. Bounded context is assembled for the turn. Durable knowledge stays in separate stores with separate write rules. Read-only clients do not become peer memory writers.
Solid green lines write · dashed orange lines read · dotted gray lines stage or report
The structured database is authoritative for machine-queryable knowledge. The Wiki is authoritative for readable synthesis. Neither transcript history nor run-state becomes truth merely because it exists.
Identity, permissions, model policy, and the current profile establish the operating boundary.
A small reviewed set of preferences and durable operating facts enters the session context.
Relevant structured memories and facts are retrieved for the turn without dumping the full database into the prompt.
Conversation history remains searchable for what was said, including goals, decisions, and prior corrections.
Exact lookup, semantic search, deep recall, Wiki search, and relationship queries serve different evidence needs.
Most conversation remains transcript history. Durable promotion requires a deliberate destination and a governed write.
Candidate capture identifies statements worth review, but candidates do not promote themselves.
Stable facts, readable synthesis, repeatable procedures, and temporary task state remain separate.
The same information can appear in more than one layer, but each layer has one job. That is the difference between redundancy and confusion.
| Component | Role | Reads | Writes | Status |
|---|---|---|---|---|
| Prompt memory | Small always-needed preferences, corrections, and stable system facts. | Session-start snapshot | Governed memory tool | active |
| Memory provider | Automatic bounded prefetch, mirrored hot-memory changes, and candidate staging. | Structured knowledge | Mirrors and candidates | active |
| Candidate staging | Holds possible preferences or directives until reviewed. | Explicit user signals | Candidate rows only | staging |
| Session history | Records conversations, usage, routing, and continuity. | Hermes runtime | Every conversation | active |
| History search | Finds actual prior discussions without pretending transcript text is current truth. | Session history | None | access |
| Structured knowledge | Canonical machine-queryable facts, memories, entities, relations, indexes, and lifecycle state. | Memory tools and maintenance | Clarence-governed paths | canonical |
| Memory tools | Exact lookup, semantic search, deep recall, governed writes, retirement, and feedback. | Structured knowledge | Approved operations | active |
| Vector lanes | Local semantic retrieval across memories, facts, vault notes, and large documents. | Embedded source rows | Indexer-managed vectors | full coverage |
| Deep recall | Combines semantic, lexical, metadata, Wiki, profile, and corpus candidates. | Multiple retrieval lanes | Telemetry and feedback | active |
| Context graph | Answers relationship-first questions over explicit entities and relations. | Structured knowledge | None | read-only pilot |
| System Wiki | Human-readable compiled truth: architecture, decisions, source maps, and current state. | Task intake and review | Durable synthesis | compiled truth |
| Vault index | Makes reviewed notes searchable beside structured memory without pretending they are identical. | Reviewed notes | Search index and vectors | scheduled |
| Skills | Procedural memory for repeatable workflows, verification, and tool use. | Skill catalog | Reviewed skill files | procedure authority |
| Run-state | Temporary task handoff, command receipts, blockers, and next action. | Current task only | During substantial work | temporary |
| Corpus index | Large-document metadata, chunks, exclusions, extraction state, and semantic vectors. | Curated source packs | Manual promotion path | active store |
| Maintenance jobs | Refresh indexes, audit hygiene, checkpoint growth, and report drift. | Stores and schedulers | Indexes or reports | scheduled |
| External readers | Give approved clients a narrow view without granting canonical write authority. | Public-safe or read-only surfaces | None | bounded |
Known names and identifiers avoid semantic guesswork.
Local vectors retrieve related memories, facts, notes, and document chunks.
Full-text, title, path, and metadata affinity recover exact evidence vectors miss.
A bounded candidate pool combines lanes and protects strong exact hits.
The graph answers dependency, ownership, and project-membership questions.
Useful and noise ratings create evidence for improving ranking over time.
Conversation history grows quickly. Indexing and checkpoints are working, but long-term retention still needs an explicit policy.
Always-injected context is finite. New facts must replace or consolidate older material instead of accumulating forever.
Hygiene is intentionally proposal-first. The remaining work is reviewing and applying the right proposals without turning maintenance into autonomous deletion.
Semantic coverage is complete, but optional reranking remains disabled and the feedback corpus is still young.
Large-document promotion is manual. That keeps publication deliberate, but it also creates a second freshness clock.
Parts of the durable storage layer still carry names from the previous runtime. The system works, but the namespace can mislead future audits.
This is a curated architecture report. It excludes private memory text, personal profile content, conversation excerpts, work-item titles, filesystem locations, network topology, credentials, operational thresholds, precise activity times, and writable remote interfaces. The point is to show the design without publishing the operating record.