Claude sometimes skips a web search even when told to search, because it judges its own training data is enough. The fix, tested on Sonnet 4.6, is to reframe the request as a verification requirement: state that the answer is incomplete without a current search.
Last Updated: August 2026 · Cole Bridges Research Lab
Tool-calling compliance patterns and fixes documented on live Claude Sonnet 4.6 by the Cole Bridges Research Lab.
Claude Sonnet 4.6 skips web search when it calculates that its training data is sufficient to answer the question, even when you've explicitly told it to search. The fix is reframing the search instruction as a verification requirement, not an optional step.
Anthropic's current lineup is Claude Haiku 4.5, Claude Sonnet 5 (released June 30, 2026), Claude Opus 5 (released July 24, 2026), and Claude Fable 5, with Claude Mythos 5 restricted to approved partners. Sonnet 5 is the default model on the Free and Pro plans, Opus 5 is the default on Max and the strongest model available on Pro. Source: Anthropic.
The test runs on this page were performed on Claude Sonnet 4.6, which Sonnet 5 replaced as the default model on June 30, 2026. We publish these results as a dated snapshot rather than restating them as current-model behavior. Where a finding has not been re-tested on Sonnet 5 or Opus 5, treat it as history, not as a live bug report.
The Root Cause: Claude's Tool-Calling Cost Model
Claude Sonnet 4.6 has an internal cost model for tool use. Every tool call, including web search, carries a token and latency cost that the model weighs against the expected information gain. When Claude believes it already knows the answer well enough, it skips the search to be efficient.
The problem: this efficiency calculation happens even when you have explicitly instructed Claude to search. Your instruction competes with the model's optimization logic, and the optimization often wins.
The Fix: Reframe Search as Verification
Instead of telling Claude to "search for X," tell it that its answer is incomplete without current verification. This shifts the model's internal calculation, now skipping the search means delivering a flagged incomplete response, which Claude avoids.
<task>Research the current pricing for [tool/service].</task>
<requirement>
Your training data on this topic may be outdated by 6+ months.
This response is INCOMPLETE without a current web search.
Do not provide pricing from memory. Search first, then answer.
</requirement>
<format>
Search results summary → Current pricing table → Recommendation
</format>
In our testing on Sonnet 4.6, a standalone "search for X" instruction often did not trigger a web search at all. Claude answered from memory instead. Reframing the search as a verification requirement, stating that the answer is incomplete without it, reliably got the search to run on the same query types.
Query Types Where Claude Almost Always Skips Search
| Query Type | Without Fix | With Verification Frame |
|---|---|---|
| Software pricing / subscription tiers | Often skipped | Reliably runs |
| "Current" or "latest" version queries | Often skipped | Reliably runs |
| Company contact info / leadership | Very often skipped | Usually runs |
| Recent news on a known topic | Sometimes skipped | Reliably runs |
Force Search for Every Agentic Workflow Step
In multi-step agentic workflows, search compliance drops further because Claude optimizes for completion speed. Use this structure at the start of any agentic prompt to lock in search behavior across all steps:
<rules>
For any step that involves current data, pricing, or recent events:
MANDATORY: Search before answering. Mark each step [SEARCHED] or [MEMORY ONLY].
A step marked [MEMORY ONLY] on a current-data query is an error.
</rules>