Kimi K3’s underused capabilities are not the ones getting written about. Coverage since the July 2026 launch has largely centred on Agent Swarm, while the three surfaces that change what a team can actually build — a 1,048,576-token native context window, image and video input handled inside the same model, and a three-value reasoning-effort dial — sit untouched in most stacks we see. They are also the three surfaces where the cost model is easiest to get badly wrong.
This is deliberately not a Swarm post. If you want the decision framework for when parallel subagents pay for themselves, that lives in our guide to which work actually parallelises. Everything below is about the capability surface you get without fanning out at all — the plain single-agent model, pointed at workloads most teams never try.
We cover what the effort dial does and why its default differs between two Moonshot surfaces, the cache-invalidation trap that makes casual effort-switching expensive, the arithmetic of a 1M-token turn on published list prices, what native vision accepts and what it does not, and the limits Moonshot itself publishes about long, autonomous sessions. Where a number is the vendor’s own, we say so.
- 01The effort dial is the cost lever, not the model choice.reasoning_effort accepts low, high and max. K3 always reasons — thinking cannot be switched off at any setting. The parameter only sizes the hidden chain-of-thought budget before the visible answer.
- 02Two Moonshot surfaces ship two different defaults.The international OpenPlatform Chat Completions API defaults to max; the managed Kimi Code CLI service defaults to high. If you never set the parameter, which default you inherited depends on how you connected.
- 03Switching effort mid-session throws away your context cache.Moonshot's Kimi Code documentation states that switching reasoning effort invalidates the context cache, forcing a re-prefill — which forfeits the vendor-stated 90%-plus cache-hit rate exactly when you were trying to cut cost.
- 04Reasoning tokens bill as output, so deep runs cost real money.K3's standard list has one output rate, $15.00 per 1M tokens, and no separate reasoning-token line. Because thinking is always on, the hidden trace consumes that same budget before you see a word of the answer.
- 05Native vision is an input format, and documents are its best case.Seven image formats and nine video formats go into the same model as text. On Moonshot's own eval suite, K3's strongest published vision result is document-image understanding — the closest proxy for reading a scanned contract as a picture.
01 — The Unused SurfaceThree capabilities that ship with every K3 call and almost nobody uses.
Kimi K3 is a Stable LatentMoE model — 2.8 trillion total parameters with 104 billion active per token, drawn from 896 experts (16 active per token plus 2 shared), according to the Hugging Face model card. It has been hosted since July 16, 2026, with open weights published on July 27 under a custom Kimi K3 licence that is not OSI-approved. The commercial-revenue gate on those weights is a real constraint for anyone reselling inference; we cover it separately in our breakdown of K3’s open-weights licence and its commercial-revenue threshold, and the architecture background sits in the original release coverage.
What matters operationally is narrower than the architecture. Three things arrive with every API call, and in our reading of how teams actually configure K3, all three are routinely left at defaults or ignored entirely.
1M native context
Not a retrieval wrapper and not a sliding window — the window is native to the model. The catch is commercial rather than technical: Moonshot's Kimi Code plan tiers gate the full 1M window to Allegretto and above, with a fixed K3-256k variant for Moderato.
Native vision
Text, image and video tokens run through one architecture rather than an adapter bolted onto a text model. Seven image formats and nine video formats are accepted, with video routed through the Files API rather than inline base64 when it gets large.
Reasoning-effort dial
Three values, one parameter, and the single largest per-call cost variable you control. Thinking cannot be disabled at any setting — the dial sizes the hidden trace, it does not remove it.
Note the shape of that list. Two of the three are capabilities you reach for when the workload demands it. The third is a configuration you set once and then, if the documentation is right, should leave alone for the rest of the session. That asymmetry is the whole operational story of this post.
02 — Effort TiersOne parameter, three values, and two different defaults.
The reasoning_effort parameter accepts low, high and max. Per Moonshot’s API quickstart, K3 always reasons: there is no setting that turns thinking off, only settings that change how much of it happens before the model commits to a visible answer. That is a meaningful difference from models where a non-thinking mode exists as a cheap fallback — with K3, the floor is still a reasoning run.
The tiers did not all arrive together. At the K3 launch on July 17, 2026, Moonshot’s own blog stated that only max was supported, with low- and high-effort modes to follow in subsequent updates. Standard and High appeared in the Kimi Code documentation on July 18 — one day later. If your integration was written against launch-day material, it may still be pinned to the only value that existed at the time.
Standard in the consumer UI
Conversational replies, quick document summaries, simple coding queries — the cases where waiting on a long trace costs you more than the extra depth is worth. Described this way in Moonshot's documentation and the reporting on it.
Bounded deliberation
Debugging a defined function, summarising a long document, structured analysis. Meaningful reasoning with a bounded budget. This is the default you inherit if you came in through the managed Kimi Code service rather than the raw API.
Full compute expenditure
Hard coding tasks and long-horizon agentic work — and the setting every published K3 benchmark was run at, which is worth remembering when you compare a benchmark table against your own low-effort results.
One more configuration detail worth knowing before you tune anything: K3’s sampling parameters are fixed and not API-configurable. Temperature sits at 1.0, top-p at 0.95, n at 1, and both presence and frequency penalties at 0, per the platform quickstart. If your prompt-engineering playbook leans on temperature control for determinism, that lever is not available here — the effort dial and your prompt are what you have.
03 — The TrapSwitching effort mid-session throws away your cache.
This is the detail that makes the effort dial non-trivial, and it is almost never mentioned in coverage that treats reasoning_effort as a one-line config toggle. Moonshot’s Kimi Code documentation is explicit about what happens when you change the value part-way through a session.
"Switching reasoning effort invalidates the context cache you've built up, so context that would have hit the cache must be re-prefilled."— Kimi Code documentation, July 18, 2026
To see why that matters, look at what the cache is worth. Moonshot states that its Mooncake disaggregated inference architecture achieves a cache hit rate above 90% on coding workloads. On the standard API list, a cache hit costs $0.30 per 1M input tokens and a cache miss costs $3.00 per 1M — a tenfold difference on the input line. A session running at a 90%-plus hit rate is not a nice-to-have optimisation; it is the reason the input side of the bill is survivable at all when your prompt is measured in hundreds of thousands of tokens.
The failure mode almost writes itself. A long session is running hot at max, the bill looks alarming, someone drops the effort to high to economise — and the next turn re-prefills the entire accumulated context at cache-miss rates. The cost-cutting move triggers the single most expensive event available in the session. Moonshot’s own guidance is the correct one: choose an effort level for the session and hold it, rather than tuning it mid-stream.
The practical discipline that follows is to decide effort at the same moment you decide the workload, not after the first invoice lands. If you genuinely need a different tier, start a fresh session for it and accept one cold prefill deliberately, rather than paying for an unplanned one in the middle of an existing conversation. Our walkthrough of the Kimi Code setup and plan-tier behaviour goes further into how the caching layer behaves across sessions.
04 — Cost ArithmeticWhat a 1M-token turn actually costs — and where the money goes.
There is no single honest answer to “what does a 1M-context run cost on K3?”, because the answer swings by roughly an order of magnitude depending on your cache-hit rate and how long the reasoning trace runs. What you can do is state the formula and read the range off it. Every figure below is computed from the standard Kimi API list rates published on Moonshot’s pricing page at the time of writing: cache-hit input $0.30 per 1M tokens, cache-miss input $3.00 per 1M tokens, output $15.00 per 1M tokens. These are list prices on the standard surface — not batch rates, not a plan-tier allowance, and not a third-party router’s quote.
The formula for one turn with a full 1,000,000-token prefill, where h is the fraction of that prefill served from cache:
input = (h × $0.30) + ((1 − h) × $3.00) and output = output tokens ÷ 1,000,000 × $15.00
The critical term is the one people forget. K3’s standard list shows a single flat output rate with no separate, cheaper reasoning-token line — and because thinking is always on, the hidden trace is billed at that same $15.00 per 1M before the visible answer starts. Reporting on Moonshot’s documentation has made the same point directly: every request runs a reasoning trace first, and those reasoning tokens bill as output. On a deep run, the thinking can cost more than the answer.
| Session state | Cached fraction (h) | Input, 1M prefill | Output | One-turn total |
|---|---|---|---|---|
| Modest trace — 20,000 output tokens = $0.30 | ||||
| Cold first turn | 0% | $3.00 | $0.30 | $3.30 |
| Partially warm | 50% | $1.65 | $0.30 | $1.95 |
| Warm — Moonshot-stated coding rate | 90% | $0.57 | $0.30 | $0.87 |
| Very warm | 95% | $0.435 | $0.30 | $0.735 |
| Deeper trace — 60,000 output tokens = $0.90 | ||||
| Cold first turn | 0% | $3.00 | $0.90 | $3.90 |
| Warm — Moonshot-stated coding rate | 90% | $0.57 | $0.90 | $1.47 |
| The effort switch — warm prefill discarded, re-runs cold | ||||
| Turn before the switch | 90% | $0.57 | $0.90 | $1.47 |
| Turn after the switch | 0% | $3.00 | $0.90 | $3.90 |
Two readings fall straight out of the arithmetic. First, the input line collapses as the cache warms: $3.00 cold against $0.57 at a 90% hit rate is a 5.3× reduction on that line alone. Second, and less obvious, the output line becomes the dominant term precisely when you have optimised everything else. At a 90% hit rate with a 60,000-token trace, output is $0.90 of a $1.47 turn — the majority of the bill is thinking you never read. That is the honest reason 1M-context runs on K3 are expensive: not the window, but what the model does inside it.
The switch rows make the trap concrete. Dropping the effort level mid-session takes a $1.47 turn to $3.90 — roughly 2.65× — because the discarded prefill has to be paid for again at cache-miss rates before the cheaper trace can save you anything. Whatever you save on the output line, you have already spent several times over on the input line. Treat these as illustrative arithmetic on list prices rather than a measured bill; your real prefill will rarely be exactly a million tokens, and your real trace length is not something you set directly.
05 — Native VisionVision is an input format, not a plugin.
K3’s vision path runs through MoonViT-V2, a 401-million-parameter encoder integrated so that text, image and video tokens are processed within one architecture rather than handed off to a separate model. Practically, that means you are not choosing between a text model and a vision model — you are choosing what to put in the message.
The input contract has specifics worth reading before you build anything. Images are accepted in seven formats — JPEG, PNG, GIF, WebP, BMP, HEIC and HEIF — and SVG is explicitly not supported. Vision messages must send content as an array of objects rather than a plain string, and public image URLs are not accepted: images have to be base64-encoded or referenced through an uploaded-file handle. Teams that assume they can pass a CDN link hit that wall on day one.
Accepted image types
JPEG, PNG, GIF, WebP, BMP, HEIC and HEIF. SVG is explicitly unsupported — rasterise vector assets before sending them. Content must be an array of objects, and public URLs are rejected in favour of base64 or an uploaded-file handle.
Native video input
MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV and 3GPP, uploaded through the Files API and referenced by file handle in the message. Large videos must take the upload path rather than inline base64.
Moonshot's own video guidance
For video, vendor guidance recommends not exceeding FHD (1920x1080): higher resolutions raise token cost and processing time without improving understanding quality. No equivalent ceiling is published for still images. Image and video tokens are calculated dynamically from content rather than charged per item, and an estimate-tokens API exists to check consumption before you run the request.
Moonshot’s own launch material points at two workload shapes that most teams have not tried. The first is vision in the loop: iterating between generated code and live screenshots to debug and refine UI, game and CAD work — the model sees the rendered result rather than reasoning about the source alone. The second is timeline-shaped editorial work; Moonshot describes K3 editing its own teaser video from 56 source clips, handling clip selection, motion-matched cuts, frame-accurate beat synchronisation, audio processing and multiple rounds of revision. That is the vendor’s own demonstration, not an independent evaluation, and it should be read as a capability claim rather than a benchmark.
"Kimi K3 excels at motion design, animation, and video editing because its native multimodal architecture understands text, images, and video within the same model."— Moonshot AI, Kimi K3 tech blog, July 17, 2026
06 — Documents As ImagesThe strongest published vision result is the one nobody quotes.
Coverage of K3’s vision capability tends to quote MMMU-Pro or PerceptionBench, where the model sits mid-pack. The score that matters for the workload most agencies and operations teams actually have — piles of scanned contracts, invoices, forms and reports — is OmniDocBench, which measures document-image understanding. On Moonshot’s published table, K3 records 91.1 there, ahead of all four comparison models.
Before reading anything into the chart below: every one of these figures comes from Moonshot’s own eval suite, run at max effort, and none of it has been independently replicated. Open weights only shipped on July 27, 2026, so community reproduction was barely possible by the time of writing. Treat the whole table as vendor-reported.
K3 vision scores vs Fable 5, GPT-5.6 Sol, Opus 4.8 and GPT-5.5 · vendor-reported
Source: Moonshot AI's own eval suite, Kimi K3 tech blog — vendor-reported, not independently replicatedThe honest summary is that K3 is competitive on vision rather than dominant. It leads on document images and on both video benchmarks, ties on the hardest visual-reasoning set, and trails on chart reasoning, visual maths, multi-discipline questions, atomic visual perception and forced-answer visual QA — the last of which is the widest gap in the published table, 51.0 against Fable 5’s 56.7. One further caveat belongs on the record: PerceptionBench is Moonshot’s own in-house benchmark focused on atomic visual perception, not a third-party standard, so it should never be cited as independent evidence for or against anyone.
Our reading of the pattern is that the document-image lead is the interesting part, and it is interesting for a structural reason. Moonshot’s launch material includes an evaluation condition in which the model is given a full PDF corpus rendered entirely as images with no machine-readable text available — forced to read documents visually rather than take an OCR or text-extraction shortcut. That is a deliberate stress test of exactly the pipeline most enterprise document workflows are built on, and it is the capability worth trialling first if you have a scanned-archive problem. Pair it with the effort dial and the cost arithmetic above, and a document-triage pipeline becomes a tractable build rather than an experiment.
07 — Long-Context RealityA million tokens is not a context strategy.
The most common mistake with a 1M window is treating capacity as retrieval. They are different engineering claims, and the gap between them predates K3 by years. The foundational work here is Liu et al.’s 2023 paper on how language models use long contexts, which found that performance on multi-document question answering and key-value retrieval is highest when the relevant information sits at the very beginning or the very end of the input, and degrades substantially when it sits in the middle — a pattern that replicated across six model families, including models explicitly built and marketed for long context.
K3 does not ignore the problem. Its architecture departs from standard full attention with Kimi Delta Attention, a hybrid design that interleaves linear and full attention to reduce key-value cache overhead at long context, plus Attention Residuals that retrieve depth-axis representations selectively rather than uniformly. Those are real engineering responses to a real constraint.
The most telling evidence, though, is a footnote in Moonshot’s own benchmark table. For the BrowseComp agentic-retrieval condition, Moonshot reports one score under a context-compaction strategy triggered at 300K tokens, and separately states that when evaluated with a 1M-token context window and no context management, K3 achieves 90.4. The vendor is running the comparison because context management — not raw window size — is the variable that moves the result. If Moonshot treats compaction as a live engineering choice at 300K, so should you. Retrieval quality, chunking, ordering and compaction remain your job; the window just raises the ceiling on how much you are allowed to get wrong.
08 — Vendor CaveatsMoonshot publishes two limitations that matter most in long sessions.
Both of the limitations in the K3 tech blog bite hardest in exactly the operating mode this post is recommending: long, autonomous, single-agent runs over a large context. Neither is a defect so much as a constraint on how you wire the harness.
"Sensitivity to thinking history. K3 was trained in the preserved thinking history mode. If the agent harness fails to pass back all the historical thinking content as required... generation quality may become highly unstable."— Moonshot AI, Kimi K3 tech blog, Limitations section
The operational consequence is specific: use a harness with verified compatibility, and do not switch an in-flight session over to K3 from another model. A conversation that accumulated its history under a different model will not carry the thinking content K3 was trained to expect. Combined with the cache-invalidation rule from section 03, a clean pattern emerges — pick the model, pick the effort level, then leave both alone for the duration.
The second published limitation is excessive proactiveness. Because training emphasised long-horizon tasks, Moonshot notes that K3 may make unexpected decisions on the user’s behalf when it hits minor issues or ambiguous intent. The vendor’s own recommendation is to add explicit constraints in the system prompt or an AGENTS.md file when you need bounded behaviour. For anyone running unattended overnight jobs, that is not optional polish — it is the difference between a long run you can review in the morning and one you have to unpick.
09 — Decision GuideMatching the workload to the effort level — once, at the start.
Because you cannot economically change effort mid-session, the choice has to be made when you scope the job. The four archetypes below cover most of what teams point K3 at, mapped to the tier the documentation describes for that shape of work and to the capability that supports it.
Long-document work at 1M context
Set max at the start and hold it. This is where the reasoning trace earns its cost, and where a cold prefill of a million tokens is a one-time $3.00 on standard list rates rather than a recurring charge — provided nothing invalidates the cache. Budget for output dominating the bill.
Document-image triage
The OmniDocBench result is the strongest published evidence for this shape of work, and Moonshot's own no-machine-readable-text evaluation condition suggests the pipeline was designed for it. Start at high, sample the output against ground truth, and only escalate to max if accuracy demands it.
Visual QA and vision in the loop
Iterating between generated code and rendered screenshots, or reviewing a screen recording of a broken flow. Keep screen recordings at or below FHD, which is where vendor guidance caps video resolution, use the estimate-tokens API before large batches, and route video through the Files API rather than base64.
Quick replies and short summaries
Low is described for conversational replies, quick document summaries and simple coding queries — the cases where latency matters more than depth. Remember that low is still a reasoning run; there is no non-thinking tier to fall back to, so the floor cost is higher than on models that offer one.
Looking forward, the constraint that will shape K3 adoption over the next few quarters is not capability but session discipline. The model rewards teams that decide their configuration once and commit — one effort level, one harness, one model for the life of the session — and penalises the tuning-as-you-go habit that most teams developed on cheaper, statelessly-priced models. We expect harness authors to converge on making effort a session-level setting that is hard to change accidentally, and on surfacing cache-hit rate as a first-class metric, because right now the most expensive mistake available is invisible until the invoice. Teams building this discipline into their tooling now will run long-context work at a materially different unit cost than teams that do not.
If you are working out where a long-context or vision workload fits in a wider stack — and whether K3, a cheaper bulk model, or a frontier model is the right home for it — that comparative eval is exactly what our AI transformation engagements start with. The mechanics of running the resulting job at volume, including batch endpoints and cost guards, are covered in our guide to running a million-row LLM job.
10 — ConclusionThe dial matters more than the window.
A million-token window is a ceiling, not a strategy — the effort dial is what you actually operate.
K3’s underused surfaces are genuinely underused, and two of the three are straightforwardly worth trying: point it at scanned documents as images, and put screenshots in the loop when you are debugging rendered output. The published document-image result is the strongest case for the first, with the caveat that it is Moonshot’s own eval suite and nobody outside the company had replicated it by the time open weights landed on July 27.
The third surface is different in kind. The reasoning-effort dial is not a capability to explore but a setting to decide and defend, because Moonshot’s documentation says plainly that changing it mid-session invalidates the context cache — and the cache is what makes a 1M-token prefill cost $0.57 instead of $3.00 on standard list rates. Every 1M-context run on K3 is expensive for a reason that has nothing to do with the window: thinking is always on, the trace bills as output at $15.00 per 1M, and on a deep run the model spends more on reasoning you never see than on the answer you do.
The forward-looking version of that is simple enough to act on today. Decide the workload, decide the effort level, decide the harness, and then stop touching all three. The teams getting good unit economics out of long-context models are not the ones with the cleverest prompts — they are the ones whose sessions are boring, stable and cache-warm from the first turn to the last.