Claude Programmatic Tool Calling Token Proof 2026
- Date: 2026-07-13
- Track: api-backed-poc
- Purpose: measure, on a real model API, how many tokens a large intermediate tool result costs when it round-trips through the model context, versus when only the final aggregated result reaches context. This is the exact cost that Claude's programmatic tool calling is designed to remove.
- Runtime for the measurement: OpenAI Responses API, model
gpt-5.5-2026-04-23, viascripts/openai-lab-run.py.
Why measure this on OpenAI and not on Claude's PTC directly
Claude's programmatic tool calling (code_execution_20260120) keeps intermediate tool outputs inside the code-execution sandbox instead of passing them back through the model context. We did not run Claude's PTC feature here (it requires the code-execution tool version and a supported Claude model). Instead we isolated and measured the underlying mechanic — the token cost of putting a large intermediate payload into a model's context window — using a neutral reasoning-model API we can call within budget. The measured numbers below therefore quantify the cost PTC targets; they are not a benchmark of Claude's PTC implementation. Anthropic's own published figure for PTC is a separate, cited data point (see below).
Setup
Synthetic, deterministic scenario (no secrets, no customer data). An agent "fetched" 150 order-line records. Task: sum amount_usd for records where region == "EU" and status == "refunded". Ground truth (computed in plain Python): count=9, total_usd=5016.40.
Two prompts, identical task, differ only in how much of the intermediate data reaches the model:
- Naive pattern — the full 150-record JSON payload is placed in the model context; the model must filter and aggregate. Prompt file:
naive_prompt.txt(SHA-256 prefix8d230255a4689273). - Programmatic pattern — an in-sandbox script already filtered and aggregated; only the compact result
{"filtered_count":9,"total_usd":5016.4}reaches the model context. Prompt file:programmatic_prompt.txt(SHA-256 prefix44f7c9b84b8027b6).
Command shape (run twice, once per prompt file):
python3 scripts/openai-lab-run.py --slug claude-programmatic-tool-calling-token-proof-2026 \
--prompt-file /tmp/ptc-lab/naive_prompt.txt --max-output-tokens 500 \
--output data/lab-runs/<slug>.naive.openai.json
Artifacts saved: *.naive.openai.json and *.programmatic.openai.json (each stores usage, request id, prompt SHA-256).
Results (real API usage counters)
| Metric | Naive (full data in context) | Programmatic (compact result only) | Change |
|---|---|---|---|
| Input tokens | 7,462 | 120 | −98.4% (62.2× fewer) |
| Output tokens | 409 | 28 | — |
| of which reasoning tokens | 391 | 10 | — |
| Total tokens | 7,871 | 148 | −98.1% (53.2× fewer) |
| Answer | count=9, total_usd=5016.40 |
count=9, total_usd=5016.4 |
both correct |
- Naive request id:
req_289602e69f1c49b6b5a7c9eb968e29df - Programmatic request id:
req_68f375190756441bb66d215c45229c07 - Both patterns returned the correct answer. The difference is entirely in cost, not accuracy — on this task.
- The model also spent 391 reasoning tokens chewing through the raw dataset in the naive run versus 10 when handed the pre-aggregated result.
- Caching note (from the artifact): the naive run reported
cached_tokens: 6912of its 7,462 input tokens, so most of that input billed at the cheaper cached rate. The token volume gap (98%) therefore overstates the dollar gap. We report tokens processed, not cost; any cost figure must apply cached-vs-fresh per-Mtok rates.
Verified source facts about Claude PTC (not measured here)
From the Claude programmatic-tool-calling docs (fetched 2026-07-13):
- Enable by adding
code_executionto thetoolslist andallowed_callers: ["code_execution_20260120"]to each tool Claude may invoke from code.code_execution_20260120andcode_execution_20260521are interchangeable inallowed_callers. - Requires
code_execution_20260120or later. Supported models listed: Claude Fable 5, Mythos 5, Opus 4.8/4.7/4.6/4.5, Sonnet 4.6/4.5. - Available on the Claude API, Claude Platform on AWS, and Microsoft Foundry (Hosted-on-Anthropic deployment). Not on Amazon Bedrock or Google Cloud at time of writing.
- Not eligible for Zero Data Retention (ZDR).
- Anthropic's published benchmark figure: on BrowseComp and DeepSearchQA, adding PTC improved performance ~11% while using 24% fewer input tokens. (This is the realistic multi-step-search figure — much smaller than our single-task illustration, because those tasks don't dump one giant blob into context.)
Limitations
- This is a single-task illustration, deliberately shaped so the entire intermediate dataset sits in context. It shows the mechanic at its most favorable. Real workloads land closer to Anthropic's 24%-input-token figure, or anywhere in between, depending on how large intermediate results are relative to the rest of the prompt.
- Measured on OpenAI
gpt-5.5-2026-04-23, not on Claude PTC. Token counts, tokenizer, and pricing differ across providers and models. - No production benchmark, no user study, no claim that any customer pipeline was migrated.
- Prices change; any cost figure derived from these token counts should be recomputed against current per-Mtok rates.
Read the article
This note supports the public article and records what was actually checked.
Get the runs we publish next
One short weekly dispatch with new guides, tools, and what we actually tested. No spam, unsubscribe anytime.