By Sagar Shankaran, Founder of CallSphere
Make Claude Agent Skills cheap and fast with prompt caching, batched tool calls, context trimming, and per-step model routing — measured, not guessed.
Key takeaways
A Skill that works is only half the job. The other half is making it run cheaply and quickly enough to use in production. The same agentic loop that solves a hard task can also burn through tokens — re-reading the same files, re-sending a 3,000-token Skill on every turn, calling tools one at a time when it could batch them. Multi-agent setups make this worse: spawning subagents can multiply token usage several times over a single agent. If you don't measure and tune cost, a Skill that looked great in a demo becomes a line item nobody wants to defend.
This post is about the levers that move cost and latency the most when refining a Claude Agent Skill: prompt caching, batching, context discipline, and per-step model selection. Each one is concrete, measurable, and safe to apply without degrading output quality.
Prompt caching is a feature where the model provider stores a prefix of your prompt so that repeated, identical leading content is billed and processed at a steep discount on later calls instead of being re-read from scratch every time. For an agent that sends the same system prompt and Skill on every turn, this is where most of the savings live.
Before optimizing, measure. For one representative run, log per-turn input tokens, output tokens, cached tokens, and the wall-clock time of each tool call. You will almost always find one of three culprits dominating: a large static prefix re-sent uncached every turn, a context window that grows unbounded as history accumulates, or serial tool calls that add round-trip latency without adding tokens you needed.
The cheapest token is the one you never send. So the optimization order is: first stop re-sending stable content (cache it), then stop re-sending stale content (trim it), then stop waiting on serial calls (batch them), and only then consider a smaller model for parts of the work.
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
flowchart TD
A["Incoming turn"] --> B{"Prefix unchanged\nfrom last turn?"}
B -->|Yes| C["Cache hit:\ncheap, fast prefix"]
B -->|No| D["Cache miss:\nfull prefix billed"]
C --> E{"Need multiple\ntool results?"}
D --> E
E -->|Yes| F["Batch independent calls"]
E -->|No| G["Single call"]
F --> H{"Step is simple?"}
G --> H
H -->|Yes| I["Route to Haiku"]
H -->|No| J["Route to Opus/Sonnet"]
Caching keys on an exact prefix match. The rule that follows is simple but easy to violate: put everything stable at the front and everything volatile at the back. Your system prompt, the loaded Skill, and your tool definitions should appear first and byte-for-byte identical across turns. The dynamic conversation and the latest user input come last. If you inject a timestamp or a per-turn note into the system prompt, you invalidate the cache on every single turn and pay full price forever.
With the Anthropic API you mark cache boundaries explicitly. Place the breakpoint after your stable Skill and tool content:
{
"model": "claude-sonnet-4-6",
"system": [
{ "type": "text", "text": "<your stable system + Skill instructions>",
"cache_control": { "type": "ephemeral" } }
],
"tools": [ /* stable tool defs — also covered by the cached prefix */ ],
"messages": [
{ "role": "user", "content": "<the volatile, per-turn content goes here>" }
]
}
After deploying this, check the response usage fields for cache_read_input_tokens. If that number is large relative to input_tokens on later turns, caching is working. If it stays near zero, something upstream of your breakpoint is changing between turns — hunt it down.
Batch when calls are independent; keep serial when one call's result feeds the next. If a Skill needs to read five config files to build a picture, asking for all five in one turn is faster and avoids five round-trips of model latency. But if it must read a file, decide based on its contents, then read another, batching would force a guess. The decision rule is purely about data dependency.
You encourage batching in the Skill itself: "When you need several files whose paths you already know, request them together in a single turn rather than one at a time." Pair that with tools that accept arrays — a read_files that takes a list beats five calls to read_file. The tokens are similar; the latency and overhead are much lower.
Every turn re-sends the accumulated history, so a long run pays for its own past on every future call. Three disciplines keep it bounded. First, summarize completed phases: once a sub-task is done, replace its verbose transcript with a short result note. Second, don't dump entire files into context when a targeted slice or a search result would do. Third, for long-horizon work, use subagents that each carry their own focused context and return only a compact result to the orchestrator, rather than one agent dragging an ever-growing history.
Still reading? Stop comparing — try CallSphere live.
CallSphere ships complete AI voice agents per industry — 14 tools for healthcare, 10 agents for real estate, 4 specialists for salons. See how it actually handles a call before you book a demo.
cache_read_input_tokens is high on later turns; if not, find what's changing.| Step | Model | Why |
|---|---|---|
| Classify / route intent | Haiku 4.5 | Cheap, fast, simple decision |
| Extract / reformat data | Haiku 4.5 | Low reasoning, high volume |
| Plan multi-step work | Sonnet 4.6 | Balanced cost and reasoning |
| Hard debugging / synthesis | Opus 4.8 | Worth the cost on hard turns |
No. Caching affects how the prefix is processed and billed, not the tokens the model sees, so output quality is unchanged. It is one of the few pure wins available.
It depends on how much of your prompt is stable versus volatile, but for agents that re-send a large system prompt and Skill on every turn — most of them — the repeated portion gets a steep discount, which compounds fast over a long run.
If your run has a clear split between trivial and hard steps, yes. Routing classification to Haiku and reserving Opus for synthesis can cut cost substantially with no quality loss, because the cheap steps didn't need the expensive model.
Summarize finished phases into short notes and offload parallelizable work to subagents that return compact results. The orchestrator should hold conclusions, not full transcripts.
CallSphere runs these same efficiency patterns — cached prefixes, batched tool calls, the right model per step — on voice and chat agents that answer every call and message, use tools live, and book work 24/7, fast and affordably. See it live at callsphere.ai.
Source & attribution: This is an independent, original explainer inspired by Anthropic's coverage on the Claude blog. Claude, Claude Code, Claude Cowork, Claude Opus, and the Model Context Protocol are products and trademarks of Anthropic. CallSphere is not affiliated with or endorsed by Anthropic.

Written by
Sagar Shankaran· Founder, CallSphere
LinkedInSagar Shankaran is the founder of CallSphere, where he builds production AI voice and chat agents deployed across healthcare, hospitality, real estate, and home services. He writes about agentic AI, LLM engineering, and shipping voice agents that handle real calls in production.
See how AI voice agents work for your industry. Live demo available -- no signup required.
Anthropic's Claude Fable 5 and Mythos 5 explained: pricing, availability, frontier benchmarks, the dual-model safeguard architecture, and what they mean for AI agents.
Where Claude Code, MCP, and multi-agent systems are taking GTM engineering next, and how to prepare your team now for standing and multi-agent workflows.
Where Claude Cowork and the Claude agent ecosystem are heading next — standing agents, MCP, skills as a moat — and the concrete moves to prepare your team now.
The metrics, leading signals, and anti-metrics that prove Claude Cowork is working — acceptance rate, time-to-outcome, and why usage counts mislead.
Shipping an agentic GTM workflow is easy; proving it works is hard. The metrics, signals, and eval loops that show a Claude Code rebuild is paying off.
A realistic end-to-end Claude Cowork use case: a quarterly vendor-spend review from vague ask to shipped deliverable, with every agentic step shown.
© 2026 CallSphere Inc. All rights reserved.
Made within San Francisco
Watch how CallSphere handles real customer calls, schedules appointments, and processes payments — live.
Try Live DemoBook a DemoCalculate Your ROI