thinking-tool-workflows changedbuild-with-claude/thinking-tool-workflows
Nearest release: v2.1.307, published an hour after 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+8added
Lines−8removed
From line
265
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits11to this page, all time
The whole hunk
from line 265, old and new numbered
/
from line 265
265265 }
266266
267267 message = client.messages.create(
268 model: "claude-opus-5-5",
268 model: Anthropic::Model::CLAUDE_OPUS_5_5,
269269 max_tokens: 16000,
270270 thinking: {
271271 type: "adaptive"
from line 281
281281 </Step>
282282
283283 <Step title="Capture the content array to echo back">
284 You should see `thinking` and `tool_use` blocks in the response content on a run where Claude chose to think (on simpler requests, adaptive mode may skip the thinking block). A note Claude writes before the tool call comes back as a `text` block or, on models that write [progress updates](https://platform.claude.com/docs/en/build-with-claude/thinking#progress-updates), as another `thinking` block. Keep this content array intact: the next step sends it back verbatim.
284 You should see `thinking` and `tool_use` blocks in the response content on a run that includes thinking (on simpler requests, adaptive mode may skip the thinking block). A note Claude writes before the tool call comes back as a `text` block or, on models that write [progress updates](https://platform.claude.com/docs/en/build-with-claude/thinking#progress-updates), as another `thinking` block. Keep this content array intact: the next step sends it back verbatim.
285285
286286 <Note>
287287 To see thinking text like this output, add `display: "summarized"` to the request. On models where display defaults to omitted, including Claude Opus 5.5, the `thinking` field otherwise comes back as an empty string with only the `signature` populated. Either way, echo the content array back unchanged; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking#controlling-thinking-display).
from line 344
344344 # Extract the tool use block to get its ID for the tool result
345345 tool_use_block = next(block for block in response.content if block.type == "tool_use")
346346
347 # Call your actual weather API, here is where your actual API call would go
348 # Let's pretend this is what we get back
347 # This is where your actual weather API call would go
348 # Pretend this is what the weather API returns
349349 weather_data = {"temperature": 88}
350350
351351 # Second request - Include the assistant turn and the tool result
from line 402
402402 // Extract the tool use block to get its ID for the tool result
403403 const toolUseBlock = response.content.find((block) => block.type === "tool_use");
404404
405 // Call your actual weather API, here is where your actual API call would go
406 // Let's pretend this is what we get back
405 // This is where your actual weather API call would go
406 // Pretend this is what the weather API returns
407407 const weatherData = { temperature: 88 };
408408
409409 if (toolUseBlock) {
from line 705
705705 }
706706
707707 response = client.messages.create(
708 model: "claude-opus-5-5",
708 model: Anthropic::Model::CLAUDE_OPUS_5_5,
709709 max_tokens: 16000,
710710 thinking: {
711711 type: "adaptive"
from line 723
723723 weather_data = { temperature: 88 }
724724
725725 continuation = client.messages.create(
726 model: "claude-opus-5-5",
726 model: Anthropic::Model::CLAUDE_OPUS_5_5,
727727 max_tokens: 16000,
728728 thinking: {
729729 type: "adaptive"
No line in this hunk matches that.