The 12-word answer: why we split our agent's brain in two

Search for a command to run...

SuperSearch, our research agent, works in two halves. One half investigates — calling tools, reading studies, building up an understanding of the question. The other half writes the answer. They are separate model calls, with separate instructions, and they do not know they are two halves of one thing.
That separation was not an architectural preference. It was the fix to a bug where the agent kept producing answers that were obviously, embarrassingly short.
The agent's job is to take a question — "does berberine reduce blood glucose," "what increases focus" — and answer it from the research. It has a set of tools to search our claims database: find supplements, look up consensus, pull dosage, check safety. To use those tools well, the agent needs to think between calls. Plan, reflect, decide what to look at next.
So we gave it a structured scratchpad. Before each tool call it writes out a question, the entities it is looking for, a plan. After each tool call it writes what it learned, what gaps remain, and what it will do next. This reflection is what makes the investigation good. The agent that reflects between steps finds more, searches smarter, and recovers from dead ends.
The original design had one model do everything. Investigate, reflect, and — at the end — write the user-facing answer, right there in the same response stream, after the final reflection.
It wrote one sentence. Maybe twelve words. Every time.
This is the interesting part, because the fix is not obvious until you see the cause.
The model had spent the entire run inside a structured scratchpad. Question, plan, learned, gaps, next. Question, plan, learned, gaps, next. Every block short, telegraphic, written as notes to itself. By the time it reached the moment to write the actual answer, the next token it produced was, probabilistically, a continuation of that scratchpad. The context had trained it into a register: terse, abbreviated, this-is-just-my-thinking voice. So when we asked it to now write a real answer, it did — in the voice and length of a scratchpad note.
It was not refusing to answer. It was not broken. It was being consistent with the conversation it was in. We had built a context that rewarded brevity for twenty turns and then asked for an essay on turn twenty-one. The model did the reasonable thing and stayed brief.
Tweaking the prompt did not help. Asking harder for a complete answer did not help. The structure of the context was the problem, and no amount of instruction can fully override the gravity of twenty turns of telegraphic precedent.
The solution was to stop asking the same model to do both jobs.
Now, when the investigation is done, we do not let that model write the answer at all. We hand everything it found off to a second model call — a synthesis call — with a clean system prompt and no scratchpad voice to inherit. That second model has one job: write the response the user will read. Its instructions forbid the internal markers entirely. There is no LEARNED, no GAPS, no NEXT. The first token it produces is the first word of a real answer.
The investigation hands off through its message history, so all the lean tool results — the studies found, the consensus directions, the dosage ranges — carry forward as context. Nothing is lost. The synthesis model just starts fresh, in a register where the only thing to write is the answer itself.
The answers got long. They got structured. They started actually summarizing the evidence instead of gesturing at it. Same model, same data, same tools. The only thing that changed was which context the answer was born into.
This is the part I want to remember for the next agent I build.
A model's behavior on any given turn is downstream of the entire conversation that preceded it. If you have spent a run building up a strong, narrow voice — terse notes, structured fields, internal shorthand — that voice does not turn off when you want it to. It bleeds into whatever you ask for next. You cannot hold a model in one register for investigation and then expect a clean pivot to exposition in the same breath.
When the jobs are different, separate them. Give each its own context, its own instructions, its own first token. The cost is a second model call. The benefit is that each half gets to be good at its actual job instead of compromised by the other.
Our agent investigates like an investigator and writes like a writer now. It just needed to not be the same mind at the same moment.