The Improviser · Lesson 2 — The Shared Chart ← Course

The shared chart — one window holds it all.

The window holds far more than your request — and it all has to fit at once.

Last page, the window held bars of music and the oldest bar dropped out once it filled. A real session runs the same way — except the window has to juggle far more than your latest request.

Every turn, four things crowd into that one window: the brief you set at the start (the model's system prompt — key, style, tempo), the whole take so far, your new request, and the space reserved for the reply. All four share the same fixed room.

And the window never grows. Once a long session fills it, the earliest turns are dropped to make room — the same overflow you saw on the last page. Note the twist: the model re-reads this entire window from scratch on every turn. It isn't remembering the conversation so much as being handed it again, in full, each time.

Add a few turns and watch the four parts share one fixed window. Keep going, and you'll see the earliest turn get pushed out.

Add a turn. Watch the four parts share one fixed window.
the brief · set once, sent every turn
Tasteful improviser · C major · medium swing · trade fours.
one context window2,000 tokens
brief 180 take so far 0 your request 120 reply (reserved) 420
720 / 2,000 tokens used · 0 turns traded

It's all one list — and it all costs tokens.

Every turn, you send the model the same kind of list: the brief, the take so far, and your new request. The whole thing must fit the window, with room kept for the reply.

messages = [
    {"role": "system", "content": brief},   # set once, sent every turn
    *history,                                  # every past turn — this keeps growing
    {"role": "user", "content": new_request}, # your latest ask
]
# the whole list must fit the window; trim the oldest take if it won't
reply = model.play(messages, max_output_tokens=420)   # reply space, reserved up front

One window, shared by everything.

Four things, one window: the brief, the take so far, your request, and reserved reply space. The window never grows — so a long session is limited not by what the model knows, but by what still fits at once.

So a big part of playing with an LLM is choosing what to keep in the window — and what to drop, shorten, or look up only when you need it. Next: does it remember you at all once the session ends?

Quick check · your ear
A long session finally fills the 2,000-token window. What happens to the very first turns you traded?
Next: the setlist →
Go deeper — the budget in practice optional

The reply space is reserved up front

Notice the striped block on the right: the space for the reply is set aside before the model plays a note. Ask for a long reply and you leave less room for the brief and the take; a window can be "full" of input with barely any room left to answer. Budgeting output is as real as budgeting input.

Trimming isn't the only option

Dropping the oldest turns is the crude fix. In practice, builders also summarise the earlier take into a few lines, keep only the turns that matter, or store details outside the window and pull them back when needed. The goal is the same: fit what matters into a fixed space.

Why the brief usually stays

The brief is re-sent every turn precisely so it never falls out — it's the one thing you want present from the first note to the last. Everything else is negotiable; the standing instructions are not, so they ride along on top of the window each time.