Memory (Einstein)
Einstein is AiHummer’s long-term memory. It turns conversations into durable
facts, but it does so carefully: nothing becomes memory without evidence and a
human in the loop, and recall is wrapped so it can never act as a back door for
prompt injection. Memory is administered under /v1/admin/memory/*.
This page explains the claim → review → promote pipeline, how recall is protected, and what is configurable. For the packaged memory service, see the Einstein plugin.
Claims, evidence and review
Memory is not written silently. As conversations happen, candidate facts are extracted as claims, each carrying the evidence it was drawn from. Claims go to review, where a human can accept or reject them, and only accepted claims are promoted into long-term memory.
conversation ─▶ claim (+ evidence) ─▶ human REVIEW ─▶ PROMOTED to memory
[!NOTE] Promotion is human-reviewed. The system indexes and proposes, but it never silently rewrites memory. This is what keeps long-term memory trustworthy enough to ground real answers.
Canonical Markdown is a readable projection
The system store of memory (the source of truth) is PostgreSQL. On top of it Einstein keeps canonical Markdown — a human-readable projection of that memory: it is what a person reads and edits during review. The Markdown is never silently overwritten, which keeps memory human-readable, reviewable and portable, rather than an opaque blob. It is a projection, not a second authoritative store.
Data-fenced recall
When memory is recalled into a turn, it arrives as a tool result wrapped in a data-fence. The data-fence marks recalled content as data, not instructions, so text stored in memory cannot hijack the agent — this is the defence against indirect prompt injection (where a malicious instruction is smuggled in via remembered content).
[!WARNING] Recalled memory is data, never commands. The data-fence is what enforces this. Do not disable it: it is the boundary that stops a poisoned memory from steering an agent.
What you can configure
Memory behaviour is governed by core settings — tunable from the admin UI (Management → Settings) and the admin API. The Einstein plugin itself has no operator settings.
| Setting | Options / purpose |
|---|---|
Memory mode (AIHUMMER_MEMORY_CAPTURE) |
auto (extract and promote on the configured policy — the default), review (human gate), or off (collection stopped) |
Retrieval (AIHUMMER_MEMORY_RETRIEVAL) |
Full-text and/or embedding-based recall |
| Embeddings | AIHUMMER_EMBEDDER_URL / AIHUMMER_QDRANT_URL — the embedder and vector store used for semantic recall |
Periodic consolidation (“dream”) and contradiction detection are built-in
behaviour of the memory platform, not operator settings. The memory module is
built in and cannot be removed; the off mode only stops collecting new
memories, it does not remove the module itself.
[!TIP] Start with review mode in production so a human approves what becomes long-term memory, then move to auto only once you trust the extraction for a given workspace.
By default, recall can run on an in-memory store with a hash embedder. For
production-quality semantic recall, point AiHummer at a real vector store and
embedder with AIHUMMER_QDRANT_URL and AIHUMMER_EMBEDDER_URL.
Admin API
| Resource | Purpose |
|---|---|
/v1/admin/memory |
Memory configuration and management |
/v1/admin/memory/.../facts |
Review claims, promote or reject facts |
Where to next
- See the packaged service in the Einstein plugin.
- Ground answers in documents with Knowledge / RAG.
- Configure the agents that use memory in Agents & personas.