The working memory — the context window.
An LLM can only fit so much on screen at once — and the rest falls away.
The video assistant referee reviews a contested goal frame by frame, but the screen upstairs only holds so many frames at a time. Feed in one more and the earliest one scrolls off the top — gone, as if it had never been shown.
An LLM works the same way. The amount it can “keep on screen” while it answers is its context window, and it's measured in tokens — the little chunks of text from the last lesson. Everything inside the window the model can use; anything pushed past the edge is simply gone.
How big is the screen? It depends on the model — anywhere from a few thousand tokens (a handful of pages) to over a million (a small library). But however large, it is a fixed ceiling: there is always a last frame that fits, and a first one that falls off.
Add footage and watch the window fill, then overflow — then ask the VAR to decide, and see what it can still remember.
A fixed window. Oldest falls out.
Every frame is added to memory. When the window is full, the oldest frame falls out to make room — the VAR reasons only over what's left.
WINDOW = 5 # the context window — fixed size memory = [] def remember(frame): memory.append(frame) if len(memory) > WINDOW: memory.pop(0) # oldest frame falls out of context def decide(): # the VAR can only reason over what's still in memory return "GOAL" if "onside" in memory else "NO GOAL"
Inside the window, or gone.
You fed in more frames than the window could hold. Each new frame pushed the oldest one out. When the onside check dropped off, the VAR couldn't recall it — and called it wrong from what was left.
Every LLM works inside a fixed context window. Tokens inside it can be reasoned over; tokens pushed past the edge are gone. That's why long chats forget the start, and why what you keep in the window decides the answer.