Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · api

thinking-tool-workflows changedbuild-with-claude/thinking-tool-workflows

Nearest release: v2.1.304, published under 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+6added
Lines−64removed
From line 55 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 55, old and new numbered
/
lines
from line 55
5555 ```
5656 
5757 ```bash CLI
58 ant messages create --transform content <<'YAML'
58 ant messages create <<'YAML'
5959 model: claude-opus-5-5
6060 max_tokens: 16000
6161 thinking:
from line 313
313313 
314314 Each sample is a self-contained script: it repeats the first request, then immediately sends the follow-up using the response it just received.
315315 
316 <CodeGroup exclude="shell:cURL">
316 <CodeGroup exclude="shell:cURL, shell:CLI">
317317 <CodeGroupItem language="cURL">
318 This workflow needs more logic than a single shell command. Use the Claude SDK to run it.
318 This workflow needs more logic than a single shell command. Use the [Claude SDK](https://platform.claude.com/docs/en/cli-sdks-libraries/overview) to run it.
319319 </CodeGroupItem>
320320 
321 ```bash CLI
322 # First turn: write the assistant content array (thinking and tool_use
323 # blocks, signatures intact) to a file. Routing model-generated text
324 # through a file keeps it out of shell-expansion position later.
325 ant messages create --transform content --format jsonl \
326 > assistant_content.json <<'YAML'
327 model: claude-opus-5-5
328 max_tokens: 16000
329 thinking:
330 type: adaptive
331 tools:
332 - name: get_weather
333 description: Get current weather for a location
334 input_schema:
335 type: object
336 properties:
337 location:
338 type: string
339 description: City name
340 required: [location]
341 messages:
342 - role: user
343 content: What's the weather in Paris?
344 YAML
345 
346 # Second turn: jq fills the two null placeholders from the captured file,
347 # so the blocks return verbatim as the assistant message. The thinking
348 # block MUST accompany the tool_use block. The quoted delimiter keeps the
349 # shell from expanding anything in the body.
350 jq --slurpfile blocks assistant_content.json '
351 .messages[1].content = $blocks[0] |
352 .messages[2].content[0].tool_use_id =
353 ($blocks[0][] | select(.type == "tool_use") | .id)
354 ' <<'JSON' | ant messages create
355 {
356 "model": "claude-opus-5-5",
357 "max_tokens": 16000,
358 "thinking": {"type": "adaptive"},
359 "tools": [{
360 "name": "get_weather",
361 "description": "Get current weather for a location",
362 "input_schema": {
363 "type": "object",
364 "properties": {
365 "location": {"type": "string", "description": "City name"}
366 },
367 "required": ["location"]
368 }
369 }],
370 "messages": [
371 {"role": "user", "content": "What's the weather in Paris?"},
372 {"role": "assistant", "content": null},
373 {"role": "user", "content": [{
374 "type": "tool_result",
375 "tool_use_id": null,
376 "content": "Current temperature: 88°F"
377 }]}
378 ]
379 }
380 JSON
381 ```
321 <CodeGroupItem language="CLI">
322 This workflow needs more logic than a single shell command. Use the [Claude SDK](https://platform.claude.com/docs/en/cli-sdks-libraries/overview) to run it.
323 </CodeGroupItem>
382324 
383325 ```python Python
384326 
Feedback