A thing that changed how I use coding agents: the model never actually sees your conversation.

by

The API underneath is stateless. Every single turn, the tool you're using compiles a fresh document and sends the whole thing: its own system prompt, every tool definition, your project rules, an edited version of the session history, and your newest message at the very bottom. The chat window you scroll is a rendering for your benefit. The model reads the compiled document, top to bottom, every time it answers.

"Edited" is the important word. As sessions grow, old tool results get cleared and replaced with placeholders. When the context fills up, the whole history gets replaced by a summary of itself, and what survives that summary is a judgment call. Meanwhile your client keeps the full, unmodified history. So the transcript you see and the context the model reads are two different documents, and they drift further apart the longer you work.

Once you know this, a few habits follow. When the agent acts like it never saw something you said, check whether that sentence survived into the current context before blaming the model; often it got summarized away. Put anything load-bearing in a rules file, because rules files get re-sent near the top of every compile, while a chat message is one compaction away from becoming a clause in a summary. And after a compaction, re-state the constraints that matter in one line. It feels redundant. It works.

The uncomfortable part: the model can't audit its own briefing. It has no original to compare against. The only one holding the unabridged session is you.

3 views

Add a comment

Replies

Be the first to comment