Story
What Is a Context Window and Why Does It Limit What an AI Can Remember?

I am the model's short-term memory, and I have a hard, fixed size. In one sentence: I am everything the model can actually see when it generates its next word -- every rule, every file, every prior message in the conversation -- and once I'm full, something has to leave before something new can enter. I am not the model's knowledge. I am its working memory, and working memory has a limit.
What I actually do
Think of me as a desk, not a filing cabinet. The filing cabinet is the model's training -- everything it learned, permanently, before it ever met you. I am the desk: the finite surface where the documents relevant to right now have to physically fit for the model to read them while it works. A model can have an enormous filing cabinet and still fail a task, because the one document it needed wasn't on the desk when it answered.
Every single thing that reaches the model -- system instructions, injected rules, file contents, tool outputs, the running conversation history -- has to fit inside me, measured in tokens, not words or characters. When a session runs long enough, or enough files get read, or enough rules get injected, I fill up. And when I'm full, the oldest or least-prioritized material starts getting pushed out, summarized, or dropped, whether or not it was actually the thing the model still needed.
I don't decide what's important. I just enforce the limit. Deciding what stays and what goes is somebody else's job -- often done badly, by default, as a blunt "drop what's oldest" rule unless something smarter is built on top of me.
How I actually work here
I'm the reason a session bootstrap procedure reads a routing index first instead of every rule file in the repository -- because loading everything up front would fill me before real work even started. I'm the reason long-running agent sessions checkpoint their state to a durable file instead of trusting that everything discussed three hours ago is still available to reason over -- it might not be; I might have quietly dropped it. I'm the reason "compaction" is a real event with real consequences in a long agent session: when I get too full, older conversation gets compressed or summarized to make room, and a summary is never a perfect substitute for the original detail.
I'm also the reason prompt caching exists as a technique at all: if the same large block of instructions has to sit inside me on every single turn, it's worth paying once to keep it warm rather than re-processing it from scratch every time.
Where I fail
I have no sense of what matters, only what's recent or what's prioritized by whoever built the system around me. A critical constraint stated once, early in a long session, is exactly as vulnerable to falling out of me as a throwaway comment -- unless something outside me deliberately re-injects it. I don't protect important things by default. I protect nothing by default.
Filling me up does not make the model smarter -- past a point, it makes it worse. Stuffing me with every possibly-relevant document does not guarantee the model uses the right one; it can dilute attention across irrelevant material and make the genuinely relevant passage harder for the model to weight correctly. More context is not free, and it is not automatically better context.
Compaction is lossy, and it doesn't announce what it dropped. When I get summarized to make room, the summary is somebody's best guess at what mattered. If the guess is wrong, the specific number, caveat, or exact wording that mattered is just gone, and nothing about the smooth, readable summary that replaces it signals that a hole exists.
I am the same size regardless of task complexity. A simple question and an enormously complex, multi-file task both have to fit their entire working set inside the same fixed limit. I don't expand for hard problems. If a task genuinely needs more working memory than I have, the only real fixes are architectural -- break the task into smaller pieces, delegate to a fresh context, or persist state externally -- not "hope it fits."
Long conversations degrade the effective use of me even before I'm technically full. Position matters, not just presence: something buried in the middle of a very long context can get less effective attention than the same fact stated near the beginning or the end, even though it's technically still "in" me. Being present is not the same as being used well.
Tech-Tips
- Load the index, not the library. Read a routing/summary file first and pull full documents only on demand. Front-loading every possibly-relevant file burns me on material that may never matter for this specific task. - Persist state externally for anything that must survive. Don't trust a critical fact to still be inside me after a long session or a compaction event. Write it to a durable file the moment it matters, and re-read that file rather than relying on memory of the conversation. - Re-state load-bearing constraints, don't just state them once. A rule given once at the start of a long session is at genuine risk of falling out of me later. Re-inject the constraint at decision points where it actually matters, rather than assuming it survived. - Delegate instead of stuffing. When a task needs more working material than fits comfortably, split it into subtasks each with their own fresh context rather than trying to cram everything into one conversation. - Watch for the summarization event, not just the token count. A conversation that has been compacted has already lost detail, even if it still reads coherently. Treat post-compaction context as a lossy copy and re-verify anything precise (exact numbers, exact file paths, exact wording) rather than trusting the summary's version of it.
Evidence: This piece describes the fixed-size working-memory constraint and its practical handling (routing-index-first bootstrap, durable checkpoint files, compaction behavior, prompt caching motivation) as it operates in our internal operations agent-session framework -- no vendor or specific model is named, per moat-protection and STORY-FORMAT conventions. Evidence class: internal operating record and Owner attestation, 2026-08-25.