Harness, Part 2: The Message History
The one-shot call becomes a conversation - the history is just an array that rides along on every request.
What this is about
Part 1 ended with a proof: your agent forgets everything, instantly. The model has no memory - the impression of a conversation is created entirely by the harness, by re-sending everything so far on every call. That is stage 2 of the staged model, and it is soberingly simple: the message history is a list of messages. An array. Nothing more.
That simplicity has a price, and in this part you will see it for the first time: because the whole history rides along on every turn, a conversation costs more with every turn. Turn ten pays for turns one through nine all over again. Remember this feeling - in Part 8 we build the tool against it. "Context-frugal" is not a feature you buy at the end; it is an attitude, and it starts here.
At the end of this part, this works: a real conversation in the terminal in which your agent remembers the beginning.
How the build works
Like in Part 1: copy the prompt, hand it to your coding agent, answer its questions - nothing technical. The build prompt first reads your harness-doku.html and checks the state from Part 1.
This section belongs to the Member tier. You get access to full code, deeper explanations, and rabbit-hole material.
See tiers →It works when
Your agent passes the test it failed in Part 1: "What was my first question?" - and the answer is right. You now know why: not because the model remembers, but because your harness sends the whole conversation along on every turn. What the conversation still lacks is a character - Part 3: The System Prompt.