Posted by ko_pivot 8 hours ago
The model runtime recognizes these as special tokens. It can be configured using a chat template to replace these token with something else. This is how one provider is modifying the xml namespace, while llama.cpp and vllm would move the content between <think> and </think> tags to a separate field in the response JSON called `reasoning_content`.
The model can't introspect itself to know this, but the latest hybrid thinking models do think noticeably differently when prompted the right way between these tags, suddenly shifting to an extremely verbose mode of output that looks more like raw reasoning traces the earliest versions of reasoning models were showing
I have a prompt that used the original <antThinking> tag (it wasn't namespaced with 3.5). Every release eroded how steerable that output was and now 4 and up start spewing massive amounts of tokens in an extremely freeform manner that's also more effective
nano-banana/Gemini Flash 2.5 Image similarly does something like this: when prompted to think carefully will generally write a paragraph or two, but once coaxed a bit harder will suddenly output massive sprawling markdown formatted planning like the original un-masked thinking traces from Gemini Thinking.
It's like there's a sort of "mode collapse" for reasoning in these models that's going to continue getting more noticeable as providers lean harder into RL, which is ironic given how much ceremony there is around hiding reasoning traces in these APIs to avoid distillation
Glad it has a new acronym to prevent any confusion.