Xiaomi MiMo API reasoning_content回传详解:Agent多轮对话400错误解决方案

SEO关键词:Xiaomi MiMo API、MiMo-V2.5、reasoning_content、Agent开发、OpenAI兼容协议、Cursor接入MiMo、TRAE接入MiMo、GitHub Copilot CLI、工具调用Tool Call、多轮会话上下文、400错误解决方案

在这里插入图片描述

作为一名前端开发工程师,最近在研究 Agent 应用开发时,发现 Xiaomi MiMo 官方发布了一则重要公告。如果你正在使用 Cursor、TRAE、Roo Code、GitHub Copilot CLI、AutoGen、Goose 等 Agent 产品接入 Xiaomi MiMo 模型,那么这次更新一定要关注。
https://platform.xiaomimimo.com/docs/zh-CN/usage-guide/passing-back-reasoning_content

不少开发者在升级到 MiMo-V2.5 系列模型 后,可能会遇到一个问题:

HTTP 400 Bad Request

而且问题通常出现在:

  • 开启思考模式(Thinking)
  • 使用 Tool Call 工具调用
  • 多轮对话场景

经过官方说明确认,根本原因与 reasoning_content 回传机制 有关。

本文详细解析 Xiaomi MiMo 最新要求,以及如何正确实现多轮 Agent 对话。


一、官方公告核心内容

Xiaomi MiMo API 开放平台近期发布了关于 Agent 产品的重要兼容性说明:

当 Agent 类产品开启 MiMo 思考模式,并且历史会话存在工具调用时,后续所有 user 交互轮次中回传的 assistant 消息如果包含工具调用,必须完整保留 reasoning_content 字段。

否则将直接返回:

400 Bad Request

二、为什么必须回传 reasoning_content

很多开发者在保存聊天记录时通常只保留:

{
  "role": "assistant",
  "content": "最终回答内容"
}

或者:

{
  "role": "assistant",
  "tool_calls": [...]
}

而忽略:

{
  "reasoning_content": "模型思考过程"
}

对于普通模型可能问题不大。

但 MiMo 思考模型内部会依赖 reasoning_content 来维护推理链路。

如果历史记录中丢失:

reasoning_content

则模型看到的上下文变成:

用户提问
↓
工具调用结果
↓
最终回答

而缺少:

模型为什么调用工具
模型如何分析问题
模型如何规划执行步骤

这会导致:

问题 表现
指令遵循下降 模型更容易跑偏
上下文理解变弱 忘记前面推理内容
幻觉增加 生成不存在的信息
Tool Call决策错误 重复调用工具
API报错 直接返回400

因此 Xiaomi MiMo 要求:

历史 assistant 消息必须完整保留 reasoning_content。


三、哪些产品会受到影响

OpenAI兼容协议

Agent产品
TRAE
Cursor
Roo Code
Codex
GitHub Copilot CLI
Zed
AutoGen
Goose

Anthropic兼容协议

Agent产品
TRAE
GitHub Copilot CLI
AutoGen
Goose
OpenClaw
OpenCode
Kilo Code

四、受影响模型列表

目前涉及以下模型:

mimo-v2.5-pro
mimo-v2.5
mimo-v2-pro
mimo-v2-omni
mimo-v2-flash

如果你正在使用这些模型,需要特别注意。


五、错误实现方式

很多 Agent 框架的实现类似这样:

messages.append({
    "role": "assistant",
    "content": assistant_message.content
})

结果保存后的上下文:

[
    {
        "role":"user",
        "content":"北京天气"
    },
    {
        "role":"assistant",
        "content":"北京25℃"
    }
]

reasoning_content 被丢弃。

第二轮请求:

client.chat.completions.create(
    model="mimo-v2.5-pro",
    messages=messages
)

此时 MiMo 检测到:

历史存在工具调用
↓
缺失reasoning_content
↓
返回400错误

六、正确实现方式

官方推荐方案:

不要手动构造 assistant 消息。

而是直接保存 SDK 返回对象:

assistant_message = response.choices[0].message

messages.append(assistant_message)

这样会自动保留:

{
    "role":"assistant",
    "content":"...",
    "tool_calls":[...],
    "reasoning_content":"..."
}

七、多轮Agent执行流程解析

第一轮

用户提问:

北京天气如何?
现在几点?

Step1:模型分析

MiMo 推理:

需要获取天气
需要获取时间
两个工具可以并行执行

对应:

reasoning_content

内容类似:

The user wants to know two things...

Step2:发起Tool Call

get_current_weather()
get_time()

Step3:工具返回

Sunny 25°C
2026-05-12 16:37

Step4:生成最终答案

北京天气晴朗
25℃
当前时间16:37

八、第二轮为什么还能知道北京25℃

用户继续追问:

上海天气怎么样?
比北京热还是冷?

此时模型只调用:

get_current_weather("Shanghai")

而没有再次查询北京。

原因在于:

历史上下文中已经保留:

reasoning_content

以及:

tool result

所以模型已经知道:

北京 = 25℃

只需查询:

上海 = 22℃

即可直接得出:

上海比北京低3℃

九、推荐的消息存储结构

实际开发 Agent 时建议完整保存:

messages = [
    {
        "role": "user",
        "content": "..."
    },
    {
        "role": "assistant",
        "content": "...",
        "reasoning_content": "...",
        "tool_calls": [...]
    },
    {
        "role": "tool",
        "tool_call_id": "...",
        "content": "..."
    }
]

不要删除:

reasoning_content

不要过滤:

tool_calls

不要只保存:

content

否则后续轮次容易出现问题。


十、完整示例代码

下面是官方提供的多轮 Agent 调用示例核心代码:

response = client.chat.completions.create(
    model="mimo-v2.5-pro",
    messages=messages,
    tools=tools,
    extra_body={
        "thinking": {
            "type": "enabled"
        }
    }
)

assistant_message = response.choices[0].message

messages.append(assistant_message)

关键点只有一句:

messages.append(assistant_message)

它保证:

reasoning_content
content
tool_calls

全部被保存下来。


十一、开发建议

如果你正在维护:

  • Cursor插件
  • TRAE插件
  • AI编程助手
  • AutoGen工作流
  • OpenAI兼容Agent
  • 企业知识库Agent

建议检查以下内容:

检查1

是否开启:

thinking

检查2

是否使用:

Tool Call

检查3

是否保留:

reasoning_content

检查4

是否序列化丢失:

assistant_message

很多框架在:

json.dumps()

过程中会自动过滤未知字段。

需要特别留意。


总结

Xiaomi MiMo 最新公告实际上明确了一项重要规范:

在开启思考模式且涉及工具调用的多轮 Agent 场景中,必须完整回传 reasoning_content。

否则可能出现:

  • 400错误
  • 上下文丢失
  • Tool Call异常
  • 幻觉增加
  • 推理能力下降

当前受影响模型包括:

mimo-v2.5-pro
mimo-v2.5
mimo-v2-pro
mimo-v2-omni
mimo-v2-flash

受影响平台包括:

Cursor
TRAE
Roo Code
GitHub Copilot CLI
AutoGen
Goose
Zed
Codex

对于 Agent 开发者来说,最简单且最安全的做法就是:

messages.append(assistant_message)

完整保留模型返回内容,而不是手动拼接消息对象。这样既能避免 400 错误,也能最大程度发挥 Xiaomi MiMo 推理模型的能力。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐