Sweep 22 Sep 2026 · 17:19Z Build v2.1.280 501 read Stable v2.1.267 Latest v2.1.280 Next v2.1.280 Feeds RSS JSON llms.txt Unofficial
One change · api

define-tools changed

agents-and-tools/tool-use/define-tools

Nearest release: v2.1.280, published under an hour before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Recorded here
Lines+11added
Lines−11removed
From line 146 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits6to this page, all time

The whole hunk

from line 146, old and new numbered
/
lines
from line 146
146146 -H "anthropic-version: 2023-06-01" \
147147 -d @- <<'EOF'
148148 {
149 "model": "claude-opus-5",
149 "model": "claude-opus-5-5",
150150 "max_tokens": 1024,
151151 "tools": [
152152 {
from line 183
183183 
184184 ```bash CLI
185185 ant messages create <<'YAML'
186 model: claude-opus-5
186 model: claude-opus-5-5
187187 max_tokens: 1024
188188 tools:
189189 - name: get_weather
from line 215
215215 client = anthropic.Anthropic()
216216 
217217 response = client.messages.create(
218 model="claude-opus-5",
218 model="claude-opus-5-5",
219219 max_tokens=1024,
220220 tools=[
221221 {
from line 255
255255 const client = new Anthropic();
256256 
257257 const response = await client.messages.create({
258 model: "claude-opus-5",
258 model: "claude-opus-5-5",
259259 max_tokens: 1024,
260260 tools: [
261261 {
from line 303
303303 
304304 var parameters = new MessageCreateParams
305305 {
306 Model = Model.ClaudeOpus5,
306 Model = Model.ClaudeOpus5_5,
307307 MaxTokens = 1024,
308308 Tools = [
309309 new ToolUnion(new Tool()
from line 351
351351 client := anthropic.NewClient()
352352 
353353 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
354 Model: anthropic.ModelClaudeOpus5,
354 Model: anthropic.ModelClaudeOpus5_5,
355355 MaxTokens: 1024,
356356 Tools: []anthropic.ToolUnionParam{
357357 {OfTool: &anthropic.ToolParam{
from line 405
405405 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
406406 
407407 MessageCreateParams params = MessageCreateParams.builder()
408 .model(Model.CLAUDE_OPUS_5)
408 .model(Model.CLAUDE_OPUS_5_5)
409409 .maxTokens(1024L)
410410 .addTool(Tool.builder()
411411 .name("get_weather")
from line 454
454454 messages: [
455455 ['role' => 'user', 'content' => "What's the weather like in San Francisco?"]
456456 ],
457 model: 'claude-opus-5',
457 model: 'claude-opus-5-5',
458458 tools: [
459459 [
460460 'name' => 'get_weather',
from line 496
496496 client = Anthropic::Client.new
497497 
498498 message = client.messages.create(
499 model: "claude-opus-5",
499 model: "claude-opus-5-5",
500500 max_tokens: 1024,
501501 tools: [
502502 {
from line 558
558558 
559559| Model or setting | Restriction | What to use instead |
560560| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
561| Manual [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) (`thinking: {type: "enabled"}`) | `any` and `tool` are not supported and result in an error | `auto` or `none`. [Adaptive thinking](https://platform.claude.com/docs/en/build-with-claude/thinking), including on models where thinking is on by default such as Claude Opus 5, supports forced tool use |
562| Claude Fable 5.1 and [Claude Mythos 5.1](https://anthropic.com/glasswing) | `any` and `tool` return a [400 error](https://platform.claude.com/docs/en/api/errors#forced-tool-use-not-supported) | `auto` with [strict tool use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/strict-tool-use) to guarantee schema-valid tool inputs, or [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) when you need a response in a fixed JSON shape. Prompting still influences which tool `auto` picks. `none` is also supported |
561| Manual [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) (`thinking: {type: "enabled"}`) | `any` and `tool` are not supported and result in an error | `auto` or `none`. [Adaptive thinking](https://platform.claude.com/docs/en/build-with-claude/thinking) itself doesn't block forced tool use (Claude Opus 5 supports it with thinking on); the models in the next row reject forced tool use regardless of thinking settings |
562| Claude Opus 5.5, Claude Fable 5.1, and [Claude Mythos 5.1](https://anthropic.com/glasswing) | `any` and `tool` return a [400 error](https://platform.claude.com/docs/en/api/errors#forced-tool-use-not-supported) | `auto` with [strict tool use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/strict-tool-use) to guarantee schema-valid tool inputs, or [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) when you need a response in a fixed JSON shape. Prompting still influences which tool `auto` picks. `none` is also supported |
563563 
564564On models that support it, the highlighted lines are the only difference from a standard tool use request:
565565