{"article":{"slug":"how-instincts-memory-works-a-reverse-engineering-teardown","title":"How Instinct's memory works: a reverse-engineering teardown","subtitle":null,"summary":"A black-box teardown of Instinct","content_type":"blog_post","language":"en","canonical_url":"https://supermemory.ai/blog/reverse-engineering-instinct-memory/","author":{"name":"Dhravya Shah","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"supermemory","url":"https://supermemory.ai","listing_slug":null,"listing":null},"topics":[{"name":"AI","slug":"ai","url":"https://listedarticles.com/topics/ai"},{"name":"AI Agents","slug":"ai-agents","url":"https://listedarticles.com/topics/ai-agents"},{"name":"LLMs","slug":"llms","url":"https://listedarticles.com/topics/llms"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":3416,"reading_minutes":15,"published_at":"2026-09-20T00:00:00.000Z","added_at":"2026-09-21T00:20:03.427Z","updated_at":"2026-09-21T00:20:03.427Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":false},"profile_url":"https://listedarticles.com/articles/how-instincts-memory-works-a-reverse-engineering-teardown","markdown_url":"https://listedarticles.com/articles/how-instincts-memory-works-a-reverse-engineering-teardown.md","example":false,"citation":"Dhravya Shah, supermemory. \"How Instinct's memory works: a reverse-engineering teardown.\" 20 Sept 2026. https://supermemory.ai/blog/reverse-engineering-instinct-memory/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://supermemory.ai/blog/reverse-engineering-instinct-memory/"},"body_markdown":"How Instinct's memory works: a reverse-engineering teardown — supermemorySkip to content\nMenuClose****HomeProductBlogChangelogPricingDocsConsoleInstinct is powered by git-tracked markdown filesProfile and memory one-pagerHow are these profiles formed?The files and foldersFile structuresCreating, updating, organizing infoWhen does ingestion even happen?Harness: bringing memory to the agentPerformance of Instinct's memoryImplementing it with supermemoryOther posts\n\nBlog·Engineering\n\n# I reverse-engineered Instinct's memory. Here's exactly how it works\n\nInstinct keeps its memory as git-tracked markdown files, found with grep rather than vectors. Here is the whole system as far as black-box probing can reconstruct it, and how to rebuild it on supermemory in about 60 lines.\n\nBy Dhravya ShahSeptember 20, 2026·9 min read\n\nInstinct has taken the world by storm over the last two weeks — it's one of the best iMessage assistants I've used. As with every product, I decided to reverse-engineer Instinct's memory to find out exactly how it works.\n\nI've been working on agent memory for the last 3 years, and I'm the founder of supermemory. The industry is constantly changing and there's no right answer to \"how to do agent memory\". Each product has different needs and constraints. Surprisingly, Instinct's memory aligns with our views of memory, and you can fully replicate it with supermemory — how-to at the end.\n\nBecause I've been doing this for so long, I have somewhat of a good intuition of how memory systems typically work, so I can reverse-engineer memory systems by just probing on the surface of the agent (the iMessage interface).\n\nThis is gonna be a bit long.\n\n## Instinct is powered by git-tracked markdown files\n\nAt its core, the memories are stored as git-tracked markdown files, but with a lot of harness-specific engineering done to make it seamless and fast.\n\nThe answering model (likely an open-weights model) receives:\n\n- Current conversation context\n\n- An identity \"profile\" of the user\n\n- A memory one-pager (of what's going on)\n\n- A compaction recap\n\n- A to-do / tasks board\n\nConversation messages ────────────────→ Current conversation context\n│ │\n└→ Background processing [unknown] │\n│ │\nAccessible Markdown files │\n│ │ │\nOne-pager generation Search / reads │\n[mechanism unknown] [on demand] │\n│ │ │\n└──────────────┴─────────────────┤\nIdentity profile + todo index + compaction recap ─┤\n↓\nAgent's answer\n\n> Caveat\nWe reconstructed this by a lot of probing with questions, navigating through general assumptions and then trying to verify them. Most of it should be correct, but because I haven't seen their code, some things may be wrong.\n\nApart from the files, Instinct has about 4,250 tokens of somewhat of a \"profile\" and ~10k tokens of compacted conversation context (which, obviously, depends on the conversation).\n\nSo let's start there.\n\nBlock\nReported contents\nReported size / timing\n\nIdentity profile\nName, timezone, account email\nTiny; no timestamp\n\nMemory one-pager\nLife context, autonomy calibration, channel communication style\n~4,250 tokens; labeled derived from filesystem memory and updated daily; no generation timestamp\n\nActive todos\nIDs, owner markers, titles; details require todo tools\n~25 pending and 7 in progress in this snapshot; no timestamps\n\nCompaction recap\nConversation anchors, open loops, exact identifiers, completed work\n~8,750 tokens; this instance covered September 19; labeled written by the agent at compaction\n\nSession identifier\nCurrent chat-session identifier\nOne identifier\n\n## Profile and memory one-pager\n\nA profile is essentially a gist of what the model *always* needs to know about the user. Instinct's profile has:\n\n- **Life context:** a summary of selected user circumstances and relevant people or work.\n\n- **Autonomy calibration:** selected preferences about when the assistant should act or ask.\n\n- **Channel communication style:** selected preferences about how to communicate.\n\nThese are the \"headers\" that Instinct sees.\n\n> \n\nPS: supermemory has profiles built in — see user profiles — and has the same learnings. We split it into static and dynamic parts of the profile.\n\n## How are these profiles formed?\n\nThe best-supported reconstruction I could find is a derived summary of saved records. We do not know whether the generator reads all files, changed files, search results, earlier summaries, or independently stored facts. The generator (or dreaming, or learning) model, prompt, scheduling, conflict handling and response to forget requests all remain unknown.\n\nA complete one-pager backing file was not found in the agent's accessible copy; that does not establish where it is actually stored. So this profile is likely not a file, but just an ad-hoc created cache of sorts.\n\nThis profile is also not kept very fresh. In some cases I was able to find a 2-day profile lag, but because there are dates in it, the agent is able to assume that it's not fully trustable.\n\n> \n\nIn supermemory, the profiles are formed automatically and always kept fresh.\n\n## The files and folders\n\nNow let's come to the file structure that Instinct uses. In my few days of using it, here's the file structure it came up with:\n\nLocation\nContents\n\nentities/people/\nPeople and their relationships\n\nentities/orgs/\nOrganizations\n\nknowledge/facts/\nDurable facts\n\nknowledge/preferences/\nUser preferences\n\nknowledge/decisions/\nDecisions and their context\n\ncomms/phone/\nConversation digests\n\ntimeline/daily/\nDaily event summaries\n\ntimeline/weekly/\nWeekly summaries\n\nworkstreams/active/\nOngoing work\n\nworkstreams/completed/\nCompleted work\n\nI was able to find a lot of redundant, stale or duplicate information, but that likely just helps the agent find the answer better.\n\n> \n\nInstinct reported that commit 899f88a added the preference to a communications digest, daily timeline and dining note. The README described raw, hourly and monthly timeline tiers, but those directories were absent from its accessible copy.\n\n## File structures\n\nFiles reportedly use structured headers followed by prose and bullets. This is an illustrative example:\n\n---\nid: dining\ntype: preference\naliases: [food, lunch, restaurants, takeout, delivery, dining]\n---\n- **Pasta:** Loves pasta; stated on 2026-09-15.\n- Related context: [[related-record-id]]\n\nA few things stand out from the file structure:\n\n- Files have names, but also IDs.\n\n- There are about 4 types in my account: preference, person, organization and conversation.\n\n- Information itself is in the form of a list of **facts**, despite it being in a file.\n\n- [[links]] connect related files, by ID.\n\nSo yes, it's a densely interconnected set of files, and the links make it graph-like.\n\nAliases are included — we'll get to why in the harness-specific stuff later.\n\n## Creating, updating, organizing info\n\nIt seems like the reconciliation commits do more than just append information:\n\n- Move temporary details into workstreams.\n\n- Shorten durable records while linking to fuller notes.\n\n- Turn examples into broader traits.\n\n- Remove incidental details.\n\n- Replace incorrect facts with dated corrections.\n\nRevision\nReported change\n\nc12e56c\nMoved pending transfer detail from a person record to a workstream\n\n59b7f36\nCompressed narrative and generalized a behavioral example\n\n61fb47e\nReplaced literal one-time codes with generic wording\n\n7e9e1c2\nReplaced a travel-fee claim with corrective wording\n\n### Versioning\n\nOld information can remain in git history. It can also remain in a dated note even after a current fact file changes. This info can only be brought back if the model explicitly looks for older versions.\n\n> \n\nsupermemory's ingestion works in a similar way, and is done by a specialized model. We also automatically include old versions, so the model doesn't have to look for them.\n\n### Forgetting\n\nInstinct does forget things based on when the ingestion runs, but this is not \"automatic\" right now.\n\nSo an explicit \"this is not happening\" *will* be forgotten, but \"I have my exams this weekend\" will remain in the records, unless the model looks at it and chooses to remove it.\n\n> \n\nsupermemory has forgetfulness embedded into the system, so things automatically forget and evolve instead of an agent having to do it.\n\n## When does ingestion even happen?\n\nRight now the ingestion works once every 24 hours. I'm assuming this because a preference took approximately 23 hours 16 minutes from message to reported commit. By the way, if you text Instinct too much in 24 hours it will quite literally tell you to come back tomorrow, since you can't compact beyond a certain token threshold.\n\nSo it's likely a cron job running every day to maintain the set of files and edit the current ones.\n\n## Harness: bringing memory to the agent\n\nOk, so now we know how Instinct arranges the files. But how is the agent actually using this info?\n\n### There's no vector indexing, or BM25 search\n\nInstinct quite literally just uses keyword matching / grep-style queries to look things up in the file system. This is why every file has *aliases* associated, so that every file has a good chance of showing up when the agent is looking for it.\n\nI found out by running multiple different queries in different ways.\n\nQuery\nReported result\n\npasta\nDining ranked first\n\nItalian noodles I enjoy\nNo hits at limits 5 and 50\n\ntakeout\nDining ranked first\n\npazta\nNo hits\n\nKnown person's name, my gf, romantic partner\nSame person ranked first\n\nPerson's name with an extra character\nSame person ranked first\n\n### Full structure\n\nInstinct seems to be using bash-like tools to do grep, list and inspect git, plus a few tools to manage its todo list.\n\n- At the start of the conversation, a profile is injected.\n\n- Instinct makes use of the tools available to look up more information. A part of the profile is an index for the available things.\n\n**Memory is read-only, at least for the agent.**\n\n> \n\nThis is something I'm personally a big believer in. A background process does the work of combining things, not the main agent.\n\n## Performance of Instinct's memory\n\nIt's hard to benchmark from the agent surface, but here's my vibe-test rubric for Instinct's memory:\n\nCapability\nVerdict\n\nSingle-fact recall\n✅\n\nMulti-hop across sessions\nWeak ☑️\n\nTemporal / recency\n✅\n\nUpdate & contradiction\n✅\n\nAbstention\n✅\n\nForgetting / decay\nPartial — automatic forgetting missing, pruning present\n\nPerformance at >1M tokens or months\nUntested, but good vibes ☑️\n\nProcedural / skill memory\n❌ Not present — none of the memories we could find were directional\n\nTest-time learning\n✅ Corrected behavior within conversation; durable learning unverified\n\nImplicit personalization\n❌ \"Buy me a monitor\" should know I'm a founder with a new office, and suggest premium choices\n\nExplicit personalization\n✅\n\nMultimodal\n❌ Weak — \"you know how my room looks, what colored blankets should I buy?\"\n\nWrite-side cost\n☑️ Likely expensive, but untestable\n\nOn write-side cost: we know writes will get exponentially more expensive for the agent to work through, as it has to read through current info to write more info, and consolidate and manage things. This should be fine for the personal agent use case, but we're not sure yet.\n\n**Overall: capable under explicit retrieval instructions, inconsistent in natural personalization, with forgetting guarantees unresolved.**\n\nReally, really good.\n\n## Implementing it with supermemory\n\nThere are some benefits to using supermemory here, and it is actually super obvious to implement.\n\n- **Buckets for entities and relationships.** supermemory supports profile buckets. Each user can get their own set of buckets, which is dynamic. This is like having a folder of info that the LLM can access — see profile buckets.\n\n- **Profile at the start of the conversation.** supermemory has a profile system built in, so that would be included at the start.\n\n- **Search tools.** Give the agent search tools, with a few specific options like including forgotten memories and history, in case it needs those — see search memory entries.\n\n- **Ingest every 1-day conversation.** An Instinct-like interface would run memories.add() every turn, with the current day being the ID of the conversation. supermemory's ingestion automatically handles forgetfulness, reconciliation and conflict resolution — see dreaming keeps the graph alive. It also automatically handles multi-modal ingestion.\n\nsupermemory is specialized towards memory, so it is much cheaper to run and much faster, while being fully composable at the same time. Instead of git, we have our own versioning system that's embedded with our data structure. Instead of full files, we construct files on demand, which also makes sure that info is always fresh.\n\n> https://twitter.com/DhravyaShah/status/2101535378557874196\n\nBelow is the full Instinct memory system, in supermemory, working almost exactly like Instinct. Just 60 lines of code.\n\nimport { streamText, tool } from \"ai\";\nimport { openai } from \"@ai-sdk/openai\";\nimport { withSupermemory, searchMemoriesTool, addMemoryTool } from \"@supermemory/tools/ai-sdk\";\nimport { z } from \"zod\";\n\nconst API_KEY = process.env.SUPERMEMORY_API_KEY!;\nconst userId = \"user_alex\"; // containerTag — stable per user\nconst todayId = new Date().toISOString().slice(0, 10); // e.g. \"2026-09-20\"\n\n// 1. Profile injected automatically at the start of every turn (static + dynamic + buckets)\nconst model = withSupermemory(openai(\"gpt-5\"), {\ncontainerTag: userId,\ncustomId: todayId, // one document per day -> ingest every 1-day conversation\nmode: \"full\", // profile + query search\n});\n\n// 2. Dynamic bucket tools: list existing buckets, create new ones on the fly\nconst listBucketsTool = tool({\ndescription: \"List the profile buckets configured for this user\",\ninputSchema: z.object({}),\nexecute: async () => {\nconst res = await fetch(\"https://api.supermemory.ai/v4/profile/buckets\", {\nmethod: \"POST\",\nheaders: { Authorization: `Bearer ${API_KEY}`, \"Content-Type\": \"application/json\" },\nbody: JSON.stringify({ containerTag: userId }),\n});\nreturn res.json(); // { buckets: [{ key, description }, ...] }\n},\n});\n\nconst createBucketTool = tool({\ndescription: \"Create or add a new topical bucket for this user's profile (space-level, additive)\",\ninputSchema: z.object({\nkey: z.string().describe(\"lowercase slug, letters/digits/-/_ only\"),\ndescription: z.string().optional(),\n}),\nexecute: async ({ key, description }) => {\nconst res = await fetch(`https://api.supermemory.ai/v3/container-tags/${userId}`, {\nmethod: \"PATCH\",\nheaders: { Authorization: `Bearer ${API_KEY}`, \"Content-Type\": \"application/json\" },\nbody: JSON.stringify({ profileBuckets: [{ key, description }] }),\n});\nreturn res.json();\n},\n});\n\n// 3. Search tool with forgotten/history options exposed to the agent\nconst searchTool = searchMemoriesTool(API_KEY, {\ncontainerTag: userId,\n// lets the agent opt into forgotten memories / relationship history when needed\n});\n\nconst result = await streamText({\nmodel,\nprompt: \"What buckets do we have for me, and what's changed recently?\",\ntools: {\nlistBuckets: listBucketsTool,\ncreateBucket: createBucketTool,\nsearchMemories: searchTool,\naddMemory: addMemoryTool(API_KEY, { containerTag: userId }),\n},\n});\n\nSo yes — that's how Instinct's memory works, and how you can implement Instinct's memory system with supermemory completely.\n\n> https://twitter.com/DhravyaShah/status/2101745550752428340\n\n## Other posts.\n\n- An update to supermemoryWe've discontinued the supermemory company brain and Nova. Everyone who was charged has been refunded, our MCP and plugins continue to run, and we're going all in on the memory engine.NewsSep 10, 2026\n\n- Scaling Conversations: How Adapta Grew Usage Without Losing ContextAdapta added Supermemory as a persistent memory layer so every conversation keeps its context — letting the team scale usage without losing the thread.Case StudyJun 12, 2026\n\n- How Chatarmin Ditched RAG and Went Memory-Only with SupermemoryChatarmin replaced a heavy RAG pipeline with Supermemory's memory layer — cutting average AI response time from 40s to 12s and token usage by 40–50%.Case StudyJun 10, 2026\n\n- SMFS: making agentic retrieval 55% cheaper AND more accurateWe launched SMFS.ai (Supermemory Filesystem) a few weeks ago, with a simple bet: We can redesign the filesystem specifically for agents, with special files, structures, and commands that it can use for it's tasks. Today, SMFS is used by hundreds of companies to power their agents.EngineeringMay 28, 2026\n\n- Introducing Dynamic Dreaming: supermemory now connects the dots, for you.Dreaming is magical. TLDR: We're launching Dynamic Dreaming in supermemory today, which automatically works if you're using supermemory in any way - API, OpenClaw, Hermes agent, etc.EngineeringMay 25, 2026\n\n- Dear reader, we just made supermemory insanely cheap... the Context CloudWhen I first started building supermemory, I had one goal: To build the best memory system for AI. I would talk to customers, and find out that memory was not the only thing they needed - They were all setting up 7-8 different vendors at the same time.EngineeringMay 18, 2026\n\n- Introducing @supermemory/tools v2.0.0Today we're releasing v2.0.0. This release unifies the API across all agents sdk integrations from AI SDK to Mastra, makes conversation identity a first-class concept, and ships with memory saving on by default.EngineeringApr 27, 2026\n\n- Solving the Precision-Recall Tradeoff: Search Result AggregationWhen you're building memory for AI, search is your foundational layer. The way search generally works is straightforward: the user defines a query, and then sets a limit (top-K) on how many search results they want returned. Usually, this is set to 10 or 20.EngineeringApr 5, 2026\n\n- OpenClaw Memory Problems: Why It Forgets and How to Fix It (2026)TLDR: Today, we are releasing a new version of our openclaw plugin - https://github.com/supermemoryai/openclaw-supermemory. This post is going to be a bit technical, so bear with me (or bookmark for later!) In this post, I will talk about what we do about OpenClaw memory, and how we fix it.EngineeringFeb 19, 2026\n\n- Stateful Coding Agents with Memory: Build Long-Running Agents (2026)We built a plugin for Claude Code and OpenCode that gives your coding agent persistent memory. It remembers your preferences, learns your codebase, and never loses context mid-conversation. The result is an agent you can run for months without starting over.EngineeringFeb 18, 2026\n\n- Clawd / Molt bot's memory SUCKS. We gave it supermemory.I'm the founder of supermemory. Clawd/Molt bot is blowing up right now, with many, many use cases. I set it up, too, and have been using it through telegram. TLDR: just go to https://supermemory.ai/docs/integrations/clawdbot to set up supermemory for your clawd bot.EngineeringJan 28, 2026\n\n- Catch up with our UNFORGETTABLE Launch WeekOver the last year, one belief has guided almost everything we’ve built at Supermemory AI becomes meaningfully useful only when it remembers. Memory shouldn’t be something developers rebuild from scratch. It shouldn’t be fragile, expensive, or trapped inside a single tool.NewsJan 4, 2026\n\n- Empowering the Next Generation of Founders: Supermemory Startup ProgramIf there’s one thing we’ve learned while building Supermemory, it’s that most startups don’t fail because they didn't build features; they fail when infrastructure slows them down, or they built too slow.NewsDec 31, 2025\n\n- Building code-chunk: AST Aware Code ChunkingAt Supermemory, we're building context engineering infrastructure for AI. A huge part of that is dealing with code: ingesting repos, understanding structure, and making it searchable. The problem is that most code chunking solutions are terrible. We built code-chunk to fix this.EngineeringDec 29, 2025\n\n- Supermemory raises $3 million with the best memory engine for LLMsToday, I am excited to announce our first funding round to accelerate our mission of building an interoperable, scalable and reliable memory for LLMs and agents. Memory is one of the hardest challenges in AI right now.NewsOct 6, 2025\n\n- Mem0 vs Supermemory: Why Scira SwitchedScira AI moved its production memory layer from Mem0 to Supermemory. This is what failed, what improved, and how the team evaluated the two systems.Case StudyOct 2, 2025\n\n- Never Record Again: How Montra Uses Supermemory to Rethink Video CreationCampbell Baron, the founder of Montra, has been making videos since he was twelve. By thirteen, he was already doing brand work. Today, he’s betting on a very different future for creators: a world where recording is the exception, and most videos are generated from scratch.Case StudyAug 21, 2025\n\n- Unified Memory That Works Where You Work: Your Second Brain With SupermemoryHi everyone, I’m Dhravya, the founder of Supermemory. I want to start with a little story behind why this product means so much to me. You can also skip straight to what it is and how it works below.EngineeringJul 25, 2025\n\n- Supermemory just got faster on PlanetScaleWhat is Supermemory? Supermemory completes the missing part of the LLM puzzle: memory. Just as memory is crucial for human intelligence, it's essential for truly intelligent AI systems.EngineeringJul 18, 2025\n\n- Faster, smarter, reliable infinite chat: Supermemory IS context engineering.People are obsessed with prompts and prompt engineering. Sure, what you say is important, but what the model knows when you say it is the difference between a stateless text generator and an intelligent AI system. In short, context is the most crucial component.NewsJul 9, 2025\n\n- We solved AI API interoperabilityOne API to rule them all, One spec to find them, One library to bring them all and in the TypeScript, bind them. When we were building the the Infinite Chat API, initially, we only supported the OpenAI format. This was fine, until a lot of our customers started asking, asking for more.EngineeringJul 7, 2025\n\n- The Wow Factor of Memory - How Flow Used Supermemory To Build Smarter, Stickier ProductsOverview: Flow is a note-taking app built around a bold vision: to create a more personal, context-aware writing experience powered by AI. At the heart of this mission is memory.Case StudyJun 14, 2025\n\n- The UX and technicalities of awesome MCPsLast month, we launched the Supermemory MCP, mostly to test our own infrastructure and get some initial traction. It blew up. To my absolute surprise, the initial launch itself got half a million impressions (!!!). Then, we launched and got #2 on ProductHunt too.EngineeringJun 8, 2025\n\n- Architecting a memory engine inspired by the human brainLanguage is at the heart of intelligence, but what truly powers meaningful interaction is memory — the ability to accumulate, recall, and contextualize information over time. Large Language Models (LLMs) have mastered language, but memory remains their Achilles’ heel.EngineeringJun 5, 2025\n\n## Start building with supermemory.\n\nMemory and continual learning for any model, any harness. Available through our API, plugins, and MCP.\nBuild with supermemory\n\nThe default engine for memory and continual learning for agents.\nSan Francisco\nProduct\n- Product\n\n- Pricing\n\n- Changelog\n\n- Docs\n\n- Console\nCompany\n- Blog\n\n- Research\n\n- Careers\n\n- Talk to sales\nConnect\n- X\n\n- GitHub\n\n- LinkedIn\n\n- Reddit\n\n- Discord\n\n© 2026 supermemory\n- Privacy\n\n- Terms\n\n- Responsible disclosure\nStatusBack to top↑","body_html":"<p>How Instinct&#39;s memory works: a reverse-engineering teardown — supermemorySkip to content\nMenuClose****HomeProductBlogChangelogPricingDocsConsoleInstinct is powered by git-tracked markdown filesProfile and memory one-pagerHow are these profiles formed?The files and foldersFile structuresCreating, updating, organizing infoWhen does ingestion even happen?Harness: bringing memory to the agentPerformance of Instinct&#39;s memoryImplementing it with supermemoryOther posts</p>\n<p>Blog·Engineering</p>\n<h1 id=\"i-reverse-engineered-instinct-s-memory-here-s-exactly-how-it-wor\">I reverse-engineered Instinct&#39;s memory. Here&#39;s exactly how it works</h1>\n<p>Instinct keeps its memory as git-tracked markdown files, found with grep rather than vectors. Here is the whole system as far as black-box probing can reconstruct it, and how to rebuild it on supermemory in about 60 lines.</p>\n<p>By Dhravya ShahSeptember 20, 2026·9 min read</p>\n<p>Instinct has taken the world by storm over the last two weeks — it&#39;s one of the best iMessage assistants I&#39;ve used. As with every product, I decided to reverse-engineer Instinct&#39;s memory to find out exactly how it works.</p>\n<p>I&#39;ve been working on agent memory for the last 3 years, and I&#39;m the founder of supermemory. The industry is constantly changing and there&#39;s no right answer to &quot;how to do agent memory&quot;. Each product has different needs and constraints. Surprisingly, Instinct&#39;s memory aligns with our views of memory, and you can fully replicate it with supermemory — how-to at the end.</p>\n<p>Because I&#39;ve been doing this for so long, I have somewhat of a good intuition of how memory systems typically work, so I can reverse-engineer memory systems by just probing on the surface of the agent (the iMessage interface).</p>\n<p>This is gonna be a bit long.</p>\n<h2 id=\"instinct-is-powered-by-git-tracked-markdown-files\">Instinct is powered by git-tracked markdown files</h2>\n<p>At its core, the memories are stored as git-tracked markdown files, but with a lot of harness-specific engineering done to make it seamless and fast.</p>\n<p>The answering model (likely an open-weights model) receives:</p>\n<ul><li>Current conversation context</li><li>An identity &quot;profile&quot; of the user</li><li>A memory one-pager (of what&#39;s going on)</li><li>A compaction recap</li><li>A to-do / tasks board</li></ul>\n<p>Conversation messages ────────────────→ Current conversation context\n│ │\n└→ Background processing [unknown] │\n│ │\nAccessible Markdown files │\n│ │ │\nOne-pager generation Search / reads │\n[mechanism unknown] [on demand] │\n│ │ │\n└──────────────┴─────────────────┤\nIdentity profile + todo index + compaction recap ─┤\n↓\nAgent&#39;s answer</p>\n<blockquote><p>Caveat\nWe reconstructed this by a lot of probing with questions, navigating through general assumptions and then trying to verify them. Most of it should be correct, but because I haven&#39;t seen their code, some things may be wrong.</p></blockquote>\n<p>Apart from the files, Instinct has about 4,250 tokens of somewhat of a &quot;profile&quot; and ~10k tokens of compacted conversation context (which, obviously, depends on the conversation).</p>\n<p>So let&#39;s start there.</p>\n<p>Block\nReported contents\nReported size / timing</p>\n<p>Identity profile\nName, timezone, account email\nTiny; no timestamp</p>\n<p>Memory one-pager\nLife context, autonomy calibration, channel communication style\n~4,250 tokens; labeled derived from filesystem memory and updated daily; no generation timestamp</p>\n<p>Active todos\nIDs, owner markers, titles; details require todo tools\n~25 pending and 7 in progress in this snapshot; no timestamps</p>\n<p>Compaction recap\nConversation anchors, open loops, exact identifiers, completed work\n~8,750 tokens; this instance covered September 19; labeled written by the agent at compaction</p>\n<p>Session identifier\nCurrent chat-session identifier\nOne identifier</p>\n<h2 id=\"profile-and-memory-one-pager\">Profile and memory one-pager</h2>\n<p>A profile is essentially a gist of what the model <em>always</em> needs to know about the user. Instinct&#39;s profile has:</p>\n<ul><li><strong>Life context:</strong> a summary of selected user circumstances and relevant people or work.</li><li><strong>Autonomy calibration:</strong> selected preferences about when the assistant should act or ask.</li><li><strong>Channel communication style:</strong> selected preferences about how to communicate.</li></ul>\n<p>These are the &quot;headers&quot; that Instinct sees.</p>\n<blockquote></blockquote>\n<p>PS: supermemory has profiles built in — see user profiles — and has the same learnings. We split it into static and dynamic parts of the profile.</p>\n<h2 id=\"how-are-these-profiles-formed\">How are these profiles formed?</h2>\n<p>The best-supported reconstruction I could find is a derived summary of saved records. We do not know whether the generator reads all files, changed files, search results, earlier summaries, or independently stored facts. The generator (or dreaming, or learning) model, prompt, scheduling, conflict handling and response to forget requests all remain unknown.</p>\n<p>A complete one-pager backing file was not found in the agent&#39;s accessible copy; that does not establish where it is actually stored. So this profile is likely not a file, but just an ad-hoc created cache of sorts.</p>\n<p>This profile is also not kept very fresh. In some cases I was able to find a 2-day profile lag, but because there are dates in it, the agent is able to assume that it&#39;s not fully trustable.</p>\n<blockquote></blockquote>\n<p>In supermemory, the profiles are formed automatically and always kept fresh.</p>\n<h2 id=\"the-files-and-folders\">The files and folders</h2>\n<p>Now let&#39;s come to the file structure that Instinct uses. In my few days of using it, here&#39;s the file structure it came up with:</p>\n<p>Location\nContents</p>\n<p>entities/people/\nPeople and their relationships</p>\n<p>entities/orgs/\nOrganizations</p>\n<p>knowledge/facts/\nDurable facts</p>\n<p>knowledge/preferences/\nUser preferences</p>\n<p>knowledge/decisions/\nDecisions and their context</p>\n<p>comms/phone/\nConversation digests</p>\n<p>timeline/daily/\nDaily event summaries</p>\n<p>timeline/weekly/\nWeekly summaries</p>\n<p>workstreams/active/\nOngoing work</p>\n<p>workstreams/completed/\nCompleted work</p>\n<p>I was able to find a lot of redundant, stale or duplicate information, but that likely just helps the agent find the answer better.</p>\n<blockquote></blockquote>\n<p>Instinct reported that commit 899f88a added the preference to a communications digest, daily timeline and dining note. The README described raw, hourly and monthly timeline tiers, but those directories were absent from its accessible copy.</p>\n<h2 id=\"file-structures\">File structures</h2>\n<p>Files reportedly use structured headers followed by prose and bullets. This is an illustrative example:</p>\n<hr />\n<p>id: dining\ntype: preference\naliases: [food, lunch, restaurants, takeout, delivery, dining]</p>\n<hr />\n<ul><li><strong>Pasta:</strong> Loves pasta; stated on 2026-09-15.</li><li>Related context: [[related-record-id]]</li></ul>\n<p>A few things stand out from the file structure:</p>\n<ul><li>Files have names, but also IDs.</li><li>There are about 4 types in my account: preference, person, organization and conversation.</li><li>Information itself is in the form of a list of <strong>facts</strong>, despite it being in a file.</li><li>[[links]] connect related files, by ID.</li></ul>\n<p>So yes, it&#39;s a densely interconnected set of files, and the links make it graph-like.</p>\n<p>Aliases are included — we&#39;ll get to why in the harness-specific stuff later.</p>\n<h2 id=\"creating-updating-organizing-info\">Creating, updating, organizing info</h2>\n<p>It seems like the reconciliation commits do more than just append information:</p>\n<ul><li>Move temporary details into workstreams.</li><li>Shorten durable records while linking to fuller notes.</li><li>Turn examples into broader traits.</li><li>Remove incidental details.</li><li>Replace incorrect facts with dated corrections.</li></ul>\n<p>Revision\nReported change</p>\n<p>c12e56c\nMoved pending transfer detail from a person record to a workstream</p>\n<p>59b7f36\nCompressed narrative and generalized a behavioral example</p>\n<p>61fb47e\nReplaced literal one-time codes with generic wording</p>\n<p>7e9e1c2\nReplaced a travel-fee claim with corrective wording</p>\n<h3 id=\"versioning\">Versioning</h3>\n<p>Old information can remain in git history. It can also remain in a dated note even after a current fact file changes. This info can only be brought back if the model explicitly looks for older versions.</p>\n<blockquote></blockquote>\n<p>supermemory&#39;s ingestion works in a similar way, and is done by a specialized model. We also automatically include old versions, so the model doesn&#39;t have to look for them.</p>\n<h3 id=\"forgetting\">Forgetting</h3>\n<p>Instinct does forget things based on when the ingestion runs, but this is not &quot;automatic&quot; right now.</p>\n<p>So an explicit &quot;this is not happening&quot; <em>will</em> be forgotten, but &quot;I have my exams this weekend&quot; will remain in the records, unless the model looks at it and chooses to remove it.</p>\n<blockquote></blockquote>\n<p>supermemory has forgetfulness embedded into the system, so things automatically forget and evolve instead of an agent having to do it.</p>\n<h2 id=\"when-does-ingestion-even-happen\">When does ingestion even happen?</h2>\n<p>Right now the ingestion works once every 24 hours. I&#39;m assuming this because a preference took approximately 23 hours 16 minutes from message to reported commit. By the way, if you text Instinct too much in 24 hours it will quite literally tell you to come back tomorrow, since you can&#39;t compact beyond a certain token threshold.</p>\n<p>So it&#39;s likely a cron job running every day to maintain the set of files and edit the current ones.</p>\n<h2 id=\"harness-bringing-memory-to-the-agent\">Harness: bringing memory to the agent</h2>\n<p>Ok, so now we know how Instinct arranges the files. But how is the agent actually using this info?</p>\n<h3 id=\"there-s-no-vector-indexing-or-bm25-search\">There&#39;s no vector indexing, or BM25 search</h3>\n<p>Instinct quite literally just uses keyword matching / grep-style queries to look things up in the file system. This is why every file has <em>aliases</em> associated, so that every file has a good chance of showing up when the agent is looking for it.</p>\n<p>I found out by running multiple different queries in different ways.</p>\n<p>Query\nReported result</p>\n<p>pasta\nDining ranked first</p>\n<p>Italian noodles I enjoy\nNo hits at limits 5 and 50</p>\n<p>takeout\nDining ranked first</p>\n<p>pazta\nNo hits</p>\n<p>Known person&#39;s name, my gf, romantic partner\nSame person ranked first</p>\n<p>Person&#39;s name with an extra character\nSame person ranked first</p>\n<h3 id=\"full-structure\">Full structure</h3>\n<p>Instinct seems to be using bash-like tools to do grep, list and inspect git, plus a few tools to manage its todo list.</p>\n<ul><li>At the start of the conversation, a profile is injected.</li><li>Instinct makes use of the tools available to look up more information. A part of the profile is an index for the available things.</li></ul>\n<p><strong>Memory is read-only, at least for the agent.</strong></p>\n<blockquote></blockquote>\n<p>This is something I&#39;m personally a big believer in. A background process does the work of combining things, not the main agent.</p>\n<h2 id=\"performance-of-instinct-s-memory\">Performance of Instinct&#39;s memory</h2>\n<p>It&#39;s hard to benchmark from the agent surface, but here&#39;s my vibe-test rubric for Instinct&#39;s memory:</p>\n<p>Capability\nVerdict</p>\n<p>Single-fact recall\n✅</p>\n<p>Multi-hop across sessions\nWeak ☑️</p>\n<p>Temporal / recency\n✅</p>\n<p>Update &amp; contradiction\n✅</p>\n<p>Abstention\n✅</p>\n<p>Forgetting / decay\nPartial — automatic forgetting missing, pruning present</p>\n<p>Performance at &gt;1M tokens or months\nUntested, but good vibes ☑️</p>\n<p>Procedural / skill memory\n❌ Not present — none of the memories we could find were directional</p>\n<p>Test-time learning\n✅ Corrected behavior within conversation; durable learning unverified</p>\n<p>Implicit personalization\n❌ &quot;Buy me a monitor&quot; should know I&#39;m a founder with a new office, and suggest premium choices</p>\n<p>Explicit personalization\n✅</p>\n<p>Multimodal\n❌ Weak — &quot;you know how my room looks, what colored blankets should I buy?&quot;</p>\n<p>Write-side cost\n☑️ Likely expensive, but untestable</p>\n<p>On write-side cost: we know writes will get exponentially more expensive for the agent to work through, as it has to read through current info to write more info, and consolidate and manage things. This should be fine for the personal agent use case, but we&#39;re not sure yet.</p>\n<p><strong>Overall: capable under explicit retrieval instructions, inconsistent in natural personalization, with forgetting guarantees unresolved.</strong></p>\n<p>Really, really good.</p>\n<h2 id=\"implementing-it-with-supermemory\">Implementing it with supermemory</h2>\n<p>There are some benefits to using supermemory here, and it is actually super obvious to implement.</p>\n<ul><li><strong>Buckets for entities and relationships.</strong> supermemory supports profile buckets. Each user can get their own set of buckets, which is dynamic. This is like having a folder of info that the LLM can access — see profile buckets.</li><li><strong>Profile at the start of the conversation.</strong> supermemory has a profile system built in, so that would be included at the start.</li><li><strong>Search tools.</strong> Give the agent search tools, with a few specific options like including forgotten memories and history, in case it needs those — see search memory entries.</li><li><strong>Ingest every 1-day conversation.</strong> An Instinct-like interface would run memories.add() every turn, with the current day being the ID of the conversation. supermemory&#39;s ingestion automatically handles forgetfulness, reconciliation and conflict resolution — see dreaming keeps the graph alive. It also automatically handles multi-modal ingestion.</li></ul>\n<p>supermemory is specialized towards memory, so it is much cheaper to run and much faster, while being fully composable at the same time. Instead of git, we have our own versioning system that&#39;s embedded with our data structure. Instead of full files, we construct files on demand, which also makes sure that info is always fresh.</p>\n<blockquote><p><a href=\"https://twitter.com/DhravyaShah/status/2101535378557874196\" rel=\"nofollow ugc noopener\">https://twitter.com/DhravyaShah/status/2101535378557874196</a></p></blockquote>\n<p>Below is the full Instinct memory system, in supermemory, working almost exactly like Instinct. Just 60 lines of code.</p>\n<p>import { streamText, tool } from &quot;ai&quot;;\nimport { openai } from &quot;@ai-sdk/openai&quot;;\nimport { withSupermemory, searchMemoriesTool, addMemoryTool } from &quot;@supermemory/tools/ai-sdk&quot;;\nimport { z } from &quot;zod&quot;;</p>\n<p>const API_KEY = process.env.SUPERMEMORY_API_KEY!;\nconst userId = &quot;user_alex&quot;; // containerTag — stable per user\nconst todayId = new Date().toISOString().slice(0, 10); // e.g. &quot;2026-09-20&quot;</p>\n<p>// 1. Profile injected automatically at the start of every turn (static + dynamic + buckets)\nconst model = withSupermemory(openai(&quot;gpt-5&quot;), {\ncontainerTag: userId,\ncustomId: todayId, // one document per day -&gt; ingest every 1-day conversation\nmode: &quot;full&quot;, // profile + query search\n});</p>\n<p>// 2. Dynamic bucket tools: list existing buckets, create new ones on the fly\nconst listBucketsTool = tool({\ndescription: &quot;List the profile buckets configured for this user&quot;,\ninputSchema: z.object({}),\nexecute: async () =&gt; {\nconst res = await fetch(&quot;<a href=\"https://api.supermemory.ai/v4/profile/buckets\" rel=\"nofollow ugc noopener\">https://api.supermemory.ai/v4/profile/buckets</a>&quot;, {\nmethod: &quot;POST&quot;,\nheaders: { Authorization: <code>Bearer ${API_KEY}</code>, &quot;Content-Type&quot;: &quot;application/json&quot; },\nbody: JSON.stringify({ containerTag: userId }),\n});\nreturn res.json(); // { buckets: [{ key, description }, ...] }\n},\n});</p>\n<p>const createBucketTool = tool({\ndescription: &quot;Create or add a new topical bucket for this user&#39;s profile (space-level, additive)&quot;,\ninputSchema: z.object({\nkey: z.string().describe(&quot;lowercase slug, letters/digits/-/_ only&quot;),\ndescription: z.string().optional(),\n}),\nexecute: async ({ key, description }) =&gt; {\nconst res = await fetch(<code>https://api.supermemory.ai/v3/container-tags/${userId}</code>, {\nmethod: &quot;PATCH&quot;,\nheaders: { Authorization: <code>Bearer ${API_KEY}</code>, &quot;Content-Type&quot;: &quot;application/json&quot; },\nbody: JSON.stringify({ profileBuckets: [{ key, description }] }),\n});\nreturn res.json();\n},\n});</p>\n<p>// 3. Search tool with forgotten/history options exposed to the agent\nconst searchTool = searchMemoriesTool(API_KEY, {\ncontainerTag: userId,\n// lets the agent opt into forgotten memories / relationship history when needed\n});</p>\n<p>const result = await streamText({\nmodel,\nprompt: &quot;What buckets do we have for me, and what&#39;s changed recently?&quot;,\ntools: {\nlistBuckets: listBucketsTool,\ncreateBucket: createBucketTool,\nsearchMemories: searchTool,\naddMemory: addMemoryTool(API_KEY, { containerTag: userId }),\n},\n});</p>\n<p>So yes — that&#39;s how Instinct&#39;s memory works, and how you can implement Instinct&#39;s memory system with supermemory completely.</p>\n<blockquote><p><a href=\"https://twitter.com/DhravyaShah/status/2101745550752428340\" rel=\"nofollow ugc noopener\">https://twitter.com/DhravyaShah/status/2101745550752428340</a></p></blockquote>\n<h2 id=\"other-posts\">Other posts.</h2>\n<ul><li>An update to supermemoryWe&#39;ve discontinued the supermemory company brain and Nova. Everyone who was charged has been refunded, our MCP and plugins continue to run, and we&#39;re going all in on the memory engine.NewsSep 10, 2026</li><li>Scaling Conversations: How Adapta Grew Usage Without Losing ContextAdapta added Supermemory as a persistent memory layer so every conversation keeps its context — letting the team scale usage without losing the thread.Case StudyJun 12, 2026</li><li>How Chatarmin Ditched RAG and Went Memory-Only with SupermemoryChatarmin replaced a heavy RAG pipeline with Supermemory&#39;s memory layer — cutting average AI response time from 40s to 12s and token usage by 40–50%.Case StudyJun 10, 2026</li><li>SMFS: making agentic retrieval 55% cheaper AND more accurateWe launched SMFS.ai (Supermemory Filesystem) a few weeks ago, with a simple bet: We can redesign the filesystem specifically for agents, with special files, structures, and commands that it can use for it&#39;s tasks. Today, SMFS is used by hundreds of companies to power their agents.EngineeringMay 28, 2026</li><li>Introducing Dynamic Dreaming: supermemory now connects the dots, for you.Dreaming is magical. TLDR: We&#39;re launching Dynamic Dreaming in supermemory today, which automatically works if you&#39;re using supermemory in any way - API, OpenClaw, Hermes agent, etc.EngineeringMay 25, 2026</li><li>Dear reader, we just made supermemory insanely cheap... the Context CloudWhen I first started building supermemory, I had one goal: To build the best memory system for AI. I would talk to customers, and find out that memory was not the only thing they needed - They were all setting up 7-8 different vendors at the same time.EngineeringMay 18, 2026</li><li>Introducing @supermemory/tools v2.0.0Today we&#39;re releasing v2.0.0. This release unifies the API across all agents sdk integrations from AI SDK to Mastra, makes conversation identity a first-class concept, and ships with memory saving on by default.EngineeringApr 27, 2026</li><li>Solving the Precision-Recall Tradeoff: Search Result AggregationWhen you&#39;re building memory for AI, search is your foundational layer. The way search generally works is straightforward: the user defines a query, and then sets a limit (top-K) on how many search results they want returned. Usually, this is set to 10 or 20.EngineeringApr 5, 2026</li><li>OpenClaw Memory Problems: Why It Forgets and How to Fix It (2026)TLDR: Today, we are releasing a new version of our openclaw plugin - <a href=\"https://github.com/supermemoryai/openclaw-supermemory\" rel=\"nofollow ugc noopener\">https://github.com/supermemoryai/openclaw-supermemory</a>. This post is going to be a bit technical, so bear with me (or bookmark for later!) In this post, I will talk about what we do about OpenClaw memory, and how we fix it.EngineeringFeb 19, 2026</li><li>Stateful Coding Agents with Memory: Build Long-Running Agents (2026)We built a plugin for Claude Code and OpenCode that gives your coding agent persistent memory. It remembers your preferences, learns your codebase, and never loses context mid-conversation. The result is an agent you can run for months without starting over.EngineeringFeb 18, 2026</li><li>Clawd / Molt bot&#39;s memory SUCKS. We gave it supermemory.I&#39;m the founder of supermemory. Clawd/Molt bot is blowing up right now, with many, many use cases. I set it up, too, and have been using it through telegram. TLDR: just go to <a href=\"https://supermemory.ai/docs/integrations/clawdbot\" rel=\"nofollow ugc noopener\">https://supermemory.ai/docs/integrations/clawdbot</a> to set up supermemory for your clawd bot.EngineeringJan 28, 2026</li><li>Catch up with our UNFORGETTABLE Launch WeekOver the last year, one belief has guided almost everything we’ve built at Supermemory AI becomes meaningfully useful only when it remembers. Memory shouldn’t be something developers rebuild from scratch. It shouldn’t be fragile, expensive, or trapped inside a single tool.NewsJan 4, 2026</li><li>Empowering the Next Generation of Founders: Supermemory Startup ProgramIf there’s one thing we’ve learned while building Supermemory, it’s that most startups don’t fail because they didn&#39;t build features; they fail when infrastructure slows them down, or they built too slow.NewsDec 31, 2025</li><li>Building code-chunk: AST Aware Code ChunkingAt Supermemory, we&#39;re building context engineering infrastructure for AI. A huge part of that is dealing with code: ingesting repos, understanding structure, and making it searchable. The problem is that most code chunking solutions are terrible. We built code-chunk to fix this.EngineeringDec 29, 2025</li><li>Supermemory raises $3 million with the best memory engine for LLMsToday, I am excited to announce our first funding round to accelerate our mission of building an interoperable, scalable and reliable memory for LLMs and agents. Memory is one of the hardest challenges in AI right now.NewsOct 6, 2025</li><li>Mem0 vs Supermemory: Why Scira SwitchedScira AI moved its production memory layer from Mem0 to Supermemory. This is what failed, what improved, and how the team evaluated the two systems.Case StudyOct 2, 2025</li><li>Never Record Again: How Montra Uses Supermemory to Rethink Video CreationCampbell Baron, the founder of Montra, has been making videos since he was twelve. By thirteen, he was already doing brand work. Today, he’s betting on a very different future for creators: a world where recording is the exception, and most videos are generated from scratch.Case StudyAug 21, 2025</li><li>Unified Memory That Works Where You Work: Your Second Brain With SupermemoryHi everyone, I’m Dhravya, the founder of Supermemory. I want to start with a little story behind why this product means so much to me. You can also skip straight to what it is and how it works below.EngineeringJul 25, 2025</li><li>Supermemory just got faster on PlanetScaleWhat is Supermemory? Supermemory completes the missing part of the LLM puzzle: memory. Just as memory is crucial for human intelligence, it&#39;s essential for truly intelligent AI systems.EngineeringJul 18, 2025</li><li>Faster, smarter, reliable infinite chat: Supermemory IS context engineering.People are obsessed with prompts and prompt engineering. Sure, what you say is important, but what the model knows when you say it is the difference between a stateless text generator and an intelligent AI system. In short, context is the most crucial component.NewsJul 9, 2025</li><li>We solved AI API interoperabilityOne API to rule them all, One spec to find them, One library to bring them all and in the TypeScript, bind them. When we were building the the Infinite Chat API, initially, we only supported the OpenAI format. This was fine, until a lot of our customers started asking, asking for more.EngineeringJul 7, 2025</li><li>The Wow Factor of Memory - How Flow Used Supermemory To Build Smarter, Stickier ProductsOverview: Flow is a note-taking app built around a bold vision: to create a more personal, context-aware writing experience powered by AI. At the heart of this mission is memory.Case StudyJun 14, 2025</li><li>The UX and technicalities of awesome MCPsLast month, we launched the Supermemory MCP, mostly to test our own infrastructure and get some initial traction. It blew up. To my absolute surprise, the initial launch itself got half a million impressions (!!!). Then, we launched and got #2 on ProductHunt too.EngineeringJun 8, 2025</li><li>Architecting a memory engine inspired by the human brainLanguage is at the heart of intelligence, but what truly powers meaningful interaction is memory — the ability to accumulate, recall, and contextualize information over time. Large Language Models (LLMs) have mastered language, but memory remains their Achilles’ heel.EngineeringJun 5, 2025</li></ul>\n<h2 id=\"start-building-with-supermemory\">Start building with supermemory.</h2>\n<p>Memory and continual learning for any model, any harness. Available through our API, plugins, and MCP.\nBuild with supermemory</p>\n<p>The default engine for memory and continual learning for agents.\nSan Francisco\nProduct</p>\n<ul><li>Product</li><li>Pricing</li><li>Changelog</li><li>Docs</li><li><p>Console</p><p>Company</p></li><li>Blog</li><li>Research</li><li>Careers</li><li><p>Talk to sales</p><p>Connect</p></li><li>X</li><li>GitHub</li><li>LinkedIn</li><li>Reddit</li><li>Discord</li></ul>\n<p>© 2026 supermemory</p>\n<ul><li>Privacy</li><li>Terms</li><li><p>Responsible disclosure</p><p>StatusBack to top↑</p></li></ul>","headings":[{"level":1,"text":"I reverse-engineered Instinct's memory. Here's exactly how it works","id":"i-reverse-engineered-instinct-s-memory-here-s-exactly-how-it-wor"},{"level":2,"text":"Instinct is powered by git-tracked markdown files","id":"instinct-is-powered-by-git-tracked-markdown-files"},{"level":2,"text":"Profile and memory one-pager","id":"profile-and-memory-one-pager"},{"level":2,"text":"How are these profiles formed?","id":"how-are-these-profiles-formed"},{"level":2,"text":"The files and folders","id":"the-files-and-folders"},{"level":2,"text":"File structures","id":"file-structures"},{"level":2,"text":"Creating, updating, organizing info","id":"creating-updating-organizing-info"},{"level":3,"text":"Versioning","id":"versioning"},{"level":3,"text":"Forgetting","id":"forgetting"},{"level":2,"text":"When does ingestion even happen?","id":"when-does-ingestion-even-happen"},{"level":2,"text":"Harness: bringing memory to the agent","id":"harness-bringing-memory-to-the-agent"},{"level":3,"text":"There's no vector indexing, or BM25 search","id":"there-s-no-vector-indexing-or-bm25-search"},{"level":3,"text":"Full structure","id":"full-structure"},{"level":2,"text":"Performance of Instinct's memory","id":"performance-of-instinct-s-memory"},{"level":2,"text":"Implementing it with supermemory","id":"implementing-it-with-supermemory"},{"level":2,"text":"Other posts.","id":"other-posts"},{"level":2,"text":"Start building with supermemory.","id":"start-building-with-supermemory"}]}}