MiniMax Agent中断主因是上下文超限、checkpointer缺失、流式接收不全、WebView拦截或M2.7交错思考触发终止;需核对token总数、配对interrupt与checkpointer、切同步模式、绕过WebView、降级M3并禁用交错思考。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

MiniMax Agent在工具调用后突然中断,任务卡在“已生成工具请求但未执行”或“执行中返回空响应”,常见于上下文超限、checkpointer缺失、网络链路抖动或服务端静默截断。这类中断不是模型拒绝响应,而是流程在关键节点被强制终止。
确认是否触发了上下文硬性截断
打开 Minimax 开发者控制台,查当前所用模型(如 abab6.5t 或 M2.7-highspeed)的 Context Length 标称值,例如 32768;
用官方 minimax-tokenizer 工具对完整请求体做本地 token 计数——必须包含 system prompt、全部 history、当前 user 输入,不能只算字符数;
若输入 tokens 已达 30000+,而你又设置了 max_tokens: 4096,总和极易突破上限。服务端不会报错,而是直接返回 {"choices":[],"usage":{...}} 并附加 [DONE],这就是静默截断的典型特征。
立即把 max_tokens 改为 ≤(Context 上限 − 输入 tokens),禁止设为固定大值。
检查 interrupt 配置是否遗漏 checkpointer
如果你启用了 interrupt_before=["tools"] 却没传 checkpointer,Agent 在工具调用前会暂停,但无法保存状态——下次 invoke 时找不到断点,直接抛异常或空返回。
这一步必须同时满足两个条件:【interrupt_before 必须与 checkpointer 成对出现】,缺一不可。
检查你的 create_agent() 调用中是否包含 checkpointer=checkpointer 参数,且该变量已正确定义为 MemorySaver() 或兼容的持久化实例。
没有 checkpointer,interrupt 就是单向刹车,踩下去就熄火,没法再点火启动。
切换同步模式并验证客户端接收逻辑
步骤一:在 API 请求 JSON 中将 "stream": true 显式改为 "stream": false;
步骤二:确认客户端代码调用的是 response.json() 或等效完整解析方法,而不是对 response.iter_lines() 做不完整读取;
步骤三:打印原始响应体全文,重点看是否有 "choices" 数组为空但 "usage" 字段存在,且 "completion_tokens": 0 —— 这说明服务端已计算完输入开销,但拒绝生成任何输出。
流式模式下,前端若监听超时或只取前几个 chunk,就会误判为“任务中断”,实则响应早已完整到达并被截断丢弃。
绕过 WebView 黑名单强制走原生浏览器
微信、钉钉、QQ 内置 WebView 会静默拦截对 api.minimax.chat 的请求,不报错也不响应,表现就是 Agent 调用无反应、工具不执行、消息卡住。
方法一:彻底杀掉微信、钉钉等 App 后台进程;
方法二:用 iOS Safari 或 Android Chrome 手动输入 https://chat.minimax.io,禁止扫码跳转;
方法三:遇到“不安全”提示时,点“高级”→“继续前往”,这是浏览器本地策略,【不是 MiniMax 服务端证书问题】。
临时降级模型并关闭交错思考
MiniMax M2.7-highspeed 默认启用交错思考(interleaved thinking),在长链路任务中易因步数膨胀触发服务端主动终止。M3 模型则更倾向线性执行,稳定性高。
把请求中的 model 参数从 M2.7-highspeed 换成 M3;
在 system prompt 末尾追加一句:“请严格控制在 20 步内完成全部推理与工具调用,禁用交错思考循环”;
同步将参数 max_steps 设为 20,并移除 tool_choice: "auto",改用显式指定函数名的方式调用工具。


















