Slide 14
Slide 14 text
The full block map (real capture)
request body · turn 1 · claude-sonnet-4-6
1 {
2 "model": "claude-sonnet-4-6", "max_tokens": 32000,
3 "tools": [
4 { "name":"Bash", "description":"Executes a bash command...",
5 "input_schema":{"type":"object","properties":{…}} },
6 { "name":"Read", … }, // + Edit, Write, Grep, Glob, …
7 … 30 definitions total …
8 ],
9 "system": [
10 {"text":"x-anthropic-billing-header: … cch=b2984;"}, // len 85
11 {"text":"You are a Claude agent…", "cache_control":{"ttl":"1h"}}, ◀ BP1
12 {"text":"You are an interactive CLI… [26,934]", "cache_control":{…"1h"}}
◀ BP2
13 ],
14 "messages": [ {"role":"user","content":[
15 {"text":" agents…"}, // content[0] 1766
16 {"text":" skills…"}, // content[1] 3808
17 {"text":"# claudeMd … date 2026-06-22"}, // content[2] 1861
18 {"text":"Turn one. Reply with…"} ] } ] ◀ BP3 slides
19 }
tools @ byte 0 — 30 definitions, the biggest, most
stable block. Change it and the whole prefix re-keys.
2 system breakpoints (ttl:1h) freeze the ~27K front —
written once, read warm after.
messages[0] = ONE message, 4 typed blocks. The
cache counts blocks, not messages.
WHY Three cache_control markers, all ttl=1h: BP1 on system[1], BP2 on system[2], BP3 on the message tail. Zero markers
in the tools array — tools fold into BP1. CLAUDE.md, skills, and the date all sit in messages[0], after the system breakpoints. [capture] CC 2.1.150