Kimi K3 vs K2: What Changed, What Broke, and When to Upgrade Your Routing
Moonshot AI launched Kimi K3 on July 16, 2026 — a 2.8T-parameter flagship with a 1M-token context window, new reasoning_effort parameter, and $3/$15 pricing. We compare K3 against the K2 family (K2.6 and K2.7 Code) on API surface, pricing, benchmarks, and routing, and give you a concrete migration checklist.
Kimi K3 landed on July 16, 2026. It is Moonshot AI's new flagship — a 2.8-trillion-parameter Mixture-of-Experts model with a 1M-token context window, a new reasoning_effort parameter that replaces the K2-era thinking object, and pricing at $3.00 / $15.00 per million input / output tokens. If you are routing production traffic through Moonshot's API today, the upgrade is not a drop-in swap: the reasoning control surface changed, the context window quadrupled, and the price jumped roughly 3× over K2.6.
We wrote this comparison because K3's launch broke three things in our own testing pipeline within an hour — all related to the thinking → reasoning_effort parameter change. This post covers exactly what differs, what breaks, when K3 is worth the cost premium, and how to keep K2.6 or K2.7 Code running alongside K3 with a fallback configuration.
Sources: Kimi K3 Pricing, retrieved 2026-07-17; Model Parameter Reference, retrieved 2026-07-17; BenchLM Kimi K3 Analysis, retrieved 2026-07-17; Artificial Analysis Kimi K3, retrieved 2026-07-17.
TL;DR Comparison Table
| Feature | Kimi K3 | Kimi K2.6 | Kimi K2.7 Code |
|---|---|---|---|
| Parameters | 2.8T MoE (16/896 experts active) | 1T MoE (8/384 experts active) | ~1T MoE (K2.6-based, code-tuned) |
| Context window | 1,048,576 tokens (1M) | 262,144 tokens (256K) | 262,144 tokens (256K) |
| Reasoning control | reasoning_effort ("max" only) | thinking object (enabled/disabled) | thinking object (enabled + keep:"all" only) |
| Input pricing | $3.00 / 1M tokens | ~$1.14 / 1M tokens | ~$1.14 / 1M tokens |
| Cached input | $0.30 / 1M tokens | Not published separately | Not published separately |
| Output pricing | $15.00 / 1M tokens | ~$5.40 / 1M tokens | ~$5.40 / 1M tokens |
| tool_choice | auto / none / required | auto / none (no required) | auto / none (no required) |
| temperature | Fixed 1.0 | Fixed 1.0 (thinking) / 0.6 (non-thinking) | Fixed 1.0 |
| Multimodal | Text + image input | Text + image input | Text only |
| Model ID | kimi-k3 | kimi-k2.6 | kimi-k2.7-code |
Sources: Kimi K3 Pricing, retrieved 2026-07-17; Model Parameter Reference, retrieved 2026-07-17.
What Changed: The Full API Diff
Reasoning Parameter: thinking → reasoning_effort
This is the breaking change. K2.6 uses a thinking object in the request body:
# K2.6 — thinking mode ON
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[{"role": "user", "content": "Explain quicksort"}],
extra_body={"thinking": {"type": "enabled"}},
)
K3 drops the thinking object entirely and uses a top-level reasoning_effort field:
# K3 — reasoning always on, effort level set explicitly
response = client.chat.completions.create(
model="kimi-k3",
messages=[{"role": "user", "content": "Explain quicksort"}],
extra_body={"reasoning_effort": "max"},
)
Key differences:
- K3 always reasons. There is no
disabledmode. If you relied onthinking.type: "disabled"for faster, cheaper K2.6 responses, K3 does not offer that option. - Only
"max"is supported today. Moonshot says more levels are coming, but for now every K3 call runs at maximum reasoning effort. - Passing
thinkingto K3 returns an error. Your existing K2.6 code will fail if you swap the model ID without removing thethinkingparameter.
Source: Model Parameter Reference, retrieved 2026-07-17.
Context Window: 256K → 1M
K3 supports 1,048,576 tokens — four times K2.6's 262,144. Pricing is flat across the full window (no context-length tiers), which simplifies billing but means long-context calls at $3.00 input + $15.00 output can get expensive fast.
Tool Calling: required Now Supported
K3 adds tool_choice: "required" — K2.6 and K2.7 Code only support auto and none. If you have been working around the missing required mode with prompt engineering, K3 lets you enforce tool calls natively.
K3 also introduces two new capabilities not available in K2:
- Dynamic tool loading — load tools at inference time
- Tool choice constraints — fine-grained control over which tools the model can invoke
Source: Kimi K3 Pricing page — Model Description, retrieved 2026-07-17.
Fixed Parameters
Both K3 and K2.6/K2.7 Code lock most sampling parameters. K3 fixes temperature at 1.0, top_p at 0.95, n at 1, and both penalty parameters at 0. Passing any other value returns an error. This is unchanged from K2.6 in thinking mode, but K2.6 in non-thinking mode used temperature: 0.6 — a distinction that no longer exists since K3 always reasons.
Pricing Comparison
| K3 | K2.6 | K2.7 Code | Cost Ratio (K3 / K2.6) | |
|---|---|---|---|---|
| Input (cache miss) | $3.00 | ~$1.14 | ~$1.14 | ~2.6× |
| Input (cache hit) | $0.30 | — | — | — |
| Output | $15.00 | ~$5.40 | ~$5.40 | ~2.8× |
K3 is roughly 2.6–2.8× more expensive than K2.6 on a per-token basis. However, K3's automatic context caching at $0.30 per million cached tokens can offset this significantly for multi-turn conversations or large system prompts. If 70% of your input tokens hit cache, your effective input cost drops to ~$1.11 — comparable to K2.6.
For context, K3's pricing positions it in the same band as Claude Opus 4.8 ($15/$75 but with a larger output premium) and below GPT-5.6 Sol. It is substantially more expensive than DeepSeek V4 ($0.50/$2.00) or Qwen3.7-Max (¥2/¥8 per million tokens).
Sources: Kimi K3 Pricing, retrieved 2026-07-17; Artificial Analysis Kimi K3, retrieved 2026-07-17.
Benchmark Comparison
All benchmark data below is vendor-reported by Moonshot AI unless otherwise noted. Independent verification is still early — Artificial Analysis and Vals published initial evaluations on July 16, 2026.
Coding
| Benchmark | K3 | K2.6 | Notes |
|---|---|---|---|
| DeepSWE | 67.5% | — | K3 first reported |
| FrontierSWE | 81.2% | — | K3 first reported |
| Terminal-Bench 2.1 | 88.3% | 66.7% (v2.0) | +21.6 pp; different benchmark versions |
| Kimi Code Bench 2.0 | 72.9% | 68.2% (v1.0) | +4.7 pp; different benchmark versions |
| Program Bench | 77.8% | — | K3 first reported |
| SWE Marathon | 42.0% | — | K3 first reported |
Agentic and Knowledge Work
| Benchmark | K3 | K2.6 | Notes |
|---|---|---|---|
| BrowseComp | 91.2% | — | Context compaction at 300K; 90.4% at full 1M |
| GDPval-AA v2 (Elo) | 1668 | 1190 | +478 Elo (Artificial Analysis) |
| AA-Briefcase (Elo) | 1548 | — | K3 first reported |
| AutomationBench-AA | 52.7% | — | Current board leader per AA |
Independent Evaluations
Artificial Analysis rates K3 at 57.11 Intelligence Index, 76.24 Coding Index, and 50.07 Agentic Index — placing its intelligence "near Claude Opus 4.8 and GPT-5.5, behind Claude Fable 5 and GPT-5.6 Sol." Output speed is measured at 62 tokens/second with 1.99s time to first token.
Vals Index v1.2 scores K3 at 74.7 overall. LMArena places K3 at #1 on the Frontend Code Arena with 1679 Elo.
Sources: BenchLM Kimi K3 Analysis, retrieved 2026-07-17; Artificial Analysis Kimi K3, retrieved 2026-07-17.
When to Stay on K2.6 / K2.7 Code vs. Switch to K3
Pick K3 if:
- You need 1M-token context. K2.6 caps at 256K. If your use case involves large codebases, long documents, or extensive conversation history, K3 is the only Kimi option.
- You need
tool_choice: "required". K2.6 does not support it. - You prioritize frontier coding quality. K3's coding benchmarks show substantial improvements over K2.6, particularly on long-horizon agentic coding tasks.
- You need the strongest agentic reasoning. The GDPval-AA Elo jump from 1190 (K2.6) to 1668 (K3) is enormous.
Stay on K2.6 if:
- Cost matters more than peak quality. K2.6 is 2.6–2.8× cheaper. For high-volume routing where K2.6-quality reasoning is sufficient, the savings add up.
- You need non-thinking mode. K2.6 supports
thinking.type: "disabled"for faster, cheaper completions without reasoning chains. K3 always reasons. - Your code uses the
thinkingparameter. Until you refactor, K2.6 is the path of least resistance.
Stay on K2.7 Code if:
- You need a code-specialized model at K2 prices. K2.7 Code is tuned for coding agent workflows and is cheaper than K3.
- You use Preserved Thinking. K2.7 Code requires
keep: "all"thinking mode, which preserves reasoning_content across multi-turn conversations — a pattern not yet documented for K3.
OpenAI-compatible means a provider exposes a chat-completions endpoint whose request and response shape matches the OpenAI API contract closely enough that an unmodified OpenAI SDK call works against it after swapping three values: API key, base URL, and model name. The minimum surface in practice is POST /v1/chat/completions with messages, model, and an OpenAI-shaped streaming response.
Migration Checklist: K2.6 → K3
- Change the model ID:
kimi-k2.6→kimi-k3 - Remove the
thinkingparameter. K3 does not accept it. Remove anyextra_body={"thinking": {...}}from your calls. - Add
reasoning_effort. Passextra_body={"reasoning_effort": "max"}— this is the only value currently supported. - Handle
reasoning_contentin responses. K3 may returnreasoning_contentin assistant messages. If your code parses or stores assistant messages, ensure it handles this field. - Update
tool_choiceusage. If you previously could not userequired, you now can. If you were passingrequiredand catching errors, remove the error handling. - Adjust cost budgets. Expect ~2.8× higher output costs. Factor in cache hit rates — if you have repetitive system prompts or contexts, K3's $0.30 cached-input rate helps.
- Test context length handling. K3 supports 1M tokens. If your truncation logic was tuned for 256K, update it.
# Before (K2.6)
response = client.chat.completions.create(
model="kimi-k2.6",
messages=messages,
extra_body={"thinking": {"type": "enabled"}},
)
# After (K3)
response = client.chat.completions.create(
model="kimi-k3",
messages=messages,
extra_body={"reasoning_effort": "max"},
)
Routing K3 Through TheRouter
TheRouter currently routes multiple Kimi K2 models — including moonshot/kimi-k2.6 and moonshot/kimi-k2.7-code — through the Moonshot provider. K3 routing support depends on when the model is added to the routing table.
If you are using TheRouter's model fallback configuration, you can set up K3 as the primary model with K2.6 as fallback. This lets you try K3 for quality-sensitive tasks while keeping K2.6 as a cost-effective backup:
# Example fallback config (conceptual)
primary: kimi-k3
fallback:
- kimi-k2.6
- kimi-k2.7-code
TheRouter routes OpenAI-compatible requests through configured providers — the base_url and model-ID mapping handle the rest. When K3 is available in the routing table, you switch model IDs and TheRouter handles the upstream call.
Note: K3 routing availability in TheRouter depends on when the model is added to the models configuration. Check the Moonshot provider page for current model availability.
Open Weights: K3 Weights Coming July 27
Moonshot announced that K3 full model weights will be released by July 27, 2026. K2.6 is already available as open weights on Hugging Face. Once K3 weights ship, self-hosting becomes an option — though serving a 2.8T MoE model requires substantial infrastructure compared to K2.6's 1T.
FAQ
Q: Can I use K2.6 and K3 in the same application?
Yes. They are separate model IDs (kimi-k2.6 and kimi-k3) on the same API endpoint (https://api.moonshot.ai/v1). You can route different requests to different models based on your needs.
Q: Will K2.6 be deprecated now that K3 is out? Moonshot has not announced a K2.6 deprecation date as of July 17, 2026. Given the different price points and use cases, both models may coexist for some time.
Q: Is K3 available on DashScope or other Chinese cloud platforms?
As of launch, K3 is available via the Moonshot API at platform.kimi.ai. Third-party availability (DashScope, SiliconFlow, etc.) has not been announced.
Q: Why does K3 only support reasoning_effort: "max"?
Moonshot says more effort levels are coming. The current limitation means K3 always runs at maximum reasoning intensity — there is no way to reduce reasoning for faster or cheaper responses.
This comparison is current as of July 17, 2026. K3 launched one day before publication — independent benchmarks and third-party availability are still emerging. We will update this post as more data becomes available.