KDCube
← Engineering
KDCube Engineering · Deep Dive

The live view — the agent’s attention zone, and what’s in it

The tail of the model input is a pair: the sources pool — the evidence gathered this turn — and the live view, the runtime’s voice. Always last, never cached, rebuilt every round.

22 June 2026Engineering7 minExperienceWorkshop Manual
live viewattention zonesources poolmodel inputannouncetail pairnever cached

The agent receives one long input every round. Where does it know to look first for what’s true right now?

In #1 we mapped the shape of the model input: a stable per-agent front, a timeline that grows oldest → newest, and a volatile tail at the very end. In #2 we saw how almost all of that is cached and reused across calls — and why the tail, alone, is never cached. This is #3, the last of three: the tail itself, and especially its last block — the live view (we call it the announce).

01The agent needs one place it knows to look first

The timeline is history — a long, append-only record, perfect for “what happened,” wrong for “what’s true this instant.” If a fact must always be found in the same place, the agent shouldn’t have to scroll a growing transcript to find it. So the runtime keeps a fixed attention zone at the very tail: always last, always on top of the agent’s view, never cached.

The attention zone is a tail pair — two adjacent blocks with two different jobs: the sources pool, the citable evidence gathered this turn; and the live view, the volatile, immediate signals the agent must see now. They sit side by side at the bottom because both are things the agent reaches for constantly. But they are not the same thing.

ONE MODEL INPUT — THE ATTENTION ZONE IS ALWAYS LASTInstruction envelope · tool catalog · skill catalogthe stable per-agent prefixcachedTimeline — history → this turn → progress so farthe record of what happened — long, append-only, perfect for “what happened”cachedATTENTION ZONE — the tail pairalways last · never cached · rebuilt every roundSources poolthe citable evidence gathered this turn:web results and workspace artifacts (conv:fi:)each addressable by SID · loaded with react.read“what can I cite?”Live view (the announce)the volatile, immediate signals the agentmust see now — the runtime’s voicerecomputed every round, wrong if stale“what’s true right now?”one is evidencethe other is statesame neighborhood at the bottom of the input · two different jobs — the agent learns which to reach for
The tail pair: one is evidence, the other is state — the agent learns which to reach for.

02What lives in the live view

The live view is the runtime’s voice — the one place it tells the agent the current operating conditions, refreshed before every decision. It holds the fast-moving things, and only those.

THE LIVE VIEW — REBUILT EVERY ROUND, BEFORE EVERY DECISIONLIVE VIEWcompact by designbudgetrounds and time remaining in the turnauthoritative timereal current date and timezone — overrides what the model assumesopen plansa compact summary of plans still in flight — not the full historyworkspace mapa fresh projection of what’s on disk this turn and what belongs whereruntime limitscurrent output caps and remaining workspace capacitylive turn eventsuser follow-ups and steers that landed mid-turnfresh feedbacka reaction that stays visible until acted onsystem noticesa one-time heads-up — e.g. old context was pruned, and how to read it backdeliberately NOT here×  raw payloads×  full tool results×  whole plan artifacts×  large source bodiesglance first — the record lives elsewherethe shared propertyevery item would be wrongif it were stale — so all of it isrecomputed each round, in theuncached tailTHE RUNTIME’S VOICE · ONE PLACE, ALWAYS LAST, ALWAYS FRESH
Eight kinds of signal, one shared property: each would be wrong if it were stale.

What it deliberately does not hold: raw payloads, full tool results, whole plan artifacts, large source bodies. The live view is what the agent glances at first, not where the full record lives. Compact by design — and recomputed every round, which is exactly why it sits in the uncached tail.

03The sources pool is adjacent, not identical

People tend to lump the two tail blocks together because they’re neighbors. But they answer different questions.

THE SOURCES POOL — RENDERED, COLUMN BY COLUMNSIDTITLEMIMEPROVENANCETOKENSPREVIEWSID:01Longer-lived butterflies — sciencedaily.comtext/htmlweb result~2.1ksnippet…SID:02population-chart.pngimage/pngproduced · conv:fi:…/chart.png~1.4kbase64…SID:03migration-diagram.svgimage/svg+xmlproduced · conv:fi:…/diagram.svg~0.6ksnippet…footer: full text on demand · big sources hidden to protect the budget▸ SID — the stable id the agent cites by, stable across rounds▸ provenance — the key column: a web result, or a pulled/produced workspace artifact (conv:fi:)▸ tokens — the cost to load in full · the preview line is a snippet or base64 stub only▸ react.read loads a source in full · react.hide hides a big one — the SID stays citableBOTH WEB EVIDENCE AND WORKSPACE ARTIFACTS · ONE REGISTRY, ONE ADDRESSING SCHEME
Web evidence and workspace artifacts share one registry and one addressing scheme.

The sources pool holds both web evidence and pulled or produced workspace artifacts (conv:fi: refs) — each addressable by SID, loaded with react.read, and hidable with react.hide when large.

Tail blockIts jobQuestion it answers
sources poolrolling registry of retrieved, citable sources“what evidence can I cite?”
live viewlive state and immediate runtime signals“what’s true and current right now?”

Same neighborhood at the bottom of the input, different jobs. One is evidence; the other is state. Keeping them as two blocks rather than one blob is the point — the agent learns which to reach for.

04Why being non-cached is the whole point

In #2 the rule was blunt: the tail is never cached. Here’s why that’s a feature, not a cost. Caching only reuses a prefix that’s byte-for-byte identical to last time. The live view changes on every round — a new round counter, a fresh steer, an updated workspace projection. If it lived inside the cached prefix, every tiny update would either churn that expensive prefix or force the agent to read stale state.

THE RULE

By keeping live state in an uncached tail, both problems disappear. The prefix stays calm and reusable; the live view stays current for free. Freshness beats reuse — here and only here.

05Lifecycle: refresh now → persist once → clear

A signal in the live view has a short, deliberate life. Each round, the runtime rebuilds the live view fresh and appends it at the tail — the agent sees the current budget, the current workspace, the live events as of this round. When a signal has been consumed or acted on, it’s written into the timeline once as durable history. Having persisted, it drops out of the live view so it isn’t shown again next round.

LIFECYCLE — REFRESH NOW → PERSIST ONCE → CLEARROUND NLIVE VIEW·  budget·  workspace·  feedback ✦ROUND N+1LIVE VIEW·  budget·  workspace   (gone)ROUND N+2LIVE VIEW·  budget·  workspace   (gone)Timeline — the durable recordthe consumed signal is persisted once as history — then cleared from the tail, not repeatedpersisted onceHOT AND TRANSIENT WHILE THE TURN RUNS · RECORDED ONCE · NEVER SHOWN TWICE
Hot and transient while the turn runs; recorded once; never shown twice.

This is the same balance the announce strikes at end of turn: it’s hot and transient while the turn runs, and its final state is recorded once when the turn closes. The design isn’t “hide things from history.” It’s: give live state the right surface, then record the outcome once, so the same thing is never shown twice.

06Why this matters beyond ReAct

The live view is a ReAct mechanism, but the idea isn’t ReAct-specific. Once an agent is part of a real, distributed system, the runtime needs a voice of its own — and the agent needs a fixed place to hear it. Not everything important is a tool call; not everything current belongs in the cached transcript; not everything urgent can wait for the next cleanly-recorded turn.

Any agent benefits from a designated, always-on-top attention zone: one place, always last, always fresh, where the runtime says what’s true now. Collapse that job into the history and you get either a noisy prompt or a blind agent. The live view exists to avoid both.

That closes the arc. The input has a shape (#1), most of it is cached and kept fresh (#2), and its very last block — the live view — is the agent’s always-current attention zone (#3).

Read more

KDCube Engineering
22.06.2026 · updated 23.07.2026