DeepSeek V3.2 提到了一个东西,属于核心迭代
「在思考中,使用工具」
技术报告里,把这个叫Thinking in Tool Use
在这里与大家说道,这东西的由来、演进和现状,方便吹牛逼用
所谓「Thinking in Tool-Use」
顾名思义,就是大模型一边调用工具,一边推理,多次循环后,最后输出答案
行业里,常把这个叫做 Interleaved Thinking,本文沿用这个说法
类似的东西,最早是 Anthropic 提出的
今年初发布的,叫 Extended Thinking。额外说明:o1 不算,那个没工具调用
在开源模型里,最早是 OpenAI 开源的 oss 最先支持的
说法是 interleaving tool calls within the CoT
之后,国内的几家模型厂,也给到了类似说法:
-
• MiniMax M2叫它「交错思维链」 -
• Kimi K2叫它「边思考边使用工具」 -
• DeepSeek v3.2叫它「思考模式下的工具调用」
各家说法不同,本质是一件事
大模型,如何在保留推理状态的同时,进行多次工具调用
有关交错思维链,MiniMax 前段时间还写了篇文章,强调这东西的重要性,具体后面细说
技术原理
先说下推理模型是怎么使用工具的
举个例子,你问模型一个问题:
一台最新苹果手机,和两台最新的豆包手机,谁更贵?
以最开始的 o1 模型为例,o1 这个模型并不能进行工具调用,只能回答
对不起,我无法访问网络,并不知道谁更贵
再之后,一些朋友对 o1 类的模型进行了工程优化(比如具有联网能力的 DeepSeek R1),让他能够在回答前,先搜索一些问题,然后调用模型,可能会重复多次,流程就变成了这样:先搜最新的苹果手机 → 读结果 → 决定下一步搜什么 → 再搜索 → 再读结果 → ... → 整理答案
但实际上...在处理先搜最新的苹果手机这一步中,就会发现苹果有多款机型
如果只拿最新的 iPhone 17 比较,肯定不妥,毕竟还有 air 和 pro
作为人的话,可能会中间留个心眼:最新的苹果手机,需要考虑系列吗?
那么,如果是大模型,会记住这些东西吗?
早期做法:丢掉
具体来说:忘掉所有的中间思考,只保留结果和部分总结
这部分的具体描述,可以参加 OpenAI 的相关文档:思维链是隐藏的
所以,在进行最终判断的时候,大模型的上文可能只有:
-
• iPhone 17 的标准定价为 5999 -
• 豆包手机(努比亚)的标准定价为 3499
然后得出结论:
iPhone 17,不如两台豆包手机贵
但....
作为人的话,我们会保留个心眼,思考过程也记着:
-
• iPhone 17 的标准定价为 5999(同期发售的还有 iPhone Air:7999;Pro:8999) -
• 豆包手机(努比亚代工)的标准定价为 3499(目前无货,闲鱼 4499)
然后出结论:
iPhone 17,不如两台豆包手机贵
Air 和 Pro 则贵于两台豆包
这种「留心眼」的做法,就是 Interleaved Thinking模型调用工具 → 拿到结果 → 继续思考(带着之前的推理)→ 再调用工具 → 继续思考...
在这里,计划、假设、中间结论都会被带到下一轮
当然,这里为了方便表达,我对原理进行了极大的删减
实际的做法和流程都会更为复杂
比如...这些推理内容,在何时才会舍弃?
以DeepSeek v3.2为例,论文里是这么描述的:
只有新用户消息到来时,才丢弃推理内容,工具返回结果不触发丢弃
...这样的细节还有许多,还是挺有工程实践&复杂度的
效果差距
对于「保留推理状态 vs 丢弃推理状态」,会有多少差距呢?
对于长链路 Agent 任务,最高能有 +35% 到 +40%
数据来自于 MiniMax 的对比测试
-
• SWE-Bench Verified:69.4 vs. 67.2, +3.3% -
• 𝜏²:87 vs. 64, +35.9% -
• BrowseComp:44.0 vs. 31.4, +40.1% -
• GAIA:75.7 vs. 67.9, +11.5% -
• xBench:72.0 vs. 66.0, +9.1%
至于为什么差距这么大?
可以这么理解:
一旦丢弃了之前的推理状态,模型的累积理解能力会下降,自我修正能力会减弱
这东西,在长程工具调用和「运行–修复」循环中尤其明显
世界是个草台班子
这里有个现实问题:
很多项目使用了 thinking 模型,但工具的连续调用总是出问题
而且...可能...甚至还没发现
这个其实是 OpenAI 的锅
OpenAI 有多套 API 调用方法:
-
• Completions(不再建议使用) -
• Chat Completions -
• Assistants API(压根没人用) -
• Responses API
目前用的最广泛的的,是 Chat Completions api
但... 这玩意儿压根没有 thinking 相关的字段
于是大家只能在 assistant message 里假装 thinking
新的 Responses API 确实支持 reasoning 配置
但它返回的是 reasoning.encrypted_content——加密版本的推理内容
推理过程?更不存在的
于是,OpenAI 的这套接口,按标准做法,你是能用于多轮对话状态保持,但你看不到原始推理过程
你说 OpenAI 开源的那个 oss 支持?
哈哈哈哈哈哈哈哈哈哈
那套鬼东西,根本没定义接口,怎么实现你就自己看着来吧
按照惯性,大家都照着 OpenAI 的 API 规范写代码
但由于 OpenAI 在这个方面过于不干人事儿
各家厂商,就只能在这个不完整的规范上各自魔改
仔细看,你会发现.... DeepSeek R1 的 Thinking 结构,和 OpenAI 的也都不一样
然后同样的模型,在硅基流动、火山、官方 api 上,响应结构甚至也都不一样
于是...调用 API 的时候,由于种种奇怪原因,你的thinking 信息,很可能压根没被放在上下文
哈哈哈哈哈哈哈哈哈哈
MiniMax 的贡献
事情的另一个角度,MiniMax 反倒是为 Thinking 模型的标准化,做了许多生态上的工作,比如与OpenRouter、Ollama、Droid、Vercel、Cline合作,共同推进并实现这一功能的跨平台支持。
具体的可以参见这里,希望通过推动统一标准,在应用、OpenAI 兼容API、Anthropic 兼容 API 中,来推动 Interleaved Thinking 的广泛支持
11 月在纽约 AI.Engineer Summit,MiniMax 研究员 Olive 讲了 Interleaved Thinking
然后挨个给生态里的工具提 PR:
-
• Cline、RooCode:让 VS Code 插件支持 Interleaved Thinking -
• Kilo Code:优化多轮对话的状态保持逻辑 -
• OpenRouter、Ollama:推动平台层面跟进支持
Cline 和 Kilo Code 官方都发推确认了
现在这些平台上,MiniMax M2 是第一个正确支持 Interleaved Thinking 的开源模型
对于其他支持这个机制的模型,比如 DeepSeek V3.2、Kimi K2,直接就能用了。算是给这个这种 thinking,造了个朋友圈
MiniMax 还开源了 Mini-Agent,一个支持 Interleaved Thinking 的 Coding CLI,700+ Star
等生态基建逐步完善后,Interleaved Thinking 估摸着就能被更广泛的使用了
最后
Interleaved Thinking 的核心就一句话:
保留推理状态,让模型在多轮工具调用中持续累积理解
最开始的时候,我们对于 Agent 的期待,是它能不能使用工具
然后看到了 ToolFormer 论文、看到了 Plugin、Function Call、JSON Mode
直到去年 8 月,OpenAI 宣布可以在 Structured Outputs 的严格模式下,做到 100% 的成功调用
而现在,我们的思考变成了「调用工具时,如何保持连贯思考」,刚刚结束的 AWS re:invent 大会上,主题也是 Agentic AI

转眼三年,有点恍惚...

