reasoning_effort field. The only supported value is currently "max".
K3 always reasons and may return
reasoning_content; more reasoning-effort levels are coming soon.Set the reasoning effort
Setreasoning_effort at the top level of the request:
reasoning_effort: "max" field.
- curl
- python
Stay compatible with OpenAI via reasoning_effort
If your code already uses OpenAI’sreasoning_effort field, you do not need to rename it; K3 currently accepts only "max". K3 always reasons and may return reasoning_content.
Fields
For multi-turn conversations and tool calls, K3 requires the complete assistant message returned by the API to be passed back to
messages as-is, including reasoning_content and tool_calls.
Notes
- Models differ in their support for
thinkingsub-fields and their defaults (for example,kimi-k2.6does not supportthinking.effort, andthinking.keepdoes not preserve historical reasoning by default). See the Model Parameter Reference; - Lower
effortlevels, once available, will reducereasoning_contenttoken consumption and response latency — a good fit for lightweight tasks such as classification, rewriting, and simple Q&A. For now,maxis the only available level.
Switching
effort currently does not affect prefix-cache hits. Thinking effort currently supports only the max level. Once more levels are available, switching levels may invalidate the cache, so it is still recommended to decide on the effort level before the conversation starts and avoid switching it mid-session.Related reading
- Kimi K3 API Tool Calling Best Practices: thinking-effort trade-offs in tool-calling scenarios
- Thinking Mode: per-model thinking behavior and Preserved Thinking
- Model Parameter Reference: parameter differences across models