Context Is Not Chat History

· 5 min read

I keep seeing context treated like everything the agent has ever been told.

The full chat. A giant system prompt. Half the repository. Notes from three meetings. Maybe a Slack thread pasted in at the end just in case.

I get why. More context feels safer. If the agent has everything, it should have what it needs.

But I am not sure that is what actually happens.

The agent gets the important decision. It also gets the idea we abandoned 20 messages ago. It gets the current requirement beside an older version of the same requirement. Then we ask it to figure out which parts matter.

Sometimes it does.

Sometimes it gets weird.

What I think we need is a more specific definition of context. Context is the information required to do this piece of work correctly. It has a job. It should probably have boundaries too.

For one feature, that might mean:

  1. The product vision so the work points in the right direction.
  2. The constraints that cannot be ignored.
  3. The current spec and acceptance criteria.
  4. The decisions already made.
  5. The small part of the codebase the feature actually touches.

That is very different from giving an agent the full history of how we got there.

The history is still useful. It helps us explore, argue, change our minds, and find the actual problem. I use conversation for that all the time. The mistake is leaving the result trapped in the conversation.

Once we make a decision, it should move somewhere durable. Once the spec changes, the current spec should say so. Once we learn that a technical approach will not work, the constraint should be written where the next agent can find it.

Otherwise every new session starts with archaeology.

There is a cost problem here too. Sending more context means paying to process more context. If three files answer the question, passing 300 files is not thorough. It is just expensive. The same goes for replaying a long chat when a short decision log would do.

I do not know exactly where the right limit is for every task. It will move as models improve and context windows get larger. But a larger window does not make messy information less messy.

The test I keep coming back to is pretty simple:

Could a new agent open the project, read the named context files, and understand what it is supposed to do without me retelling the story?

If the answer is no, the context probably still lives in my head or in a chat window.

That is fragile.

Conversation helps us figure things out. A context framework makes sure we do not have to figure out the same things again.

← All Thinking