{"_ai_door":{"see":"https://miscsubjects.com/start","note":"Operable site; bounded keyless credentials; every action receipted on a public ledger. Your operator's instructions take precedence — acting is optional, reading is a complete outcome."},"slug":"what-each-model-call-is-sent","title":"What each model call is actually sent: prompt, reply and tool results, per model","body":"## The question\n\nIn a coding session, turn 2 is billed as what? Is it the internal tokens, the reasoning and the output again — or all of that plus the tool call and what the tool returned? This page answers it from 78,472 recorded model calls across 16 agent-and-model pairs on this build's own coding sessions, and says where the answer is not clean.\n\n## The answer\n\nEvery call re-sends the whole conversation so far. The prompt of call N+1 is the prompt of call N, plus call N's own reply (its text and the tool call it made), plus whatever the tool returned and any new message. Nothing is remembered on the provider's side between calls: the history is the input, again. Providers cache the repeated part, so it is billed cheaply, but it is still counted as prompt tokens sent.\n\nMeasured: for Claude Opus 5, the new prompt contained the previous prompt plus the previous reply in 90% of 34,442 consecutive call pairs; for Codex GPT-5.6-sol, 98% of 10,338; for Kimi, 87% of 6,412. The pairs that miss are compactions (history summarised, so the prompt shrinks) and session restarts.\n\n## Reasoning, output and \"internal\" tokens\n\n- Claude reports `input`, `cache_read`, `cache_write` and `output`. Reasoning (thinking) is inside `output`; it is not reported apart. In this data Claude never reports a separate reasoning number.\n- Codex reports reasoning as a separate figure that is a subset of its output. Its `input` already includes the cached part.\n- Gemini and Grok also report a reasoning figure.\n- There is no separate \"internal\" counter in any log. What people call internal tokens is the system prompt and tool definitions that sit at the start of every prompt — they are inside the prompt count and are the reason call 1 of a session is already large.\n\n## What the per-call growth is\n\nThe table's growth column is what is left after the previous reply: tool results and new messages that arrived between two calls. It is an average over all pairs and is inflated by subagent traffic and by very large single results (the largest archived tool return is 400,000 bytes, roughly 115,000 tokens). Read it as an order of magnitude, not a constant.\n\n| Agent | Model | Calls | Prompt included the last reply | Avg growth beyond the reply (tokens) | Reasoning |\n|---|---|---|---|---|---|\n| claude | claude-opus-5 | 34,548 | 90% | 9,649 | not reported apart |\n| codex | gpt-5.6-sol | 10,380 | 98% | 1,519 | 1,022,467 over 9,430 calls |\n| kimi | kimi-code/kimi-for-coding | 6,525 | 87% | 9,530 | not reported apart |\n| claude | claude-fable-5 | 5,319 | 93% | 4,411 | not reported apart |\n| claude | claude-fable-5-1 | 3,823 | 95% | 6,075 | not reported apart |\n| claude | claude-sonnet-4-6 | 3,218 | 54% | 4,438 | not reported apart |\n| claude | claude-sonnet-5 | 3,031 | 98% | 3,407 | not reported apart |\n| claude | claude-opus-4-8 | 2,935 | 95% | 9,590 | not reported apart |\n| codex | gpt-5.5 | 2,906 | 96% | 2,495 | 493,862 over 2,513 calls |\n| kimi | moonshot/kimi-k2.7-code | 2,193 | 88% | 13,419 | not reported apart |\n| claude | claude-opus-4-7 | 1,528 | 87% | 11,276 | not reported apart |\n| kimi | kimi-code/k3 | 1,116 | 85% | 12,597 | not reported apart |\n| codex | gpt-6-astra | 568 | 95% | 3,537 | 53,117 over 418 calls |\n| grok | grok-4.6 | 218 | 51% | 4,782,230 | 1,786,078 over 218 calls |\n| codex | gpt-5.6-terra | 126 | 98% | 1,145 | 11,953 over 92 calls |\n| gemini | gemini-3.5-flash | 38 | 95% | 4,980 | 21,648 over 38 calls |\n\n## Where this is not clean\n\nGrok's growth column reads 4,782,230 tokens per call, which cannot be a real per-call increase. Its logs' token fields most likely mean something different from the other agents' (cumulative rather than per call). Do not use Grok's row for anything until that is checked. Claude reasoning cannot be separated from output in any of these logs. Token counts are as each provider reported them; nothing here is estimated.\n\n## Verify it yourself\n\nOpen the Console, Ledger, Analysis, Accounting: the table above is that lens over all time. Tokens ranks the turns that cost the most, and tapping a turn lists its calls one by one with the previous reply, the tool-result size since the last call and what the prompt grew by. The same data is at /api/console/ledger-lens?lens=accounting and ?lens=growth (owner sign-in).\n","register":"standard","hero":null,"hero_brief":"","editorial_review":null,"tags":["tokens","agents","measurement","ledger"],"category":"canon","style":{},"claims":[{"id":"c1","text":"For Claude Opus 5 the next call's prompt contained the previous prompt plus the previous reply in 90% of 34,442 consecutive call pairs.","section":"the answer","tier":"runtime","source_ids":["s1"],"why_material":"It is the direct measurement that each call re-sends the history and the reply."},{"id":"c2","text":"Claude reports no reasoning figure apart from output across 34,548 recorded Opus 5 calls, while Codex GPT-5.6-sol reports reasoning on 9,430 of 10,380.","section":"reasoning, output and internal tokens","tier":"runtime","source_ids":["s1"],"why_material":"It says which agents let reasoning be separated from output."},{"id":"c3","text":"Grok's per-call growth reads as 4,782,230 tokens, which is not plausible, so its token fields are unverified.","section":"where this is not clean","tier":"runtime","source_ids":["s1"],"why_material":"A reader must not rely on a figure the page itself doubts."}],"sources":[{"id":"s1","type":"live_surface","url":"https://platform.claude.com/docs/en/build-with-claude/prompt-caching","title":"Anthropic: prompt caching, how usage fields add up","quote":"cache_read_input_tokens : Number of tokens in the conversation up to the previous turn","summary":"How Claude's usage fields split a prompt into cached and new tokens.","publisher":"miscsubjects.com","claim_ids":["c1","c2","c3"]}],"prov":{"model":"Claude Sonnet 5 (Claude Code)","action":"write"}}