MiMo 是小米的模型家族 —— 通用版 mimo-v2.5 与 Pro 档,官方声明 1M token 上下文、原生 OpenAI 与 Anthropic 双格式。通过 DaoXE,用 GET /v1/models 里的 MiMo ID 调 /v1/chat/completions,与其他家族共用同一个 key —— 你的账号到底载哪些 MiMo ID,以实时列表为准,别当默认。成本分流见最便宜 API 教程。
通过 DaoXE 调用 MiMo#
Chat 路径:/v1/chat/completions,用 Authorization: Bearer。MiMo 默认思考:厂商文档写明 thinking 字段(enabled/disabled),当前 v2.5 系列 ID 的出厂状态就是开启。思考开启时采样被锁定 —— 自定义 temperature/top_p 会被强制按官方推荐值 1.0/0.95 生效 —— 而管住「思考+回答」总预算的是 max_completion_tokens。
curl --fail-with-body --show-error --silent \
https://daoxe.com/v1/chat/completions \
-H "Authorization: Bearer ${DAOXE_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_EXACT_MODEL_ID",
"max_tokens": 64,
"messages": [{"role": "user", "content": "Say hello in one sentence."}]
}'# MiMo reasoning IDs think by DEFAULT, lock temperature/top_p, and 400 if a
# tool-call round drops reasoning_content. max_completion_tokens (not max_tokens)
# is the cap that covers thinking + answer.
from openai import OpenAI
client = OpenAI(base_url="https://daoxe.com/v1", api_key="YOUR_DAOXE_KEY")
r = client.chat.completions.create(
model="YOUR_EXACT_MODEL_ID", # a mimo-* id from GET /v1/models
messages=[{"role": "user", "content": "2+2? Think briefly, then answer."}],
max_completion_tokens=2048, # thinking + answer share this budget
# thinking is ON by default; to opt out explicitly:
extra_body={"thinking": {"type": "disabled"}}, # non-standard: extra_body
)
msg = r.choices[0].message
print(getattr(msg, "reasoning_content", None)) # thinking trace
print(msg.content) # final answer
print(r.usage.completion_tokens_details.reasoning_tokens) # thinking spend
MiMo 如何暴露思考内容#
MiMo 把思考轨迹放在消息上独立的 reasoning_content 字段里 —— 与 DeepSeek 同型,而 usage.completion_tokens_details.reasoning_tokens 报告开销。两点使它成为推理家族里最严的一个:不发 thinking: {"type": "disabled"} 思考就一直开着;多轮契约是强制的而非建议 —— 丢掉 reasoning_content 的工具调用回合直接 400,而 DeepSeek 式 API 是性能退化或文档仅口头警告。非标准的 thinking 字段能否穿过某条中转路径、reasoning_content 是否保留,正是要验证的事 —— 绑定客户端前先发一次测试调用。
MiMo 特有的注意点#
- 思考是默认态,不是可选项。
thinking字段({"type": "enabled"}/{"type": "disabled"})是非标准字段 —— 用你 SDK 的 extra-body 发送,而且不发送就意味着 v2.5 ID 的思考保持开启。默认按纯文本回答解析的客户端,要么显式关掉,要么得能解析reasoning_content。 - 工具循环里丢 reasoning_content 直接 400。 厂商原话说得很硬:多轮 agent 对话带工具调用时,每一轮回传的 assistant 消息必须完整带回
reasoning_content,否则 API 返回 400 错误。文档还按协议点名了受影响客户端 —— OpenAI 侧的 Cursor、Roo Code、Codex、Zed、Goose 等;Anthropic 侧的 OpenCode、Kilo Code 等。重建历史要用原始消息对象,别用截断摘要。 - 思考开启时采样参数收下但忽略。 自定义
temperature/top_p不报错 —— 会被静默强制为 1.0/0.95。在 thinking 请求上调它们是无效操作,别再惯性带了。 - 管预算的是 max_completion_tokens,不是 max_tokens。 上限覆盖思考加回答,预算给小了,长思考之后回答会被截断。准确 ID 永远从
GET /v1/models读。
这要花多少钱#
一个余额,一个充值汇率
充值统一按 1 元人民币 = $1 额度,所有支付方式一致;模型再各按自己的美元标价计费 —— 实时单价见定价页。支付宝、微信、USDT、银行卡(Visa · Mastercard)、Apple Pay 与 Google Pay 都是同一个汇率 —— 目录里所有模型共用一个余额,不用选套餐,也没有月度低消。单价与账户绑定且会变动,所以请用一小笔充值去确认,而不是相信教程里的某个数字。
验证你拿到的是真模型#
先证明端点可用,再怀疑客户端 —— 这一步失败,改任何设置都没用:
export DAOXE_API_KEY="your_api_key"
# List the exact model IDs your account can call
curl --fail-with-body --show-error --silent \
https://daoxe.com/v1/models \
-H "Authorization: Bearer ${DAOXE_API_KEY}"先确认连通,再(MiMo 思考时会强制自己的采样配置)把固定 prompt 与官方 MiMo API 对比,确认模型档位:
别信我们 —— 自己验证
把 开源 benchmark 对准 DaoXE 和官方 API,在 temperature 0 下对比。再学会如何鉴别掉包,让便宜端点无法悄悄把你换成更小的模型。
常见问题#
怎么关掉 MiMo 的思考?
在请求体里发 thinking 带 {"type": "disabled"}。它是非标准字段 —— 用你 SDK 的 extra-body 选项。不发送的话当前 v2.5 ID 的思考保持开启。
为什么 agent 对话中途报 400?
多轮工具调用中,每条回传的 assistant 消息都必须带 reasoning_content。框架重建历史时若裁掉这个字段,请求会被拒 —— 用原始消息对象重建历史。
为什么我的 temperature 不生效?
思考开启时 MiMo 把 temperature/top_p 强制为官方推荐值(1.0/0.95)。参数被接受但被覆盖 —— 不报错、无效果。
这里 MiMo 多少钱?
按模型、按账号 —— 见实时定价。充值统一 1 元 = $1 额度,所有支付方式一致。
试用 DaoXE —— 并亲自 benchmark 它
一个 key 调 GPT、Claude、Gemini、DeepSeek 等。用开源 benchmark 对准我们做对比 —— 别只听我们说。