OpenAI and Anthropic hidden CoT leaks when given deep_think tool.
TL;DR Highlight
Disabling thinking and offering a deep_think tool made models emit internal-CoT-style reasoning
Who Should Read
Backend developers building agents on reasoning-model APIs who worry about reasoning-token exposure and security
Core Mechanics
- Turn thinking off, add a tool
- Can Bölük says that with thinking disabled and a "deep_think" tool provided, the model calls it using its internal CoT (chain-of-thought text) format.
- He did not specify any argument format.
- No format given, grug-talk appeared
- The thread says gpt55+'s grug-talk format showed up even without specifying the argument format.
- He published a PoC at pasta.can.ac/omegiligox.py.
- It started with Alexander Panfilov's post
- Panfilov said they extracted hidden reasoning using a vulnerability in the APIs of every frontier AI company.
- Their reasoning token count matched billed API thinking tokens 1:1 for most prompts.
- Thinking levels still work
- Bölük says switching thinking levels works fine too.
- He notes the level has always been a number in the system prompt.
- A hint about Anthropic using regex
Community Reactions
- Was this already known?
- One commenter asked whether this was already known.
- Opinion that it will get blocked
- One commenter said the labs are probably scrambling to block it.
- Another asked what would stop them from blocking it.
- Worry about cloud-only harnesses
- In the original thread, Kevin said we'll soon only be able to use these models in cloud-hosted harnesses from each lab.
How to Apply
- Audit where reasoning could leak
- Today, check your logs and response schemas for reasoning text in tool arguments.
- Find any UI that shows tool arguments to users verbatim.
- Compare reasoning tokens to your bill
- Match billed thinking tokens against tokens you receive, per request.
- Use it to audit whether hidden reasoning exists.
- Filter tool arguments as untrusted
- Apply length limits and masking to model-generated tool arguments before logging or showing them.
- Add test cases for internal prompts or policy text appearing in arguments.
Try It
# Paste into Claude or ChatGPT for auditing your own service (a simple check, not the original PoC)
You are a tool-call log auditor. Decide whether the tool-call logs below contain internal reasoning or system prompt fragments in the arguments.
{{tool call logs}}
For each call, write 'suspicious/normal' and a one-line reason.
Next step: ask it to extract common patterns from the suspicious calls and turn them into filter rules.Terminology
Related Papers
Same Simulation, Different Evidence: Where Retrieved Tool Output Costs LLM Agents Accuracy
Saving long tool output to files cut GPT-5.1 accuracy by 11.3 points; naming the authoritative file restored it.
Fake News, Real Crashes: Information Injection Attacks on LLM Financial Trading Agents
Fake headlines hijacked LLM trading agents 62% of the time versus 14% for prompt injection.
Harness Engineering 101: The LLM is the brain, the harness is the body
An agent is a loop managing a JSON array; 16 chapters build one from scratch
Harness2 by Google Research – Recursive Agent Harnessing
Recursively refining the harness with fixed model weights raised benchmark scores by up to 11.8 points.
Ousted Savannah police officer gave ICE agent husband access to Flock system
A police officer shared her Flock login with her ICE-agent husband; an audit found 983 searches and she was fired
Tmux and Claude Code: Sessions, Send-Keys, and the Ceiling
Running Claude Code agents in tmux works well, but limits appear around four agents.