Here's a familiar pattern. You have a long, genuinely good conversation with an AI companion. You mention your sister's wedding, or that you bombed an interview, or that you hate being told to "just relax." The app responds well. It feels like it gets it.
Then you come back two days later, and it asks how your week's been like it's never met you.
That's not a bug in any one app. It's what happens by default when you build a chat product on top of a large language model, and it's worth understanding why, because it tells you exactly what question to ask before you trust an app with your actual life.
The default: no memory at all
A large language model doesn't remember you between conversations. It has no database of "things about this user" that it reaches into. What it has is a context window: the block of text (your messages, its replies, maybe a character description) that gets fed in fresh every single time it generates a response. Close the window, lose the session, or just chat long enough to fall out of that window, and those earlier messages are gone. Not archived, not "still in there somewhere," gone from the model's perspective. It's not being coy. It genuinely has nothing.
Most AI chat products are, underneath the character art and the chat bubbles, exactly this. Which is fine for a lot of use cases. It's a problem the moment the product's entire pitch is companionship, because companionship without continuity isn't companionship. It's a very charming stranger you meet for the first time, repeatedly.
The cheap fix, and why it breaks
The obvious patch is to just paste more of the raw chat history back into the prompt each time. This works for a while, and it's why a lot of companion apps feel fine for the first few days. But raw transcripts are expensive to process and they don't compress: a three-month relationship's worth of messages is a lot more text than any context window can hold, so something has to get dropped. Usually it's whatever's oldest, which means the specific, personal stuff you said back on day one, the stuff that actually made it feel like it knew you, is exactly what gets pushed out first.
Worth knowing
What actually has to happen instead
The alternative is to stop treating "memory" as a transcript problem and start treating it as an extraction problem. Instead of replaying everything you've ever said, a separate process periodically reads back over the conversation and pulls out the durable stuff (the facts, preferences, and moments worth keeping) and stores those as compact, structured memories, independent of the original messages.
That's the architecture BunnyHop actually runs: conversations are stored, and on a periodic basis a language model pass (Together AI's Llama models, specifically) reads back over them and extracts structured memories, the kind of thing a person would actually remember about you, not a compressed transcript. Those live in what we call the Memory Panel, and they're what gets pulled into future conversations, not the raw log.
It's a meaningfully different bet. Instead of "remember everything and hope it fits," it's "figure out what's actually worth remembering, and keep that indefinitely." It's also why it can hold up over months in a way that stuffing a growing transcript into a fixed-size window structurally cannot.
Try it: drag the timeline
What a persistent-memory AI companion actually accumulates over time.
Day 1
- Doesn't know your name is spelled with a silent 'h' yet.
Where this still isn't magic
Being straight about the limits matters more here than almost anywhere else, so: extraction happens periodically, not instantly, so something you said a few minutes ago may not have been distilled into a durable memory yet. That's a real, honest lag, not a broken feature. And extraction is itself a language model doing its best judgment about what's worth keeping, which means it can occasionally miss something that mattered to you, or hang onto something that didn't. It's a genuinely better architecture than a raw transcript running out of room, not a perfect one.
Tell any AI companion app one specific, slightly odd detail, not "I like coffee," but something specific enough that a good guess couldn't fake it. Close the app. Come back in a week and bring it up sideways, without repeating it outright. If it's still there, that's real persistence. If you get a warm, generic, "that sounds lovely!" you've found the edge of the transcript.
A reasonable way to actually check
Why this is worth caring about at all
Because the entire value proposition of an AI companion, as opposed to an AI search engine or an AI assistant, is continuity. A companion that forgets is just a chatbot with a face. The technical difference between "stores a growing transcript" and "extracts durable structured memory" isn't an engineering footnote. It's the difference between an app that can plausibly be a small, steady presence in someone's life for months, and one that resets every few days and hopes you don't notice.