Description
OpenCode generates generic reasoning variants (default/high/max) for Kimi K3 that use budget-token semantics rather than K3's native effort mechanism.
reasoningVariants() attempts to map max through anthropicEffort(), but the k3 API ID returns undefined. It then falls back to ProviderTransform.variants(base), which produces generic Anthropic variants:
high → thinking: { type: "enabled", budgetTokens: 16000 }
max → thinking: { type: "enabled", budgetTokens: 31999 }
K3 currently supports only effort max; low and high are not available yet. The default variant works because no effort is sent and Kimi maps null/undefined to max.
Expected behavior: Do not generate generic budget-token variants for K3. Only expose the native max effort variant, or rely on the default variant and its server-side max. Future effort levels should follow the capabilities declared in models.dev.
References:
Plugins
No response
OpenCode version
1.18.3
Steps to reproduce
- Authenticate with the built-in Kimi For Coding provider and refresh the model list.
- Select
kimi-for-coding/k3.
- Open the reasoning variant selector with
Ctrl+T.
- Observe that
default, high, and max are available, while the generated high and max options use Anthropic budgetTokens.
Screenshot and/or share link
No response
Operating System
macOS
Terminal
No response
Description
OpenCode generates generic reasoning variants (
default/high/max) for Kimi K3 that use budget-token semantics rather than K3's native effort mechanism.reasoningVariants()attempts to mapmaxthroughanthropicEffort(), but thek3API ID returnsundefined. It then falls back toProviderTransform.variants(base), which produces generic Anthropic variants:high→thinking: { type: "enabled", budgetTokens: 16000 }max→thinking: { type: "enabled", budgetTokens: 31999 }K3 currently supports only effort
max;lowandhighare not available yet. The default variant works because no effort is sent and Kimi mapsnull/undefinedtomax.Expected behavior: Do not generate generic budget-token variants for K3. Only expose the native
maxeffort variant, or rely on the default variant and its server-sidemax. Future effort levels should follow the capabilities declared in models.dev.References:
Plugins
No response
OpenCode version
1.18.3
Steps to reproduce
kimi-for-coding/k3.Ctrl+T.default,high, andmaxare available, while the generatedhighandmaxoptions use AnthropicbudgetTokens.Screenshot and/or share link
No response
Operating System
macOS
Terminal
No response