MiniMax M3.1 Flash Thinks at Max by Default: First Call, Effort as the Price Knob, and Cache Math vs DeepSeek Flash MiniMax released M3.1 Flash on October 19, a model priced at $0.15/$0.60 per 1M input/output tokens with $0.015 cached input, a 1M context, and text, image and video input, and confirmed it was the anonymous "Space Bunny" model some coding-tool users had been testing. MiniMax reports DeepSWE v1.1 at 73.7% and CyberGym at 82%, while Artificial Analysis independently scores it 43 on its Intelligence Index at $0.22 per task and VentureBeat, citing AA, reports a 93% hallucination rate on AA-Omniscience. A developer's writeup notes that reasoning_effort defaults to "max" when omitted, that temperature and top_p have no effect, and that thinking tokens count against max_completion_tokens. Attributed compile + two small offline scripts Primary sources MiniMax, 2026-10-19 : MiniMax M3.1 Flash: Redefining Agent Performance and Cost https://www.minimax.io/blog/minimax-m31f and the Chinese version https://www.minimax.cn/blog/minimax-m31f ; MiniMax API docs: Model Invocation https://platform.minimax.io/docs/guides/text-generation , OpenAI SDK https://platform.minimax.io/docs/api-reference/text-openai-api , Tool Use & Interleaved Thinking https://platform.minimax.io/docs/guides/text-m3-function-call , Prompt Caching https://platform.minimax.io/docs/api-reference/text-prompt-caching . Independent numbers and reporting: Artificial Analysis model page https://artificialanalysis.ai/models/minimax-m3-1-flash read 2026-10-20 ; Carl Franzen , MiniMax's new M3.1 Flash beats DeepSeek and Opus 5 on a key business benchmark at lower cost — but with a high hallucination rate https://venturebeat.com/technology/minimaxs-new-m3-1-flash-beats-deepseek-and-opus-5-on-a-key-business-benchmark-at-lower-cost-but-with-a-high-hallucination-rate VentureBeat . Community 2026-10-19 to 10-20 : Hacker News thread https://news.ycombinator.com/item?id=50154540 488 points ; V2EX minimax-v3.1-flash 发布了,大家用下来怎么样? https://www.v2ex.com/t/1250234 ; PingWest 品玩 MiniMax 杀进 Flash 混战,我拿五个项目试了试 https://www.pingwest.com/a/318014 . I have not called the MiniMax API no key on this box . The scripts below lint request settings and do price math from the published rules. On October 19 MiniMax shipped M3.1 Flash and confirmed that "Space Bunny", the anonymous model some coding-tool users had been trying MiniMax says it processed 200T+ tokens , was an early version of it. The headline: list price $0.15 / $0.60 per 1M tokens input / output , $0.015 for cached input, a 1M context, text + image + video input, and MiniMax's claim of ~3× faster inference and 70% lower agentic-task cost than the previous generation. MiniMax's own numbers include DeepSWE v1.1 73.7% , BankerToolBench 76.2 , OSWorld V2 61.7 , and CyberGym 82% . Artificial Analysis independently lists it at 43 on its Intelligence Index, $0.22 per index task, ~ 105 output tokens/s, and 180M output tokens to run the index median for its class: 99M . VentureBeat, citing AA, also reports a 93% hallucination rate on AA-Omniscience. That doesn't mean 93% of answers are wrong. It means that when the model didn't know, it almost always guessed instead of saying so. Reactions were split: HN commenters who had used Space Bunny called it "benchmaxed", and a V2EX user reported tasks burning 20M tokens where DeepSeek's Flash finished in 1M. This post skips that argument and covers the settings that decide what the model costs in your code. OpenAI-compatible endpoint, with the one line I'd add on day one: python import os from openai import OpenAI client = OpenAI api key=os.environ "MINIMAX API KEY" , base url="https://api.minimax.io/v1" r = client.chat.completions.create model="MiniMax-M3.1-Flash", reasoning effort="low", omit this and you get "max" max completion tokens=4096, thinking tokens count against this messages= {"role": "user", "content": "Label this ticket: billing, bug, or other? 'I was charged twice.'"} , print getattr r.choices 0 .message, "reasoning content", None print r.choices 0 .message.content Not run; no key. The docs list the rules: reasoning effort accepts low | medium | high | xhigh | max , and omitting it means max . output config.effort . On the Responses API it's reasoning.effort . thinking: {"type": "disabled"} or reasoning effort: "none" returns disabled skipped thinking. If your M3 classifier disabled thinking, the same request now fails. temperature and top p do nothing presence penalty , frequency penalty and logit bias . Effort is the only control you have. max tokens / max completion tokens . finish reason: "length" with an content n only supports 1, and service tier the 1.5× "priority" lane isn't available for this model. runs/22-minimax-m3-1-flash/lint request.py turns those rules into an offline pre-flight check. Excerpt of the actual output: php copied from a GPT/DeepSeek config WARN reasoning effort omitted - defaults to 'max' slowest, most output tokens . Set it explicitly. WARN temperature has no effect temperature is always 1, top p always 0.95 . WARN top p has no effect always 0.95 . WARN output budget 800 counts thinking tokens too; at effort max default you risk finish reason='length' with empty content. cache-busting system prompt WARN system prompt contains a timestamp/id-looking value; cache is prefix-matched tools - system - messages , so everything after the tool list misses the cache on every call. explicit low-effort classifier OK The 2,048-token "too small" threshold is my own guess. MiniMax doesn't publish a number. X user @bitsquin posted https://x.com/bitsquin/status/2112166580448891231 a small Python bug-fix test 215 hidden tests : M3.1 Flash at default settings took 56 s and $0.0045 , and at low effort 9.5 s and $0.0006 , and fixed the same two bugs. That's 5.9× the time and 7.5× the cost for the same result on that task. It's one person's test, and I didn't reproduce it. HN user chriddyp, posting Plotly's data-analytics benchmark https://plotly.com/blog/minimax-m3-1-flash-plotly-data-analytics-bench/ , said it tied the top score 41/43 but was the slowest model they've tested, "because of the number of tokens it uses, not the inference speed." PingWest saw steady ~100 tokens/s in MiniMax Code on the Preview build, but the model kept re-checking finished work. The problem isn't speed per token. It's how many tokens the default spends. My untested starting point: low for classification, extraction and routing, medium / high for normal coding-agent turns, and xhigh / max only where you've measured that the extra tokens pay off. cost math.py uses the same example agent turn as my Muse Spark Open and DeepSeek posts 60K input with 50K from cache, 4K output including reasoning . Actual output: model $/turn $/1k turns minimax-m3.1-flash 0.00465 4.65 deepseek-flash off-peak 0.00405 4.05 deepseek-flash peak 0.00810 8.10 minimax-m3.1-flash, zero cache hits: 0.01140/turn 11.40/1k The miss and output prices match DeepSeek's off-peak rates. The gap is the cache hit: $0.015 vs DeepSeek's $0.003 off-peak. Grow the cached prefix and it widens excerpt : cached prefix | minimax $/turn | ds off-peak | ds peak 10K fresh in, 4K out 0 | 0.00390 | 0.00390 | 0.00780 200,000 | 0.00690 | 0.00450 | 0.00900 900,000 | 0.01740 | 0.00660 | 0.01320 MiniMax beats DeepSeek PEAK until the cached prefix passes ~433,333 tokens 10K fresh/4K out DeepSeek's peak windows land on Toronto evenings and early mornings, so for overnight batch jobs that run in those windows, M3.1 Flash is cheaper unless the cached prefix is huge. Long-context agents that re-send a big cached prefix are better off on DeepSeek. And once effort climbs, output dominates: at 16K output tokens per turn, 81% of the bill is output. MiniMax returns cache usage in two shapes, and they mean different things: prompt tokens prompt tokens details.cached tokens input tokens cache read input tokens Applied to the literal sample responses in MiniMax's Tool Use guide: OpenAI shape correct miss/hit/out= 2, 466, 37 $29.49 per 1M such calls OpenAI shape no-cache miss/hit/out= 468, 0, 37 $92.40 3.13x OpenAI shape double miss/hit/out= 468, 466, 37 $99.39 3.37x Anthropic correct miss/hit/out= 280, 188, 37 $67.02 per 1M such calls Anthropic subtract miss/hit/out= 92, 188, 37 $38.82 0.58x A dashboard shared by both SDK paths can be off by 3× one way or ~40% the other. Write one parser per protocol. The Tool Use guide says to append the full assistant message, including reasoning content and tool calls on the Anthropic path, the whole response.content list . Rebuilding history from content alone breaks interleaved thinking. Unlike DeepSeek, the docs describe no 400 for this, so the failure is quiet. The model also skips thinking on simple tool calls , so read reasoning content with getattr ..., None . check replay in the lint script flags both cases. MiniMax's blog says weights will come "later". VentureBeat reports October 23 , with no license announced, and Artificial Analysis still lists the model as proprietary. I did not call the API, measure token counts per effort level, reproduce any benchmark or the @bitsquin test, check hallucinations, or test video input. Given the AA finding, put retrieval or a verifier in front of anything factual it writes. On cheap reasoning models, the price you pay per task depends on your effort setting more than on the per-token rate. Set effort explicitly, parse usage per protocol, and keep the cached prefix byte-stable. Then compare models on your own tasks. YongBo Yu is an AI engineer in Toronto building LLM workflows and agent systems. More at yongbo-yu.vercel.app https://yongbo-yu.vercel.app and GitHub https://github.com/YongBoYu1 .