diff --git a/docs/content/advanced/model-configuration.md b/docs/content/advanced/model-configuration.md index df10b628ae..216e7e1de9 100644 --- a/docs/content/advanced/model-configuration.md +++ b/docs/content/advanced/model-configuration.md @@ -689,6 +689,18 @@ This is the load-time reasoning configuration. The orthogonal per-request `enabl - `reasoning_effort: "minimal" | "low" | "medium" | "high" | "xhigh" | "max"` enables thinking, unless the model config explicitly set `reasoning.disable: true` (an operator's explicit disable wins and is never re-enabled by a request). {{% /notice %}} +The `/v1/responses` endpoint accepts the same effort levels through `reasoning.effort`. +It also forwards request `metadata` to the backend, including `enable_thinking` overrides. + +```json +{ + "model": "qwen3", + "input": "Say hello", + "reasoning": { "effort": "none" }, + "metadata": { "enable_thinking": "false" } +} +``` + #### `reasoning_effort` as a chat-template kwarg `reasoning_effort` is also forwarded to the backend as a `chat_template_kwarg`, so models whose **jinja chat template** keys on it - e.g. gpt-oss (Harmony) or LFM2.5 - honor the **level**, not just the on/off `enable_thinking` flag. This matters for models that ignore `enable_thinking` entirely (LFM2.5 keeps emitting `` for `enable_thinking=false`, but respects `reasoning_effort`).