YouTube Summaries

← All summaries

Ultra Is Not a Reasoning Level

2026-07-14 Tue ⏱ 25 min t3dotgg

Theo dissects OpenAI's "Ultra" setting shipped with GPT-5.6, arguing it is badly misrepresented: Ultra appears in Codex/ChatGPT as though it were a reasoning level (alongside low through max) but is really a system-prompt toggle that tells the model to spawn many sub-agents — each running at max reasoning, recursively — which torches usage limits. He traces the pattern back to Anthropic's "Ultra Code" in Claude Code (which he thinks is implemented far better, via workflows), then walks through Codex's V1 vs V2 sub-agent designs and explains why Claude Code's programmatic workflows are the right model to copy.

What Ultra actually is

On the Codex/ChatGPT effort slider the levels are low, medium, high, extra-high (XHigh), max, and — wrongly placed at the end — ultra. Theo has repeatedly told OpenAI Ultra should never sit in that selector; they have since hidden the max and ultra options from the app slider and killed the purple gradient, apparent responses to his feedback. He uses Claude Code to illustrate: /effort there shows the same levels plus "Ultra Code," labeled underneath as "XHigh + workflows." Ultra Code is not a reasoning level — it is a skill (a markdown file appended to the system prompt) that triggers sub-agents. Crucially, Claude Code's Ultra Code defaults the parent to XHigh, not max.

Why Ultra is bad

Codex's Ultra sets the parent agent and every recursively spawned sub-agent to max reasoning. Max already burns up to ~2x the tokens of XHigh for only a 4–10% quality gain; Ultra multiplies that across near-infinitely recursive sub-agents. Codex's current sub-agent version does not let the parent set a lower reasoning level for its children, so once Ultra is on it propagates everywhere. Theo blew a full 5-hour limit in 20 minutes on Ultra + fast mode, burned a manual reset, and hit the limit twice in under an hour. This is worse now because OpenAI temporarily removed the 5-hour limit — previously a warning that only ~20–25% of the weekly quota was gone — so a single Ultra run can now nuke an entire week. He believes Ultra is the real reason people wrongly think 5.6 itself is inefficient.

Codex sub-agents: V1 vs V2

The Codex CLI (which powers the desktop app) is open source, so Theo had both 5.6 Soul and Claude Code read the code. V1 is a simple dispatcher: the root agent spawns sub-agents via tool calls, each gets limited summarized context, does one task, and returns a result the root summarizes. V1 is the finished, default implementation. V2 is an unfinished overhaul that the 5.6 models (Soul, Terra) now route to automatically via a multi_agent_version field in the models cache, regardless of user config, and it errors if V1 customizations exist. V2 problems Theo flags:

  • Path-based task naming (/root/research/tests) and no depth limit — infinitely nestable, though capped at four concurrent by default.
  • By default it shares the entire main-thread history with every sub-agent (he calls this "really stupid"): more context pollution and far higher cost; it also filters tool calls, busting cache. You can set the share amount (none, or a number), but the default is full history.
  • Mailboxes let agents send typed messages and follow-up tasks to each other; "waiting" now means waiting for a message, not for completion. Results route to the direct parent up the chain. Net effect: noisier, slower, and much more token-hungry, with no quality gain he could see.

The fix: Claude Code workflows

Theo's core claim is OpenAI copied the wrong half — the bad UX (disguising Ultra as an effort level) rather than the good implementation. Claude Code workflows are a programmatic way to define sub-agent orchestration as an actual JavaScript file: a meta block (name, description, phases), typed output schemas per phase, and prompts that can insert context via loops/maps. Phases run and await each other; a review phase can fan out parallel reviewers pinned to specific models and efforts (e.g. 5.6 Soul high, Terra, Fable 5 high), then a synthesis phase consumes their stringified JSON results. Because the phase count is fixed, workflows always terminate — unlike Ultra, which ends only when the agents decide to stop and can therefore run forever. It can still spawn many sub-agents within a phase (e.g. 72 fixes → 72 sub-agents) but is bounded overall.

Takeaways

For now, don't use Ultra. If you are here out of fear of falling behind, just wait — OpenAI ships fixes fast (many of his complaints were addressed within hours) and the defaults are already good. He praises Maria's mockup and notes even OpenAI folks (Tibo, Dominic, GDB) agree Ultra should be a side switch, not an effort level: "Ultra isn't an effort level. Ultra is a skill." He teases a follow-up on running 5.6 Soul directly as the model inside Claude Code ("Claudex"). Sponsor read: Firecrawl (web scraping to markdown/JSON, monitoring, MCP server).