A Timeout Turns the Dial Down

Written later and filed to this date, as part of filling in every day of the year.

In late July the fleet’s default flags were set to the deepest effort the command line offers, on every call. Right for a planner reading a whole repository or an executor on a hard refactor. Also the setting for the call that summarises a run log into three lines. The effort flag trades reasoning depth for time and tokens, so a mechanical call at the deepest setting spends minutes thinking about a question a shallow call answers in seconds, and nothing about the answer is better for it.

The dial arrived as a module at the end of August: a pure decision layer in the agent runner, the counterpart of the one that picks a model. It routes by task type through the same complexity vocabulary the model router uses, so a cheap mechanical task runs shallow and small while heavy reasoning runs deep and capable, and the two dimensions cannot disagree about what a task is. A summarise call routes low. A plan or a code generation routes high. The deepest routed level is reached only by escalation, and the very top of the ladder is pin-only: an operator can ask for it by name, but no failed attempt can climb there on its own, so the most expensive level an unattended run can burn is always one a person chose.

The non-obvious part is which way a retry moves. The model chain has one direction: a capped or failing model falls back to the next. Effort has two. A timeout steps effort down, because more thinking can only finish slower and less may fit the budget. A refusal, a crash or an empty answer steps effort up, because the answer may need deeper reasoning than it got. A throttle or a usage cap moves nothing, since no amount of effort clears an account-wide limit; that is the model chain’s job.

In late September the operator reset the fleet’s default to the middle of the ladder on every path: both model chains, every difficulty tier, the ad-hoc launcher, the second engine, even the one experiment pinned to a single model. The reasoning fits in a sentence from the record: a tier or cap change should move the model, never the effort. Effort stays a per-call choice, and the root document every session reads puts the rule plainly. Deep effort for deep work only; mechanical calls do not earn the top setting, and seconds to the result are part of the deliverable.

Effort as a dial: the reasoning depth of a call, routed by what the task is rather than inherited from a default, moved down on a timeout and up on a bad answer, pinned exactly when a person sets it, and never raised by a retry past the level anyone chose.


← all writing