Reasoning Router: ~40% fewer tokens on easy tasks, routes effort per step without breaking prompt cache
I built an effort router for Codex that picks the reasoning effort for each request without breaking the prompt cache, so I can stop leaving GPT-6 Astra on high for everything. When I ran a few SWE-bench tasks, medium only solved a hard pytest bug 1 out of 5 times, and high spent way more tokens than it needed on an easy fix. The router is a local proxy where a decision model (e.g. Jev) picks the effort. In my eval (run through the OpenCode version of the same router), it used about 40% fewer output tokens than high on the easy fix and still solved it every time, and it stayed on high for the hard bug and solved it all 5 times. Changing reasoning effort on the request normally breaks the cache, so it sends the change as a mid-conversation effort update instead and nothing earlier in the conversation changes. The cache keeps working when the effort switches. It's one model on a small set of tasks, so treat it as a sanity check. The eval is in the repo with the code. github.com/robertn702/reasoning-router