Skip to content

effortParams

function effortParams(
dialect,
effort,
model?
): Record<string, unknown>;

Defined in: core/src/providers/openai.ts:270

Effort → the request fields THIS endpoint accepts.

One knob, three incompatible spellings, and the differences are not cosmetic:

  • On OpenRouter, “do not think” has no spelling that works on every model. GLM 5.3 Flash and gpt-5-mini answer every explicit off with 400 "Reasoning is mandatory for this endpoint and cannot be disabled.", MiMo v2.6 Flash takes one, and DeepSeek V4 Flash thinks at low and not with the field omitted. So none is said per model, from OPENROUTER_NONE, which also says why an unlisted model gets nothing. Naming a level raises it. The accepted values are low, high and max (medium and xhigh are accepted too, but our vocabulary has no use for them).
  • DeepSeek V4 defaults thinking ON on its own API, so none has to be an explicit refusal there. The same word is a different request on each dialect, and on OpenRouter on each model: the spelling belongs to the endpoint, never to the caller.
  • OpenAI takes reasoning_effort, and none is one of its values, not the absence of the field. GPT-5.1 both accepted none and made it the default; everything from GPT-5 back still defaults to medium. So sending nothing is NOT a way to say “do not think”: on every model released before 5.1 it means medium, and thinking tokens come out of the same budget as the answer. A capped turn then spends its whole allowance thinking and returns empty with finish_reason: "length".

An absent effort sends nothing on every dialect and for every model: the seam’s rule is that a knob the caller never touched is a knob the provider still owns. On OpenRouter that makes none and “never asked” the same request for every model outside OPENROUTER_NONE, and a different one for the models in it.

model is the id the request names. Without it, none on OpenRouter sends nothing, as it always has.

Parameter Type
dialect EffortDialect
effort "none" | "low" | "medium" | "high" | "max" | undefined
model? string

Record<string, unknown>