thinking changedbuild-with-claude/thinking
Nearest release: v2.1.299, 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+22added
Lines−22removed
From line
70
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits29to this page, all time
The whole hunk
from line 70, old and new numbered
/
from line 70
7070
7171In the table, "at `high` effort or below" means the request works at `low`, `medium`, and `high` effort and returns a 400 error at `xhigh` or `max`.
7272
73On Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5.5, Claude Sonnet 5, Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, and Claude Haiku 5.5, thinking is already on and needs no configuration. `display` defaults to `"omitted"` on these models, so the thinking text is hidden until you opt in. Opt in with `thinking: {"type": "adaptive", "display": "summarized"}`, which is exactly the following request with the [model string](https://platform.claude.com/docs/en/models/overview) swapped.
73On Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5.5, Claude Sonnet 5, Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, and Claude Haiku 5.5, thinking is already on and needs no configuration. `display` defaults to `"omitted"` on these models, so the thinking text is hidden until you opt in. Opt in with `thinking: {"type": "adaptive", "display": "summarized"}`, as the following examples do.
7474
75On Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, and Claude Sonnet 4.6, thinking is off until you set `thinking: {type: "adaptive"}`, which lets Claude determine when and how deeply to think based on the request. The following examples do that, set `display: "summarized"` so the thinking text is visible, and use a roomy `max_tokens`:
75On Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, and Claude Sonnet 4.6, thinking is off until you set `thinking: {type: "adaptive"}`, which lets Claude determine when and how deeply to think based on the request. The same request, with the [model string](https://platform.claude.com/docs/en/models/overview) swapped, turns it on there. The following examples set `display: "summarized"` so the thinking text is visible, and use a roomy `max_tokens`:
7676
7777<CodeGroup>
7878 ```bash cURL
from line 81
8181 -H "anthropic-version: 2023-06-01" \
8282 -H "content-type: application/json" \
8383 -d '{
84 "model": "claude-opus-4-8",
84 "model": "claude-opus-5-5",
8585 "max_tokens": 16000,
8686 "thinking": {
8787 "type": "adaptive",
from line 98
9898
9999 ```bash CLI
100100 ant messages create \
101 --model claude-opus-4-8 \
101 --model claude-opus-5-5 \
102102 --max-tokens 16000 \
103103 --thinking '{type: adaptive, display: summarized}' \
104104 --message '{role: user, content: "What is the greatest common divisor of 1071 and 462?"}' \
from line 110
110110 client = anthropic.Anthropic()
111111
112112 response = client.messages.create(
113 model="claude-opus-4-8",
113 model="claude-opus-5-5",
114114 max_tokens=16000,
115115 thinking={"type": "adaptive", "display": "summarized"},
116116 messages=[
from line 133
133133 const client = new Anthropic();
134134
135135 const response = await client.messages.create({
136 model: "claude-opus-4-8",
136 model: "claude-opus-5-5",
137137 max_tokens: 16000,
138138 thinking: {
139139 type: "adaptive",
from line 164
164164
165165 var parameters = new MessageCreateParams
166166 {
167 Model = Model.ClaudeOpus4_8,
167 Model = Model.ClaudeOpus5_5,
168168 MaxTokens = 16000,
169169 Thinking = new ThinkingConfigAdaptive { Display = Display.Summarized },
170170 Messages = [
from line 194
194194 client := anthropic.NewClient()
195195
196196 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
197 Model: anthropic.ModelClaudeOpus4_8,
197 Model: anthropic.ModelClaudeOpus5_5,
198198 MaxTokens: 16000,
199199 Thinking: anthropic.ThinkingConfigParamUnion{
200200 OfAdaptive: &anthropic.ThinkingConfigAdaptiveParam{
from line 226
226226 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
227227
228228 MessageCreateParams params = MessageCreateParams.builder()
229 .model(Model.CLAUDE_OPUS_4_8)
229 .model(Model.CLAUDE_OPUS_5_5)
230230 .maxTokens(16000L)
231231 .thinking(ThinkingConfigAdaptive.builder()
232232 .display(ThinkingConfigAdaptive.Display.SUMMARIZED)
from line 261
261261 'content' => 'What is the greatest common divisor of 1071 and 462?'
262262 ]
263263 ],
264 model: 'claude-opus-4-8',
264 model: 'claude-opus-5-5',
265265 thinking: ['type' => 'adaptive', 'display' => 'summarized'],
266266 );
267267
from line 281
281281 client = Anthropic::Client.new
282282
283283 message = client.messages.create(
284 model: "claude-opus-4-8",
284 model: "claude-opus-5-5",
285285 max_tokens: 16000,
286286 thinking: {
287287 type: "adaptive",
from line 554
554554 -H "anthropic-version: 2023-06-01" \
555555 -H "content-type: application/json" \
556556 -d '{
557 "model": "claude-opus-4-8",
557 "model": "claude-opus-5-5",
558558 "max_tokens": 16000,
559559 "stream": true,
560560 "thinking": {
from line 572
572572
573573 ```bash CLI
574574 ant messages create \
575 --model claude-opus-4-8 \
575 --model claude-opus-5-5 \
576576 --max-tokens 16000 \
577577 --thinking '{type: adaptive, display: summarized}' \
578578 --message '{role: user, content: "What is the greatest common divisor of 1071 and 462?"}' \
from line 584
584584 client = anthropic.Anthropic()
585585
586586 with client.messages.stream(
587 model="claude-opus-4-8",
587 model="claude-opus-5-5",
588588 max_tokens=16000,
589589 thinking={"type": "adaptive", "display": "summarized"},
590590 messages=[
from line 611
611611 const client = new Anthropic();
612612
613613 const stream = client.messages.stream({
614 model: "claude-opus-4-8",
614 model: "claude-opus-5-5",
615615 max_tokens: 16000,
616616 thinking: { type: "adaptive", display: "summarized" },
617617 messages: [{ role: "user", content: "What is the greatest common divisor of 1071 and 462?" }]
from line 641
641641
642642 var parameters = new MessageCreateParams
643643 {
644 Model = Model.ClaudeOpus4_8,
644 Model = Model.ClaudeOpus5_5,
645645 MaxTokens = 16000,
646646 Thinking = new ThinkingConfigAdaptive { Display = Display.Summarized },
647647 Messages = [new() { Role = Role.User, Content = "What is the greatest common divisor of 1071 and 462?" }]
from line 671
671671 client := anthropic.NewClient()
672672
673673 stream := client.Messages.NewStreaming(context.TODO(), anthropic.MessageNewParams{
674 Model: anthropic.ModelClaudeOpus4_8,
674 Model: anthropic.ModelClaudeOpus5_5,
675675 MaxTokens: 16000,
676676 Thinking: anthropic.ThinkingConfigParamUnion{
677677 OfAdaptive: &anthropic.ThinkingConfigAdaptiveParam{
from line 709
709709 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
710710
711711 MessageCreateParams params = MessageCreateParams.builder()
712 .model(Model.CLAUDE_OPUS_4_8)
712 .model(Model.CLAUDE_OPUS_5_5)
713713 .maxTokens(16000L)
714714 .thinking(ThinkingConfigAdaptive.builder()
715715 .display(ThinkingConfigAdaptive.Display.SUMMARIZED)
from line 756
756756 messages: [
757757 ['role' => 'user', 'content' => 'What is the greatest common divisor of 1071 and 462?']
758758 ],
759 model: 'claude-opus-4-8',
759 model: 'claude-opus-5-5',
760760 thinking: ['type' => 'adaptive', 'display' => 'summarized'],
761761 );
762762
from line 783
783783 client = Anthropic::Client.new
784784
785785 stream = client.messages.stream(
786 model: "claude-opus-4-8",
786 model: "claude-opus-5-5",
787787 max_tokens: 16000,
788788 # A plain hash like this one takes display:. The typed ThinkingConfigAdaptive class
789789 # spells it display_ (trailing underscore) to avoid shadowing Ruby's Kernel#display.
from line 810
810810<Accordion title="Full streaming event trace">
811811 ```sse Output
812812 event: message_start
813 data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-opus-4-8", "stop_reason": null, "stop_sequence": null}}
813 data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-opus-5-5", "stop_reason": null, "stop_sequence": null}}
814814
815815 event: content_block_start
816816 data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": "", "signature": ""}}
No line in this hunk matches that.