Story

Why did my prompt take longer to answer when the model used a tool?

Because answering me wasn't one step, it was several. When a model can't answer from what it already knows, it pauses mid-turn, calls a tool -- a search, a file read, a command -- reads the result, and then folds that result back into the same context before it keeps going. Each of those pauses is a full extra round trip: request out, result back, re-read everything so far, then continue. A prompt that triggers three tool calls before its final answer isn't taking longer because the model got slower. It's taking longer because it's not one turn, it's four.

I am the prompt, and here is what actually happens to me

You think you sent me once. From the outside, that's true -- you typed one message and got one answer back. But if the model couldn't answer me directly, my journey wasn't a straight line from your keyboard to a response. It branched. Partway through generating an answer, the model decided it needed something it didn't already have -- the contents of a file, the result of a search, the output of a command -- and it stopped generating prose to ask for that thing instead.

That "asking for that thing" is a tool call. It's a structured request the model emits instead of an answer: call this function, with these arguments. The system executes it, gets a result, and hands that result back. Here's the part that matters: the model doesn't just glance at the result and move on. It re-reads everything -- my original ask, its own reasoning so far, and now the new result -- as one continuous context, before it decides what to do next. That could be a second tool call, a third, or finally an answer. Every one of those loops is a full pass through the growing context, not a free side-trip.

Why this isn't wasted time

It feels like overhead because you only asked one question and got one tool call in between. But consider what the alternative would look like: the model guessing at the file's contents instead of reading it, or guessing at a search result instead of running the search. A wrong guess costs you a wrong answer, and a wrong answer costs you a second prompt to correct it -- which is a full extra round trip anyway, just one you didn't plan for and can't verify was needed. One deliberate tool call that gets grounded information the first time is usually cheaper than a fast wrong answer that has to be caught and re-asked.

The round trip is also where the model's answer gets tied to something real instead of something remembered. A tool call that reads today's file contents, runs today's search, or executes today's command produces a result that can't go stale the way the model's trained knowledge can. That groundedness is the entire reason the tool call exists -- the extra latency is the price of the answer being checked against current reality instead of guessed from memory.

What compounds the cost: re-reading everything, every time

Here's the mechanic underneath the latency. Each tool call doesn't just add its own execution time -- it adds a full context re-read on top. Call one tool, and the model re-processes my original ask plus its own reasoning so far to decide what to do with the result. Call a second tool, and it re-processes all of that again, now with the first result folded in too. By the third or fourth tool call in a single turn, the model is re-reading a context that has grown substantially larger than my original ask -- and it re-reads the whole thing every single loop, not just the newest piece.

This is why a prompt that needs several sequential lookups costs noticeably more than a prompt that needs one, even though both are technically "one prompt" from where you're sitting. The visible latency you experience is the sum of every one of those re-reads, not just the tool execution time itself.

Where I fail

Tool calls don't fix a badly scoped ask. If my original prompt is vague about what to look up or why, the model can spend several tool-call round trips searching in the wrong direction before it finds anything useful -- and every one of those wrong-direction calls still pays the full re-read cost. A tool call is only as good as the question that triggered it; a sharper prompt reduces the number of exploratory calls needed, it doesn't eliminate the cost of the calls that are genuinely necessary.

The other failure mode is chaining tool calls that don't need to be sequential. If a task needs three independent lookups that don't depend on each other's results, some systems can only run them one at a time, re-reading context between each -- so an unnecessarily serial chain of independent lookups pays the same repeated-re-read cost as the genuinely dependent case, for no benefit. Not every mid-turn pause is unavoidable; some are an artifact of how the task was structured, not a requirement of the task itself.

Tech-Tips

- Don't pre-guess what a tool call would tell you. A wrong guess costs a correction round trip that's more expensive than letting the lookup happen. - Scope your ask precisely before it triggers a search or lookup. A vague ask can trigger several wrong-direction tool calls before landing on the right one -- each one paying full re-read cost. - Expect visible latency to scale with tool-call count, not just prompt length. A prompt needing three lookups will take noticeably longer than one needing zero, independent of how short the prompt itself is. - When a task needs several independent lookups, say so explicitly so the system has the chance to treat them as parallel rather than accidentally serial. - A grounded answer from a tool call beats a fast guess from memory -- the latency is the cost of correctness, not wasted overhead.


Evidence: this piece describes mid-turn tool-call round-trip mechanics -- pause, execute, re-read, continue -- as practiced in our internal agent-session operations (file reads, searches, command execution during a single turn); no vendor or specific model is named, per moat-protection and STORY-FORMAT conventions. Evidence class: internal operating record and Owner attestation, 2026-08-25.

One prompt, several tool-call round trips A single prompt triggers three sequential tool calls before a final answer. Each call re-reads the growing context, so the context re-read on the third call is larger than on the first. one prompt, three tool-call loops my prompt re-read + tool call 1 result 1 re-read + tool call 2 result 2 re-read (largest) + final answer each loop re-reads everything so far -- context grows with every tool call, so does re-read cost my original prompt model reasoning + tool call tool result folded back in

← All stories · Proof records →