Every agent framework now ships a memory module. Vectors, summaries, reflection loops, graph-based recall. They all miss the simplest and most reliable memory primitive on the internet: the email inbox.
What email gets right as memory
- Append-only by default. You don't lose history.
- Addressable. Every message has a stable ID and thread ID.
- Searchable. Full-text search is built in.
- Structured where it matters. Sender, subject, date, attachments — all first-class fields.
- Pull model. The agent reads when it needs, not streaming 24/7.
- Interoperable. The rest of the world writes to the inbox without you asking.
The agent-memory pattern
Give the agent an inbox. When the agent takes an action, send a record email to itself summarizing what it did. When it needs to recall, query the inbox. Lumbox's API gives you list, search, thread, and filter — the full memory surface.
// agent acts
await lumbox.inboxes.send(self.inbox_id, {
to: self.address,
subject: "[memory] signed up for stripe",
text: "Account created with card ending 4242, verified at 14:22Z",
});
// later, agent recalls
const memories = await lumbox.inboxes.search(self.inbox_id, {
subject: "[memory]",
since: "2026-05-01",
});
When it beats a vector store
When you need verbatim recall, temporal ordering, and cross-agent handoffs. Vector stores excel at fuzzy semantic similarity. Inboxes excel at "what did I do last Tuesday and who did I talk to about it."
Hybrid is fine
Use the inbox for durable, addressable, audit-able memory. Use a vector store for similarity search over summaries. They complement each other. lumbox.co.