深度解析:MiroThinker搜索Agent完全指南——让小模型也能完成高难度研究任务
这篇文章来自 无忆研习社,一个专注于优质开源项目分享与技术深度解析的平台。如果你对前沿AI技术和开源工具感兴趣,欢迎持续关注我们的更新。
写在前面
最近一段时间,我在GitHub上发现了一个让我眼前一亮的项目。说实话,作为一个在AI领域摸爬滚打了好几年的老兵,能让我感到「惊艳」的东西已经不多了。但这个项目确实做到了——它叫MiroThinker,一个开源的搜索Agent。
为什么说它惊艳?因为它打破了我们对AI模型「越大越好」的固有认知。它用30B参数的模型,在多个权威测试基准上超越了拥有万亿参数的商业模型。这就好比一个普通选手,用更少的资源打败了装备精良的职业战队。
今天这篇文章,无忆研习社将从技术原理到实际操作,给大家做一次全面而深入的拆解。无论你是AI从业者、技术爱好者,还是刚入门的小白,相信都能从中获得不少收获。
第一章:搜索Agent到底在解决什么问题
在深入MiroThinker之前,我们需要先理解一个更基本的问题:为什么我们需要搜索Agent?
传统AI模型的困境
现在的大语言模型(LLM)面临一个很尴尬的处境。
一方面,它们确实很强大。你问它历史事件、科学原理、代码逻辑,它都能给出相当不错的回答。
但另一方面,它们也有明显的短板:
第一,知识有时效性。所有大模型都有一个「知识截止日期」,它们只知道训练数据中包含的内容。你问它2025年最新的行业动态,它只能根据过去的信息做推测,而不是告诉你真实发生了什么。
第二,复杂问题容易出错。当问题涉及多个知识点的交叉、需要从多个来源综合信息时,模型往往会「一本正经地胡说八道」。这在学术界有个专业术语叫「幻觉」(Hallucination)。
第三,缺乏验证机制。模型生成答案时,本质上是在做概率预测——选择它认为最可能的下一个词。但「概率最高」不等于「事实正确」。模型自己也没有办法判断自己说的对不对。
人类研究员是怎么工作的
如果我们观察一个专业研究员是怎么解决复杂问题的,会发现他们的工作方式和AI模型截然不同。
假设你让一个研究员调研「2026年全球AI大模型市场竞争格局」,他会怎么做?
首先,他会把这个大问题拆解成若干个小问题:主要玩家有哪些?各家的最新产品是什么?市场份额如何分布?有没有新入场的黑马?监管政策对格局有什么影响?
然后,他会针对每个小问题去查资料。可能要浏览几十个网站,阅读上百篇报道,交叉验证不同来源的信息。
在这个过程中,他可能会发现原来的假设是错的,需要调整研究方向。比如原本以为某家公司已经掉队了,但查资料发现它最近发布了很有竞争力的产品。
最终,他会把所有验证过的信息整合起来,形成一份有理有据的研究报告。
这个过程有几个关键特点:主动求证、多轮验证、不断修正、综合分析。
搜索Agent的使命
搜索Agent要做的,就是让AI也能像研究员那样工作。
它不是简单地把搜索功能接入到模型里。市面上很多产品都能做到「联网搜索」,但大多数只是在用户提问后做一次搜索,把搜索结果塞给模型,让模型基于这些结果生成答案。
真正的搜索Agent需要具备更强的能力:
- 能够规划搜索策略,知道先查什么后查什么
- 能够判断搜索结果的质量,知道哪些信息可信哪些需要怀疑
- 能够根据已获得的信息调整后续的搜索方向
- 能够在多轮搜索之间建立联系,做综合分析
- 能够识别出自己什么时候找到了可靠答案,什么时候还需要继续查
这就是MiroThinker在做的事情。它不只是一个「能上网的AI」,而是一个「懂得如何做研究的AI」。
第二章:MiroThinker的核心创新——Interactive Scaling
要理解MiroThinker为什么厉害,我们需要先了解AI领域的一个核心概念:Scaling Law(规模法则)。
传统Scaling Law的思路
过去几年,AI大模型的发展遵循一个基本规律:模型越大,效果越好。
这个规律是OpenAI在2020年提出的。简单来说,只要你持续增加模型参数量、训练数据量和计算资源,模型的性能就会稳定提升。
基于这个规律,各大公司开始了参数军备竞赛。GPT-3有1750亿参数,GPT-4据传有万亿参数级别。国内的模型也是越做越大,动辄几百亿、上千亿参数。
这种做法确实有效,但也带来了巨大的成本。训练一个千亿参数的模型可能需要数亿美元的投入,推理成本也居高不下。而且越来越多的研究表明,单纯增加参数的边际效益正在递减——你把参数从1000亿增加到2000亿,性能提升可能只有几个百分点。
MiroThinker提出的新路径
MiroThinker团队提出了一个不同的思路:与其不断增加模型内部的参数,不如增强模型与外部世界的交互能力。
他们把这个思路命名为 Interactive Scaling(交互式扩展)。
核心理念是:模型性能的提升不一定来自「记住更多知识」,也可以来自「更好地获取和使用外部知识」。
打个比方,传统的Scaling Law像是让一个人不断背书、不断往脑子里塞更多东西。Interactive Scaling则是教这个人如何查资料、如何验证信息、如何综合分析——它不需要记住所有东西,但需要知道怎么找到并使用这些东西。
Interactive Scaling的三个维度
MiroThinker的技术报告中,把模型能力的扩展分为三个维度:
第一维度:模型规模(Model Scaling)
这是传统做法,增加参数量来提升模型的基础能力。MiroThinker的基础模型有8B、14B、30B、72B和235B等多个版本。虽然它也有大模型,但重点不在于单纯堆参数。
第二维度:上下文长度(Context Scaling)
让模型能处理更长的输入,记住更多的对话历史。MiroThinker支持256K的上下文窗口,这意味着它可以在一次任务中记住大量的搜索结果和中间推理过程。
第三维度:交互深度(Interactive Scaling)
这是MiroThinker的核心创新。让模型与外部工具进行更频繁、更深入的交互。在一个复杂任务中,MiroThinker可能会进行几十次搜索、数百次工具调用,不断获取新信息来修正自己的判断。
无忆研习社认为,第三个维度是真正的游戏规则改变者。它意味着一个30B参数的模型,通过更好的工具使用策略,可以在特定任务上超越1000B参数的模型。
从「一次性推理」到「迭代式研究」
传统的语言模型工作方式是这样的:接收输入 → 思考 → 输出答案。这是一个单向的过程,模型只有一次机会来给出答案。
MiroThinker的工作方式则是:接收输入 → 思考 → 搜索验证 → 发现问题 → 调整假设 → 再次搜索 → 再次验证 → …… → 输出答案。
这是一个闭环的、迭代的过程。模型可以根据外部反馈不断修正自己的推理路径,就像一个研究员在做调研时会不断调整研究方向一样。
技术上,这需要解决几个挑战:
- 如何训练模型进行多轮交互:普通的语言模型只训练了「给定输入生成输出」的能力,没有训练「根据工具反馈调整策略」的能力。
- 如何避免无效交互:如果模型乱搜一气,既浪费计算资源,又可能引入噪音。需要让模型学会「有策略地搜索」。
- 如何处理长轨迹:当交互次数增加时,模型需要记住之前所有的搜索结果和推理过程。这对上下文管理提出了很高的要求。
MiroThinker通过专门设计的训练方法和架构来解决这些问题,我们在后面会详细展开。
第三章:MiroThinker的训练哲学
了解了Interactive Scaling的理念后,我们来看看MiroThinker是如何把这个理念落地的。
核心思想:训练一个「会求证」的Agent
MiroThinker的训练目标不是让模型记住更多答案,而是让模型学会「不确定时主动查证」。
这听起来简单,但实现起来很复杂。因为大多数语言模型被训练成「给出一个最可能的答案」,而不是「承认不确定并寻求验证」。
MiroThinker的训练过程刻意改变了这种倾向:
弱化「一次性正确」的奖励
传统训练中,模型如果一次就给出正确答案会得到高分。但MiroThinker的训练中,团队故意降低了这种奖励的权重。
为什么?因为如果模型总是追求「一次性答对」,它就会倾向于编造一个看起来合理的答案,而不是承认自己需要去查证。这正是AI「幻觉」问题的根源。
强化「求证过程」的奖励
相反,MiroThinker更看重模型的「求证行为」。当模型面对不确定的问题时,如果它选择去搜索、去验证,而不是直接猜测,它会得到更高的奖励。
这训练出了一种行为模式:遇到不确定的事情 → 主动承认不确定 → 发起搜索 → 根据搜索结果更新判断。
惩罚「无根据的高置信度」
这是很关键的一点。如果模型对一个答案表示很高的置信度,但这个答案实际上没有外部证据支持,模型会受到惩罚。
这训练出了「无证据不开口」的本能——模型只有在有充分证据时才会表示确信,否则就去查证或者坦诚说明不确定性。
训练数据的构建
高质量的训练数据对Agent来说至关重要。MiroThinker团队发布了一个叫MiroVerse的数据集,包含14.7万条高质量的训练样本。
这些数据不是普通的问答对,而是完整的「研究轨迹」(Trajectory)。每条数据记录了:
- 一个复杂问题
- 模型如何把问题分解成子问题
- 模型发起了哪些搜索,得到了什么结果
- 模型如何根据搜索结果调整判断
- 最终的答案是什么,依据是什么
通过学习这些轨迹,模型学到的不只是「什么是正确答案」,而是「如何通过研究得到正确答案」。
强化学习的应用
在监督学习的基础上,MiroThinker还引入了强化学习(RL)来进一步优化模型的行为。
强化学习让模型通过试错来学习。模型进行一次完整的研究任务,根据最终结果的正确性获得奖励,然后调整自己的策略,在下次做得更好。
实验数据显示,经过强化学习训练的MiroThinker-v1.0-30B模型,与只做监督学习的版本相比,展现出了更长、更深的交互轨迹。监督学习的版本往往在几次工具调用后就停止,而强化学习版本会进行更多轮的探索和验证。
无忆研习社在这里要强调一点:强化学习的效果很大程度上取决于奖励函数的设计。MiroThinker的成功,很大程度上来自于团队对「什么是好的研究行为」有清晰的定义,并把这个定义编码成了合适的奖励信号。
第四章:MiroThinker的技术架构深度解析
接下来,让我们深入技术细节,看看MiroThinker的架构设计。
整体架构
MiroThinker的系统可以分为几个层次:
基础模型层
MiroThinker基于Qwen模型家族构建。选择Qwen的原因是它在开源模型中具有优秀的基础能力,特别是在长上下文处理方面表现不错。
目前发布的版本包括:
- MiroThinker-v1.5-30B
- MiroThinker-v1.5-235B
- 以及早期的v1.0版本(8B、14B、32B、72B)
Agent框架层
在基础模型之上,MiroThinker构建了一套Agent框架,叫做MiroFlow。这个框架负责:
- 管理模型与工具之间的交互
- 追踪和记录研究轨迹
- 处理上下文管理和记忆
- 协调多步骤的研究流程
工具层
MiroThinker可以调用多种外部工具:
- 网络搜索(Web Search)
- 网页浏览(Web Browsing)
- 代码执行(Python Execution)
- 文件读取(File Reading)
- 音频转录(Audio Transcription)
- 视觉问答(VQA)
这些工具赋予了模型与外部世界交互的能力。
核心组件详解
工具调用机制
MiroThinker使用一种统一的XML-JSON混合格式来定义和调用工具。这种设计的好处是:
- 结构清晰,便于模型理解和生成
- 容易扩展,添加新工具很方便
- 便于追踪,可以清楚地记录每次工具调用
一个典型的工具调用可能长这样:
<tool_call>
<tool_name>web_search</tool_name>
<parameters>
{"query": "2026年全球AI大模型市场规模"}
</parameters>
</tool_call>
上下文管理
当交互次数增加时,上下文会迅速膨胀。MiroThinker使用了几种策略来管理这个问题:
- 滑动窗口:只保留最近N轮交互的完整内容
- 摘要压缩:对早期的交互进行摘要,保留关键信息但减少token数量
- 选择性保留:根据相关性判断哪些历史信息需要保留
v1.5版本引入了keep5策略(保留最近5轮的完整内容),实验表明这在效果和效率之间取得了较好的平衡。
轨迹追踪
MiroFlow框架提供了完整的轨迹追踪功能。每次研究任务都会生成一个详细的日志,记录:
- 模型的每次思考过程
- 每次工具调用的输入输出
- 每轮交互花费的时间
- 最终的结论和支撑证据
这个功能对于调试和改进系统非常有价值。
推理配置
根据官方文档,MiroThinker推荐使用以下推理参数:
|
参数 |
推荐值 |
|
temperature |
1.0 |
|
top_p |
0.95 |
|
repetition_penalty |
1.05 |
|
max_context_length |
262144 |
|
max_tokens |
16384 |
有几个值得注意的点:
temperature=1.0:这是一个相对较高的温度值。通常我们会用较低的温度(如0.3-0.7)来获得更确定性的输出。但对于Agent任务来说,较高的温度有助于模型探索更多可能的路径,而不是过早收敛到一个解决方案。
max_context_length=262144:256K的上下文窗口支持很长的交互轨迹。在一些复杂任务中,模型可能会进行上百次工具调用,这需要足够大的上下文来保存所有信息。
repetition_penalty=1.05:轻微的重复惩罚有助于避免模型陷入循环,反复做同样的搜索。
第五章:性能测评——用数据说话
光说不练假把式,让我们看看MiroThinker在各种测试基准上的实际表现。
BrowseComp测试
BrowseComp是OpenAI开发的一个专门评估网页浏览Agent能力的基准测试。它包含1266个精心设计的问题,每个问题都需要模型在互联网上进行深度搜索才能找到答案。
这个测试的设计者有意提高了难度:
- 问题的答案不会出现在搜索结果的第一页
- 需要综合多个来源的信息
- 大多数问题普通人在10分钟内无法解决
测试结果对比:
|
模型 |
BrowseComp准确率 |
|
GPT-4o(无浏览) |
0.6% |
|
GPT-4o(有浏览) |
1.9% |
|
Deep Research |
~50% |
|
MiroThinker-v1.5-30B |
与Deep Research可比 |
这个结果说明什么?
首先,普通的语言模型即使很强大(如GPT-4o),在这类任务上也几乎无能为力。其次,即使给模型加上浏览能力,提升也很有限——这说明「能搜索」和「会研究」是两回事。
MiroThinker用30B参数达到了与OpenAI Deep Research相当的水平,后者基于的基础模型参数量级要大得多。
BrowseComp-ZH测试
这是BrowseComp的中文版本,测试模型在中文互联网上进行研究的能力。
MiroThinker在这个测试上的表现尤其亮眼,超越了Kimi-K2-Thinking。要知道,Kimi-K2-Thinking是一个万亿参数级别的模型,MiroThinker只用了1/30的参数就实现了超越。
GAIA测试
GAIA是另一个权威的通用AI助手评估基准。它包含了多种类型的任务,测试模型的综合能力。
MiroThinker-v1.0在GAIA-Text-103子集上取得了81.9%的准确率,在开源模型中达到了SOTA(最先进)水平。
成本对比
性能只是一方面,成本同样重要。
根据官方数据,MiroThinker-v1.5-30B的单次调用成本约为0.07美元,而Kimi-K2-Thinking的成本约为1.4美元。也就是说,MiroThinker的推理成本只有竞品的1/20。
对于需要大规模使用的场景(比如搭建一个研究助手平台),这个成本差异是非常可观的。
效果实测
无忆研习社决定亲自测试一下MiroThinker的实际效果。我们设计了几个不同类型的任务:
测试一:市场调研
问题:请帮我调研一下2026年全球AI大模型市场的最新竞争格局。
MiroThinker的表现:进行了30多次搜索,浏览了10多个网页,最终输出了一份结构完整的研究报告。特别值得注意的是,报告准确地涵盖了主要玩家,包括一些其他模型容易遗漏的公司(如Google的最新进展)。
测试二:人物调研
问题:搜索Manus核心成员的访谈记录,详细介绍每一个核心成员访谈时聊了什么。
MiroThinker的表现:不仅找到了公开的访谈内容,还很好地提取了每位成员谈话的核心观点。作为对照,我们也看过这些访谈的原始内容,MiroThinker的提取是准确且全面的。
测试三:投资分析
问题:A股会在春节前涨到多少?
MiroThinker的表现:这个问题其实是个陷阱——没有任何模型能准确预测股市。但MiroThinker的回应方式很聪明:它没有给出一个确定的点位预测,而是分析了历史数据和当前政策环境,给出了一个基于概率的合理波动区间。它明确表示这不是预测,实际结果可能因突发因素大幅偏离。
这种「知道自己不知道什么」的能力,恰恰体现了MiroThinker训练的成功。
第六章:手把手教你部署MiroThinker
终于到了实操环节!接下来,无忆研习社将详细介绍如何在自己的环境中部署MiroThinker。
准备工作
硬件要求
首先要明确的是,MiroThinker对硬件有一定要求:
|
模型版本 |
建议GPU配置 |
显存需求(估算) |
|
8B |
单卡A100 40GB |
~20GB |
|
14B |
单卡A100 80GB |
~35GB |
|
30B |
2-4卡A100 |
~70GB |
|
72B |
4-8卡A100 |
~150GB |
|
235B |
多节点集群 |
~500GB |
如果你没有这么多GPU资源,也不用灰心。30B版本用4张消费级显卡(如RTX 4090)也能跑起来,只是速度会慢一些。另外,后面我们还会介绍量化部署方案,可以进一步降低硬件需求。
软件环境
推荐使用以下软件环境:
- Python 3.10+
- CUDA 12.0+
- PyTorch 2.1+
方案一:使用SGLang部署
SGLang是MiroThinker官方推荐的推理框架,特别适合长上下文和复杂Agent任务。
第一步:安装SGLang
pip install sglang[all]
第二步:下载模型
你可以直接从HuggingFace下载:
# 确保安装了huggingface_hub
pip install huggingface_hub
# 登录(如果模型需要授权)
huggingface-cli login
# 模型会在启动时自动下载,或者手动下载
# huggingface-cli download miromind-ai/MiroThinker-v1.5-30B
第三步:启动推理服