Why AI stories forget
A language model has no memory of its own. Every reply is written from scratch, from whatever text the app sends along with your newest turn, and that text has a hard limit called the context window. Once a story is longer than the window, its earliest parts simply aren’t there when the next reply is written.
The symptoms are familiar to anyone who has played long stories: a character renamed halfway through, a wound that heals without explanation, a villain who greets you like a stranger, a promise that evaporates.
Bigger windows help, but they don’t solve it. A long campaign outgrows any window eventually, every extra token makes a reply slower and costlier, and research has found that models use information at the start and end of a long prompt more reliably than material buried in the middle (Lost in the Middle). The real fix is selection: a memory system that saves what happened and brings back the right part at the right time.
The layers of story memory
LoreWeaver keeps a story in layers, each with its own job:
| Layer | What it holds | When the storyteller sees it |
|---|---|---|
| Recent turns | The latest messages, word for word | Every reply, as many as fit |
| Memories | Self-contained notes on who did what, when, and where, written as you play | Pinned ones always; the rest when the conversation no longer shows them and they fit the moment |
| Recap | The story so far, and where things stand now | Every reply |
| Lore cards | People, places, factions, items, and events you wrote ahead | When pinned, or when their title or a tag comes up |
| Loom state | Flags, counters, quests, and inventory in worlds that use the Loom | When a thread reads or shows them |
The first layer is precise but short-lived. The others trade detail for reach, and together they let a reply in month three know what happened in week one. How LoreWeaver works shows the same layers from the player’s side of the screen.
How memories are written
Every few replies, LoreWeaver reads the newest stretch of the story and writes down what must be remembered, as a handful of separate memories rather than one blurry summary. Each one stands on its own: it names everyone involved, says who did or said what to whom, and records when it happened in the story (dates, day counters, and times exactly as the story states them, with “tomorrow” turned into the day it means) and where. Facts about people, such as a fear, a family secret, or who knows it; plans and promises with their times; relationship changes; injuries and possessions are all kept. A story a character tells is recorded as their account, never as something that happened. The memory writer is given the names already established in the story, so “Marcus” doesn’t quietly become “Mark”, and it ignores genuine out-of-character instructions.
Memories are tied to the turns they came from. A memory is saved only while its source turns still exist, and if you rewind, undo, or clear part of the story, the memories from those turns go with it.
You can shape the bank yourself, too. Any memory can be corrected, and the corrected text is what recall searches. Pin a memory to have it in every reply, write your own with an optional story time, or press Remember now to capture the latest replies without waiting.
Each session has its own memory bank, and each plan sets how many story memories a story keeps: Free, Plus, and Pro hold progressively more, and Ultra and Legendary have no limit. Once a story reaches its plan’s limit it stops adding memories, and its recap, lore cards, and recent turns keep carrying the story. Memories you write yourself don’t count toward the limit.
How the right memory is found
Saving memories is the easy half. The hard half is choosing which to show the storyteller for this exact reply. LoreWeaver fills the memory space your plan allows in three steps:
- Pinned memories first. What you pinned reaches every reply.
- What just scrolled out of view. The memories from just before the turns the storyteller can still read come next, so the story never loses the thread between the conversation and the past. Turns still visible in the conversation are never repeated as memories, which leaves room for older ones.
- The most relevant of everything older, scored several ways at once, below.
The relevance score has four parts:
- By meaning. Each memory is stored with an embedding, a numeric fingerprint of what it’s about, so a turn about “the stranger at the gate” can find a memory about the night someone dragged you out from under that gate, even in different words. Meaning carries about half the weight.
- By wording. A full-text match rewards memories that share the turn’s specific terms.
- By who is in the scene. Memories about the people named in the moment score higher, so “Aldric” finds memories about Aldric.
- By importance. Pivotal memories get a small lift.
The search starts from your new turn, enriched with the names active in the recent conversation; when you press Continue, it starts from the recent story instead. The chosen memories reach the storyteller in story order, with their story time and place, and with the instruction that they already happened: nobody reveals or asks about them again as if they were new. If the meaning search is ever unavailable, recall falls back to words and names rather than failing.
The recap: the whole arc in brief
Recall picks the memories that match the moment, which means an important event can sit out a scene where it isn’t relevant. The recap covers that gap. It has two parts: the story so far, in order, with recent events in more detail, and where things stand: the current time and place, who matters and where they stand with you, every open plan, promise, and deadline with its story time, and the facts that must never be contradicted. Every few replies it reads the new turns themselves, not just notes about them, and folds them in, so nothing earlier drops out and your wording survives.
The storyteller reads the recap on every reply. You can read it too, in the story sidebar’s Memory panel, and edit it whenever you like: later updates build on your edit instead of replacing it. Lock it to keep it exactly as you wrote it, or rewrite it from the story’s memories at any time.
One memory, from scene to recall
Here is the whole cycle, followed through a single promise:
- The scene. At a river crossing, you write: “I take Anya’s hand. ‘I’ll find Tomas before the first snow. I swear it.’” The storyteller answers, and the story moves on.
- The memory. A few replies later, the memory writer records it: “Wren swore to Anya at the river crossing that she would find Anya’s brother Tomas before the first snow. Anya trusted Wren for the first time.” The memory carries the story time (Day 6, dusk), the place, the names Wren, Anya, and Tomas, and a high importance score.
- The recap. The promise joins the recap’s open threads, with its deadline, and stays there until it is kept or broken.
- The recall. Weeks later you write: “I ask Anya whether any word has come from the north.” The search finds the promise by meaning (a missing brother, a wait, the north) and by name (Anya), and the storyteller’s reply carries the weight of the vow without you repeating it.
- The correction. Had the memory called Tomas her cousin, you’d fix it in the Memory panel, and every later recall would use the corrected version. Pin it, and it reaches every reply until the snow falls.
None of this needs your attention while you play. It’s worth knowing anyway, because it explains the habits at the end of this guide: names, moments that happen in the scene, and a glance at the recap now and then.
How well it remembers
We tested LoreWeaver’s memory on LoCoMo, a public benchmark of ten long conversations with 1,540 questions about what was said in them. We used the exact setup Mem0 publishes for its own score, down to the prompts and the model that grades the answers, and LoreWeaver answered 90.1% correctly. Mem0 reports 91.6% under that setup, a gap within the margin of error, and the two are level with what appears to be Mem0’s first pass, before it re-ran the questions it missed.
With its everyday settings, 40 memories plus the recap, LoreWeaver scored as well as it did with 200 memories on the questions we ran both ways. Most of what it missed were small remarks made in passing, and dates said as “last Sunday” that a memory kept as said. The full report covers the method and every result.
Lore cards: memory you write ahead
Memories record what happened. Lore cards record what is true: who a character is, what a city looks like, what a faction wants. You write them ahead of time, or accept them from the story, and they join a reply when they’re pinned or when their title or a tag appears in the recent conversation.
The two work together. A memory says “Anya promised to help you find her brother before the snows”; Anya’s lore card says who she is, how she talks, and what she fears. On Plus and up, Emergent Lore Detection reads the story and suggests cards for the characters and places the storyteller invents, which you keep or dismiss. Lorebooks explained covers how cards are triggered and budgeted.
When you rewind, undo, or branch
Memory has to follow your edits, or a story fills up with ghosts of scenes that no longer happened. LoreWeaver treats every change to the story as a change to everything built from it:
- Rewind, undo, or clear, and the memories, the recap, pending lore suggestions, and Loom changes from the removed turns are rolled back with them. Memories you wrote, and a recap you locked, stay.
- Branch, and the new session starts with exactly what was true at the fork: memories, recap, and Loom state from after that point are left out.
- Regenerate, and the version you keep becomes the story, while the others stay available to browse without becoming canon.
How to help a story remember
- Name people and places. Names are what keywords, lore cards, and memories hang on.
- Let important moments happen in the story. Memories are written from story text, so a vow spoken aloud is remembered better than one you only intended.
- Read the recap after turning points, and edit anything it missed.
- Fix wrong memories in the story sidebar’s Memory panel, where each one can be edited, pinned, or deleted.
- Pin or write what must never slip: a vow, a fear, a date.
- Keep one story in one session, since memories don’t cross sessions, and branch for alternatives.
- Use the context inspector to see which memories and cards a reply used.
- Give big stories room. More context keeps more of the story word for word, from 6,400 tokens on the free plan up to 100,000 on Legendary, and paid plans keep more memories per story. See context windows explained and the plans.



