All features are generally available as of February 18, 2026.
Overview
Programmatic Tool Calling (PTC)
The Paradigm Shift
stdout enters the context window. 3 tools = 1 inference pass.
How It Works
1
Define tools
You define tools with
allowed_callers: ["code_execution_20250825"]2
Claude writes Python
Claude writes Python that calls those tools as async functions inside a sandbox
3
Tool execution
When a tool function is called, the sandbox pauses and the API returns a
tool_use block4
Provide result
You provide the tool result — it goes to the running code, not Claude’s context
5
Code resumes
Code resumes, processes results, calls more tools if needed
6
Final output
Only
stdout from the final execution reaches ClaudeKey Configuration
The allowed_callers Field
Advanced Patterns
- Batch Processing
- Early Termination
- Conditional Selection
- Data Filtering
Process N items in 1 inference pass:
Model Compatibility
Claude Opus 4.6
Claude Sonnet 4.6
Claude Sonnet 4.5
Claude Opus 4.5
Constraints
When to Use PTC
Good Use Cases
- Processing large datasets needing aggregates
- 3+ dependent tool calls in sequence
- Filtering/transforming results before Claude sees them
- Parallel operations across many items
- Conditional logic based on intermediate results
Less Ideal
- Single tool calls with simple responses
- Tools needing immediate user feedback
- Very fast operations (overhead > benefit)
Token Efficiency
- Tool results from programmatic calls are not added to Claude’s context — only final
stdout - Intermediate processing happens in code, not model tokens
- 10 tools programmatically ≈ 1/10th the tokens of 10 direct calls
Dynamic Filtering for Web Search/Fetch
The Problem
Web search and fetch tools dump full HTML pages into Claude’s context window. Most of that content is irrelevant — navigation, ads, boilerplate. Claude then reasons over all of it, wasting tokens and reducing accuracy.The Solution
Claude now writes and executes Python code to filter web results before they enter the context window. Instead of reasoning over raw HTML, Claude filters, parses, and extracts only relevant content in a sandbox.API Configuration
Uses updated tool type versions with a beta header:Benchmark Results
BrowseComp (finding specific information on websites):
DeepsearchQA (multi-step research, F1 score):
Use Cases
- Sifting through technical documentation
- Verifying citations across multiple sources
- Cross-referencing search results
- Multi-step research queries
- Finding specific data points buried in large pages
Tool Search Tool
The Problem
Loading all tool definitions upfront wastes context. If you have 50 MCP tools at ~1.5K tokens each, that’s 75K tokens before the user even asks a question.The Solution
Mark infrequently-used tools withdefer_loading: true. They’re excluded from the initial context. Claude discovers them on-demand via a Tool Search Tool.
Configuration
Best Practices
Keep essential tools loaded
Keep 3-5 most-used tools always loaded, defer the rest
Clear descriptions
Write clear, descriptive tool names and descriptions (search relies on them)
Document capabilities
Document available capabilities in the system prompt
When to Use
- Tool definitions consuming > 10K tokens
- 10+ tools available
- Multiple MCP servers
- Tool selection accuracy issues from too many options
Token Savings
~85% reduction in tool definition tokens (77K → 8.7K in Anthropic’s benchmarks)
Claude Code Equivalent
Claude Code has MCP tool search auto mode (enabled by default since v2.1.7). When MCP tool descriptions exceed 10% of context, they’re deferred and discovered viaMCPSearch. Configure the threshold with ENABLE_TOOL_SEARCH=auto:N where N is the context percentage (0-100).
Tool Use Examples
The Problem
JSON schemas define structure but can’t express:- When to include optional parameters
- Which parameter combinations make sense
- Format conventions (date formats, ID patterns)
- Nested structure usage
The Solution
Addinput_examples to tool definitions — concrete usage patterns beyond the schema.
Configuration
Best Practices
Use realistic data
Use realistic data
Use realistic data, not placeholder strings like “example_value”
Show variety
Show variety
Show variety: minimal, partial, and full specifications
Keep concise
Keep concise
Keep concise: 1-5 examples per tool
Focus on ambiguity
Focus on ambiguity
Focus on resolving ambiguity — target behavioral clarity over schema completeness
Show correlations
Show correlations
Show parameter correlations (e.g.,
priority: "critical" tends to have assignee)Results
72% → 90% accuracy on complex parameter handling in Anthropic’s benchmarks
Claude Code Relevance
What applies directly to Claude Code users
For Agent SDK developers
If you’re building agents with@anthropic-ai/claude-agent-sdk, PTC is immediately actionable:
1
Add code execution
Add
code_execution_20250825 to your tools array2
Set allowed_callers
Set
allowed_callers on tools that benefit from batching/filtering3
Implement tool result loop
Implement the tool result loop (pause → provide result → resume)
4
Return structured data
Return structured data (JSON) from tools for easier programmatic parsing
For MCP server authors
If you’re building custom MCP servers, Tool Use Examples can improve how Claude uses your tools:- Add
input_examplesto tool schemas - Document return formats clearly in descriptions (PTC needs to parse them)
