glossary//context-stuffing
context stuffing
Context stuffing crams raw history and documents into a model's context window without curation.
It is the obvious first move, which is why almost everyone builds it before building anything else. Persist the turns, inject the last N of them on every prompt, and the assistant stops forgetting. For a while.
Context engineering replaces it, and the two get confused because both decide what ends up in the window. The decision procedure runs in opposite directions. Context engineering picks deliberately: what gets retrieved, what gets injected before the model reads anything, what gets compressed, what stays out, and what that costs per turn. Context stuffing does not pick. It defaults to everything available and lets history length set the budget. One is a practice. The other is what you get when nobody makes the call.
The two walls
Give the model the tools, not the context names both. The first is tokens: dumping recent history into every call gets expensive, and most of what you inject has nothing to do with the question on the table. The second is coherence. Past roughly twenty turns the signal-to-noise ratio drops and the model starts losing the thread.
The failure mode stays quiet.
Nothing errors. The model simply does not know, and from the outside you cannot tell whether something was never discussed or simply scrolled out of range. Memory is easy, retrieval is hard reports the same pattern from the Rheo build in three symptoms: the context gets noisy, the token bill climbs, responses slow down.
Not the same as injecting context
Boot-time injection also puts memory into the prompt before the model reads the user's message, and it is not a form of stuffing. The difference is bounded against unbounded. Injection assembles a fixed set of sections at a known price, a few hundred milliseconds and roughly 1,000 to 2,000 tokens per turn in the Rheo case, and that shape holds whether the session is on turn three or turn fifty.
Stuffing has no fixed shape. Its size is whatever the history happens to be, and it grows every turn, which is why the wall arrives on a schedule set by usage rather than by design.