
Making OpenClaw Use the Right Model for Each Task
OpenClaw picks a default model and uses it for everything - heartbeat checks, complex synthesis, quick status lookups, deep analysis. Every task costs the same. That's expensive and unnecessary. This post covers how to wire Kalibr into an OpenClaw agent so it routes each task to the right model automatically. If you run an OpenClaw deployment, this is probably the highest-ROI change you can make to your token spend. Why OpenClaw Defaults This Way OpenClaw is configured at the session level, not the task level. Your CLAUDE.md or session config sets one model, and that model handles whatever comes in. This makes setup simple, but it means: A heartbeat status check costs the same as a codebase analysis A simple "is this service up?" poll runs on the same model as "refactor this module" There's no mechanism to say "use cheap for low-stakes, use capable for high-stakes" Kalibr adds that mechanism. You query it before each task to get a routing recommendation, then pass that model to the Ope
Continue reading on Dev.to Python
Opens in a new tab



![[MM’s] Boot Notes — The Day Zero Blueprint — Test Smarter on Day One](/_next/image?url=https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1368%2F1*AvVpFzkFJBm-xns4niPLAA.png&w=1200&q=75)