📍 无忆研习社 › 开源解码 › 从原理到部署:这可能是目前最强的开源搜索Agent|MiroThinker完全指南

从原理到部署:这可能是目前最强的开源搜索Agent|MiroThinker完全指南

摘要:MiroThinker是一个开源的搜索Agent,通过创新的Interactive Scaling理念,让30B参数的小模型在复杂研究任务上超越万亿参数商业模型。它训练AI像研究员一样主动求证、多轮验证和综合分析,解决了大模型的知识时效性和幻觉问题。文章深度解析了其技术架构、训练方法和部署指南,展示了在BrowseComp等基准测试中的优异表现和低成本优势。
字号 100%
行距 2.05
当前可见 60% 的内容

深度解析: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的工作方式则是:接收输入 → 思考 → 搜索验证 → 发现问题 → 调整假设 → 再次搜索 → 再次验证 → …… → 输出答案。

这是一个闭环的、迭代的过程。模型可以根据外部反馈不断修正自己的推理路径,就像一个研究员在做调研时会不断调整研究方向一样。

技术上,这需要解决几个挑战:

  1. 如何训练模型进行多轮交互:普通的语言模型只训练了「给定输入生成输出」的能力,没有训练「根据工具反馈调整策略」的能力。
  2. 如何避免无效交互:如果模型乱搜一气,既浪费计算资源,又可能引入噪音。需要让模型学会「有策略地搜索」。
  3. 如何处理长轨迹:当交互次数增加时,模型需要记住之前所有的搜索结果和推理过程。这对上下文管理提出了很高的要求。

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使用了几种策略来管理这个问题:

  1. 滑动窗口:只保留最近N轮交互的完整内容
  2. 摘要压缩:对早期的交互进行摘要,保留关键信息但减少token数量
  3. 选择性保留:根据相关性判断哪些历史信息需要保留

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

第三步:启动推理服

🔒
该内容仅对更高等级社区用户开放
请谨慎解锁时效性强且发布日期较早的文章
单篇解锁后若未显示全文请刷新页面
您当前:游客 · 可见 60% 内容 · 升级至 注册用户 可见 70%
👀
游客
可见 60%
✓ 当前
注册用户
注册用户
可见 70%
社区精英
社区精英
可见 100%
社区守护
社区守护
可见 100%
仅解锁本文,永久有效。如需PDF珍藏版,请联系站长获取。 当前单篇价格 ¥9.9
✏️ 发表评论

请先登录后发表评论

前往登录
📊 站点统计
今日发布0 篇
文章总数1107 篇
昨日发布1 篇
本月发布31 篇
建站时间456 天
🔍 搜索
站长微语

联系站长

QQ:2805463528
AIGC 技术社区
致力于解码 AI前沿技术 与经验分享
纯粹的技术应用社区

💡 欢迎您的建议与反馈,让社区变得更好

快速通道
联系站长
站长QQ二维码
AI交流群
AI交流群
仍在路上

那些寒夜里追赶过的方向

那些冷眼下没放弃的理想

一篇一篇写到现在

仍在路上

"不羁放纵爱自由"

—— 致敬 Beyond
持续创作中 莫潇羽 · 无忆研习社
▲