Concepts
Memories, entities, relations, sources, visibility and time — the few ideas behind Era Brain.
Memories
A memory is one self-contained statement: "Ada Lovelace prefers invoices in EUR, sent on the 1st." — names spelled out, readable on its own, a year from now. Each has:
kind | fact, preference, decision, commitment or episode |
source | where it came from — { kind, ref, label, url, at } — shown with every recalled fact |
visibility | workspace, private or module (see below) |
entities | the people, companies, products, projects and topics it names |
valid_from | since when it is true; a memory that was replaced keeps its history |
You add memories in four shapes: a sentence (stored as written), text or a conversation (split into facts by your workspace's AI), ready-made facts (stored as given, with the entities you name), or a record from your own system (adding the same record again replaces what it said before).
Jobs
Adding is asynchronous. POST /brain/memories answers with a job — queued, running, done, failed or waiting — and Era's ingestion worker files the memories, usually within seconds. wait (up to 20 seconds) returns them in the same call. waiting says what the worker needs first, in waiting_for: free text needs your workspace's AI to extract facts, and a private note is filed with its owner's own AI; Brain also asks the AI when a new fact may replace an older one.
A brain can be set to ask first about what it hears in conversations (Brain → what it learns from). Facts added as a conversation then become suggestions a person approves on the Brain screen; the finished job counts them in pending_approval, and they are not searchable until approved. Notes, ready-made facts and records are filed directly — except rules and procedures Brain extracts from text, which always wait for approval.
Entities and relations
An entity is a person, customer, company, product, project or topic that memories name. Brain merges spellings and aliases into one entity, so Ada, Ada Lovelace and A. Lovelace meet.
A relation is a typed edge between two entities — works_at, supplies, owns, ordered — taken from connected records and from relationships Brain discovers. Relations let Brain answer questions that no single memory answers: "Who supplies the company Ada works at?" walks Ada → works_at → Analytical Engines ← supplies ← Babbage Parts, and each hop comes with the memory that states it.
Latest value wins
When a new memory says something different about the same thing — Ada now wants GBP — the newer one is placed above the older one in every answer (the older is marked earlier), and a correction replaces the old wording outright: the old version becomes history and is no longer recalled. Forget stops Era using a memory at once; the audit trail keeps that it was forgotten, and by whom.
Visibility
Every memory is visible to exactly the people who may see it — in the app, through the API, over MCP:
visibility | Who recalls it |
|---|---|
workspace | Everyone in the workspace who can read Brain |
private | Only the person who saved it (or whose own source it came from) |
module | Only people who can read that module — a fact that came from a finance record is recalled only for people who can read finance |
Nothing ever crosses workspaces. The rules are the app's own; Permissions has the details.
Sources
Memories come from what you add through the API, CLI and MCP, from Era's own chats (when the workspace lets Brain learn from them), from connected sources such as Google Drive and Notion, and from the records of Era's modules. GET /brain/sources lists the connected sources and how many visible memories each kind of source gave.