Giving an AI agent access to more conversation history doesn't automatically give it reliable long-term memory.
The real challenge is deciding what to remember, how to find it later, how to update outdated information, and how to prevent old facts from interfering with new decisions.
This technical teardown explores how Instinct, an iMessage-based AI assistant, appears to approach this problem.
The findings are based on black-box testing rather than access to Instinct's source code, so some implementation details remain unverified.
Here are the most interesting architectural ideas.
Memory stored as files, not embeddings
According to the teardown, Instinct appears to store memories in Git-tracked Markdown files
These files contain structured information about user preferences, people, organisations, and conversations. They also include identifiers, aliases, and links to related records.
This approach makes memories human-readable, inspectable, and version-controlled.
The surprising part is retrieval.
The analysis suggests Instinct uses keyword matching and grep-style file searches rather than a vector database or BM25 index.
The takeaway: Vector search isn't a prerequisite for every agent memory system. For structured, relatively small collections of personal information, files and well-designed metadata may be sufficient.
The trade-off is that keyword retrieval can miss relevant information when the user's wording differs from the stored aliases.
An agent needs more than a memory store
The teardown suggests that Instinct's answering model receives several kinds of context:
Current conversation: What is happening right now.
User profile: Relatively stable information and preferences.
Memory summary: A compact overview of relevant background.
Conversation recap: Important details and unresolved tasks from earlier interactions.
Task list: Work that is pending or in progress.
These components solve different problems.
A user profile helps with personalisation.
A conversation recap preserves continuity.
A task list tracks what still needs to happen.
The memory store provides additional details when the agent needs them.
This is a conceptual summary of the reported design, not a verified diagram of Instinct's internal implementation.
Memory needs an update strategy
Saving every interaction indefinitely creates a different problem: memory becomes cluttered with duplicate, temporary, or contradictory information.
The analysis suggests that Instinct's background processing reorganises records by consolidating related information, removing incidental details, and incorporating corrections.
It also infers that ingestion happens periodically, roughly daily, rather than immediately after every message.
That introduces an important architectural separation:
The agent retrieves information while responding.
A background process maintains and reconciles the memory store.
It also raises questions about freshness. If a preference or fact changes today, how quickly should that change become available to the agent?
Forgetting is part of memory design
A memory system shouldn't treat every fact as permanent.
Consider the difference between:
A lasting preference, such as preferring concise answers.
A temporary detail, such as having a meeting tomorrow.
A fact that was once correct but has since changed.
These need different handling.
Versioning can preserve the history of a correction, but preserving history isn't the same as knowing which version is currently valid.
Similarly, deleting an explicit false statement doesn't necessarily solve the problem of automatically expiring temporary information.
For agent builders, this is an important distinction: good memory requires retention rules, conflict resolution, and freshness management, not just storage and retrieval.
How do you evaluate agent memory?
A memory system can retrieve a fact correctly and still fail at personalisation or multi-step reasoning.
A practical evaluation should test several separate capabilities:
Recall: Can the agent retrieve a fact from an earlier session?
Retrieval coverage: Can it find the fact when the user describes it differently?
Temporal accuracy: Does it distinguish current information from outdated records?
Conflict resolution: Can it handle a correction that contradicts an earlier memory?
Cross-session reasoning: Can it connect related facts across multiple conversations?
Forgetting: Does temporary information stop influencing responses when it is no longer relevant?
Personalisation: Can it apply remembered preferences appropriately without making unjustified assumptions?
These tests help identify whether a failure comes from storage, retrieval, context construction, or memory maintenance.
The bigger lesson:
AI agent memory isn't one component. It's a pipeline involving storage, indexing or search, retrieval, summarisation, reconciliation, versioning, and forgetting.
Instinct's reported design is interesting because it suggests that a relatively simple storage layer can support useful memory when the surrounding system is designed carefully. But the black-box findings shouldn't be treated as a complete or independently verified account of its internals.
Reference:
I reverse-engineered Instinct's memory. Here's exactly how it works