You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Assistant: Support defaultThinkingEffort in custom model definitions (providers.json) #116
When configuring custom language models in ~/.posit/ai/providers.json, users can declare available thinking levels via thinkingEffortLevels, for example:
However, there is currently no way to declare a default thinking effort for a model (e.g. "defaultThinkingEffort": "high").
Impact:
Initial conversation state defaults to null: When a new conversation begins, the session state initializes thinkingEffort: null.
Missing reasoning payload: Unless the user manually clicks the thinking effort selector in the UI for every new conversation, the outgoing request to the model provider omits the reasoning parameter entirely (reasoningEffort is not included in the payload).
Suboptimal performance for reasoning models: Controllable reasoning models (such as o-series, GPT-5/6, Gemini 2.5/3.x, Qwen, etc.) fall back to zero or minimal reasoning effort by default, defeating the purpose of configuring a reasoning model.
Proposed Solution:
Add support for an optional defaultThinkingEffort property in model definitions within providers.json:
When a conversation selects this model, Positron Assistant should automatically initialize the conversation's thinkingEffort with the declared defaultThinkingEffort instead of null.
Thanks for the detailed write-up, especially the concrete providers.json example! I agree a per-model default thinking effort is worth supporting, and we'll track the work here.
One refinement to the problem description before scoping is that on current builds, a new chat does not actually start with a null effort in Assistant state. The work needed here spans the ai-lib submodule and Assistant core. We'll need to decide a few things:
Should a defaultThinkingEffort that is not in the model's thinkingEffortLevels fail validation, normalize to the nearest level, or be ignored? Validation probably belongs at resolve time rather than schema time, because overrides can change a model's levels after the custom model definition.
Does a model-declared default apply when the user switches models mid-conversation, or only at conversation creation?
Activity
juliasilge commentedon Sep 14, 2026
Thanks for the detailed write-up, especially the concrete
providers.jsonexample! I agree a per-model default thinking effort is worth supporting, and we'll track the work here.One refinement to the problem description before scoping is that on current builds, a new chat does not actually start with a null effort in Assistant state. The work needed here spans the
ai-libsubmodule and Assistant core. We'll need to decide a few things:defaultThinkingEffortthat is not in the model'sthinkingEffortLevelsfail validation, normalize to the nearest level, or be ignored? Validation probably belongs at resolve time rather than schema time, becauseoverridescan change a model's levels after the custom model definition.