WebThinker

GitHub
1.4k 138 中等 2 次阅读 3天前MIT其他
AI 解读 由 AI 自动生成,仅供参考

WebThinker 是一款专为增强大型推理模型深度研究能力而设计的开源框架。它赋予 AI 自主进行网络搜索、信息整合及复杂逻辑推理的能力,使其不再局限于静态知识库,而是能像人类研究员一样探索未知领域。

针对大模型在处理实时性要求高或需要多步验证的调研任务时表现不足的痛点,WebThinker 通过集成高效的搜索接口(如 Google Serper)与先进的推理模型(如 QwQ、R1 系列),实现了从问题理解到答案生成的闭环。该项目论文已被 NeurIPS 2025 接收,证明了其学术价值。

WebThinker 特别适合希望构建智能体(Agent)的开发者、从事 AI 应用的研究人员,以及需要自动化深度信息检索的用户。其核心亮点在于对开源推理模型的优化适配,提供了多种参数规模的预训练模型供直接部署。所有代码均已公开,用户可轻松在本地或云端搭建属于自己的深度研究助手,开启更智能的信息探索之旅。

使用场景

某互联网大厂的产品经理正在筹备下一代智能健康监测设备的立项方案,急需了解全球最新的竞品动态与技术路线,以支撑季度战略规划。

没有 WebThinker 时

  • 依赖通用大模型,因训练数据截止,无法获取近半年发布的海外竞品核心参数。
  • 需人工在多个搜索引擎反复查询,手动复制粘贴整理信息,耗时数天且易疲劳出错。
  • 面对海量碎片化新闻,难以辨别真伪,常因幻觉问题引用错误数据导致决策风险。
  • 仅能进行浅层信息罗列,缺乏对技术演进趋势的深度逻辑推演与关联分析。

使用 WebThinker 后

  • 集成 Google Serper API,自动检索全网实时资讯,彻底突破模型知识库的时效限制。
  • 自主规划多步搜索策略,自动聚合并清洗数据,将原本数天的调研工作压缩至小时级。
  • 利用内置推理模型交叉验证信源,显著降低幻觉率,确保关键市场数据准确可信。
  • 输出包含引用链接的深度分析报告,直接提供可落地的技术路线建议,赋能业务决策。

WebThinker 通过赋予大模型深度联网推理能力,让复杂市场调研从“人工搬运”升级为“智能洞察”。

运行环境要求

操作系统
  • 未说明
GPU

未明确说明,需支持 vLLM 部署大模型(如 QwQ-32B)

内存

未说明

依赖
notes1. 需配置 Google Serper API Key(Bing Search API 将于 2025 年 8 月停用);2. 必须使用 vLLM 部署推理模型及辅助模型;3. 推荐使用 Crawl4AI 搭建网页解析客户端以处理 JS 渲染内容;4. 支持问题解决与报告生成两种模式;5. 模型权重可在 Hugging Face 获取。
python3.9+
vllm
crawl4ai
WebThinker hero image

快速开始

🌐 WebThinker:赋能大型推理模型具备深度研究能力

Notion Paper Paper License Python 3.9+ X (formerly Twitter) URL

🤗 WebThinker-QwQ-32B | 🤗 WebThinker-R1-7B | 🤗 WebThinker-R1-14B | 🤗 WebThinker-R1-32B

如果您喜欢我们的项目,请在 GitHub 上给我们一个星标 ⭐ 以获取最新更新。

📣 最新动态

🔥 深度研究智能体家族

欢迎尝试我们的深度研究智能体系列:

DeepAgent: A General Reasoning Agent with Scalable Toolsets (New!)
Authors: Xiaoxi Li, Wenxiang Jiao, Jiarui Jin, Guanting Dong, Jiajie Jin, Yinuo Wang, Hao Wang, Yutao Zhu, Ji-Rong Wen, Yuan Lu, Zhicheng Dou
TLDR: 一个端到端的深度推理智能体,通过受大脑启发的记忆折叠机制(brain-inspired memory folding mechanism),执行自主思考、工具发现和动作执行。
github github arXiv Paper

WebThinker: Empowering Large Reasoning Models with Deep Research Capability (NeurIPS 2025)
Authors: Xiaoxi Li*, Jiajie Jin*, Guanting Dong*, Hongjin Qian, Yutao Zhu, Yongkang Wu, Ji-Rong Wen, Zhicheng Dou
TLDR: 一个深度研究智能体,赋予大型推理模型自主搜索、网页浏览和研究报告撰写的能力。
github github arXiv Paper

Search-o1: Agentic Search-Enhanced Large Reasoning Models (EMNLP 2025)
Authors: Xiaoxi Li, Guanting Dong, Jiajie Jin, Yuyao Zhang, Yujia Zhou, Yutao Zhu, Peitian Zhang, Zhicheng Dou
TLDR: 一个智能体搜索增强框架,通过智能体检索增强生成(Agentic RAG)和文档内推理(reasoning-in-documents)模块,将自主知识检索与大型推理模型相结合。
github github arXiv Paper Project Page

🎬 演示

💡 概述

WebThinker 是一个完全由大型推理模型(Large Reasoning Models, LRMs)驱动的深度研究框架。WebThinker 使 LRMs 能够在其思考过程中自主搜索深入探索网页起草研究报告

与现有的开源深度搜索智能体不同,后者通常采用带有预定义工作流的检索增强生成(Retrieval-Augmented Generation, RAG),WebThinker 允许推理模型本身在思考期间执行操作,从而在单次生成中实现端到端任务执行

📊 整体性能

如上所示,WebThinker 在知识密集型复杂推理基准测试(GPQA, GAIA, WebWalkerQA, HLE)和用于报告生成的开放式推理任务中,始终优于竞争方法。我们的 WebThinker-32B 以 QwQ-32B 作为骨干推理模型,在所有任务上均实现了卓越的性能。

✨ WebThinker 框架

Model Comparison

WebThinker 使推理模型能够在推理过程中自主进行网络搜索和网页导航,以获取外部知识。这种方法显著减少了知识密集型领域研究人员收集信息所需的时间和成本。此外,WebThinker 允许大型推理模型(LRM)在思考和搜索的同时起草章节内容,生成全面、定制化的报告,直接回应用户的研究问题。

主要特性:

  • 我们引入了一个 深度网络探索器(Deep Web Explorer),赋能 LRM 进行搜索、通过点击交互元素(如链接或按钮)导航页面,并提取相关信息。基于初始搜索结果,LRM 可以发起后续搜索并遍历更深层的链接,直到收集到所有相关信息。
  • 对于科学报告,我们的 自主思考 - 搜索 - 起草(Autonomous Think-Search-and-Draft) 策略将实时知识寻求与报告创建相结合。我们为 LRM 配备了三个专用工具:(1) 起草特定章节的内容,(2) 检查当前报告,以及 (3) 编辑报告——确保报告保持全面、连贯,并能适应新的见解。
  • 我们正在开发 基于强化学习(RL)的训练策略,通过利用来自复杂任务的大规模推理轨迹来优化端到端任务性能。使用推理准确性、工具使用和最终输出的准确度,我们构建偏好对用于在线 DPO(直接偏好优化)训练,使模型能够逐步提高其研究能力。

🔧 安装

环境设置

# Create conda environment
conda create -n webthinker python=3.9
conda activate webthinker

# Install requirements
cd WebThinker-main
pip install -r requirements.txt

🏃 快速开始

准备工作

模型服务部署

在运行 WebThinker 之前,请确保您的推理模型和辅助模型已使用 vLLM 进行服务部署。在我们的实验中,我们使用 QwQ-32B 作为推理模型,使用 Qwen-32B-Instruct 作为辅助模型。您也可以探索其他指令微调模型作为您的辅助模型,这将用于网页阅读、报告撰写/编辑、评估等。关于模型服务的详细说明,请参阅 此处

网页解析客户端

为了获得更好的网络爬取性能,我们建议在 scripts/search/bing_search.py 中使用 Crawl4AI 设置一个网页解析客户端。这将有助于处理 JavaScript 渲染的内容,并提供更可靠的网页提取。

现在您可以使用提供的脚本运行不同的推理模式。以下是执行每种模式的示例:

问题解决模式

  1. 如果您想询问单个问题,请运行以下命令:
python scripts/run_web_thinker.py \
    --single_question "What is OpenAI Deep Research?" \
    --search_engine "serper" \
    --serper_api_key "YOUR_GOOGLE_SERPER_API" \
    --api_base_url "YOUR_API_BASE_URL" \
    --model_name "QwQ-32B" \
    --aux_api_base_url "YOUR_AUX_API_BASE_URL" \
    --aux_model_name "Qwen2.5-32B-Instruct" \
    --tokenizer_path "PATH_TO_YOUR_TOKENIZER" \
    --aux_tokenizer_path "PATH_TO_YOUR_AUX_TOKENIZER"
  1. 如果您想在基准测试上运行结果,请运行以下命令:
python scripts/run_web_thinker.py \
    --dataset_name gaia \
    --split dev \
    --concurrent_limit 32 \
    --max_search_limit 15 \
    --search_engine "serper" \
    --serper_api_key "YOUR_GOOGLE_SERPER_API" \
    --api_base_url "YOUR_API_BASE_URL" \
    --model_name "QwQ-32B" \
    --aux_api_base_url "YOUR_AUX_API_BASE_URL" \
    --aux_model_name "Qwen2.5-32B-Instruct" \
    --tokenizer_path "PATH_TO_YOUR_TOKENIZER" \
    --aux_tokenizer_path "PATH_TO_YOUR_AUX_TOKENIZER"

报告生成模式

  1. 如果您想询问单个问题,请运行以下命令:
python scripts/run_web_thinker_report.py \
    --single_question "What are the models of OpenAI and what are the differences?" \
    --search_engine "serper" \
    --serper_api_key "YOUR_GOOGLE_SERPER_API" \
    --api_base_url "YOUR_API_BASE_URL" \
    --model_name "QwQ-32B" \
    --aux_api_base_url "YOUR_AUX_API_BASE_URL" \
    --aux_model_name "Qwen2.5-32B-Instruct" \
    --tokenizer_path "PATH_TO_YOUR_TOKENIZER" \
    --aux_tokenizer_path "PATH_TO_YOUR_AUX_TOKENIZER"
  1. 如果您想在基准测试上运行结果,请运行以下命令:
python scripts/run_web_thinker_report.py \
    --dataset_name glaive \
    --split test \
    --concurrent_limit 32 \
    --search_engine "serper" \
    --serper_api_key "YOUR_GOOGLE_SERPER_API" \
    --api_base_url "YOUR_API_BASE_URL" \
    --model_name "QwQ-32B" \
    --aux_api_base_url "YOUR_AUX_API_BASE_URL" \
    --aux_model_name "Qwen2.5-32B-Instruct" \
    --tokenizer_path "PATH_TO_YOUR_TOKENIZER" \
    --aux_tokenizer_path "PATH_TO_YOUR_AUX_TOKENIZER"

参数说明:

  • --dataset_name: 要使用的数据集名称 (glaive)。
  • --split: 要运行的数据划分 (test)。
  • --single_question: 在单问题模式下您想要提出的问题。
  • --concurrent_limit: 最大并发请求数。
  • --max_search_limit: 每个推理会话的最大搜索查询次数。
  • --search_engine: 要使用的搜索引擎 (bing 或 serper)。默认值:bing。
  • --serper_api_key: 您的 Google Serper API 密钥(使用 Bing 时不需要)。
  • --bing_subscription_key: 您的 Bing 搜索 API 订阅密钥(使用 Serper 时不需要)。
  • --api_base_url: 主模型 API 的基础 URL。
  • --model_name: 要使用的主模型名称。
  • --aux_api_base_url: 辅助模型 API 的基础 URL。
  • --aux_model_name: 要使用的辅助模型名称。

运行演示

您可以使用以下命令运行我们创建的演示,我们将根据您输入的问题进行深入探索和思考。

cd demo
streamlit run_demo.py

注意: 在运行之前,需要在 demo/settings.py 中配置相关参数。

基准测试 (Benchmarks)

我们使用的基准测试分为两类:

  • 复杂推理基准测试 (Complex Reasoning Benchmarks):
  • 科学报告评估:

所有预处理的数据均可在 ./data/ 目录中找到。对于 GAIA、HLE 和 Reasoning-v1-20m,我们采样了一部分仅包含文本的问题子集,以便更高效地进行评估。

评估 (Evaluation)

我们的模型推理脚本会自动保存模型的输入和输出文本以供评估。

问题解决评估 (Problem Solving Evaluation)

您可以使用以下命令来评估模型的问题解决性能:

python scripts/evaluate/evaluate.py \
    --output_path "YOUR_OUTPUT_PATH" \
    --task math \
    --use_llm \
    --api_base_url "YOUR_AUX_API_BASE_URL" \
    --model_name "Qwen2.5-72B-Instruct" \
    --extract_answer

参数说明:

  • --output_path: 用于评估的模型输出路径。
  • --task: 任务名称。除非是代码任务(此时设为 code),否则通常可以将其设置为 math(适用于任何问答 (QA) 任务)。
  • --use_llm: 是否使用大语言模型 (LLM) 来评估模型的性能。
  • --api_base_url: 大语言模型 (LLM) 应用程序接口 (API) 的基础统一资源定位符 (URL)。
  • --model_name: 用于 LLM 评估的模型名称。
  • --extract_answer: 是否从模型输出中提取答案,否则它将使用模型输出的最后几行作为最终答案。仅在 --use_llm 设置为 True 时使用。

报告生成评估 (Report Generation Evaluation)

我们采用 DeepSeek-R1GPT-4o 执行 列表级评估 (listwise evaluation),以比较不同模型生成的报告。您可以使用以下命令评估报告:

python scripts/evaluate/evaluate_report.py \
    --api-base-url "YOUR_API_BASE_URL" \
    --api-key "YOUR_API_KEY" \
    --models "YOUR_MODEL_NAME" \
    --model-to-test-dir "YOUR_MODEL_OUTPUT_DIRECTORY"

参数说明:

  • --api-base-url: 大语言模型 (LLM) 应用程序接口 (API) 的基础统一资源定位符 (URL)(例如:"https://openrouter.ai/api/v1" 或 "https://api.openai.com/v1")。
  • --api-key: 您用于 LLM 服务的 API 密钥。
  • --models: 用于评估报告的模型名称列表(例如:"deepseek/deepseek-r1", "openai/gpt-4o")。脚本将遍历这些模型以获取评估结果。
  • --model-to-test-dir: 存储您的模型生成的报告(markdown 文件)的目录路径。

📊 提供报告对比:

我们在 ./outputs/ 目录中包含了由 WebThinkerGrok3 DeeperSearchGemini2.0 Deep Research 生成的全部 30 份测试报告,供您参考和对比。

📄 引用 (Citation)

如果您发现这项工作有帮助,请引用我们的论文:

@article{Li2025WebThinker,
  author       = {Xiaoxi Li and
                  Jiajie Jin and
                  Guanting Dong and
                  Hongjin Qian and
                  Yutao Zhu and
                  Yongkang Wu and
                  Ji{-}Rong Wen and
                  Zhicheng Dou},
  title        = {WebThinker: Empowering Large Reasoning Models with Deep Research Capability},
  journal      = {CoRR},
  volume       = {abs/2504.21776},
  year         = {2025},
  url          = {https://doi.org/10.48550/arXiv.2504.21776},
  doi          = {10.48550/ARXIV.2504.21776},
  eprinttype    = {arXiv},
  eprint       = {2504.21776},
  timestamp    = {Sun, 25 May 2025 20:50:43 +0200},
  biburl       = {https://dblp.org/rec/journals/corr/abs-2504-21776.bib},
  bibsource    = {dblp computer science bibliography, https://dblp.org}
}

📄 许可证 (License)

本项目采用 MIT 许可证 发布。

📞 联系方式 (Contact)

如有任何问题或反馈,请通过 xiaoxi_li@ruc.edu.cn 与我们联系。

星标历史 (Star History)

Star History Chart

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2天前
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

74.9k|★★★☆☆|今天
语言模型图像开发框架

awesome-machine-learning

awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。

72.1k|★☆☆☆☆|2天前
开发框架其他

scikit-learn

scikit-learn 是一个基于 Python 构建的开源机器学习库,依托于 SciPy、NumPy 等科学计算生态,旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口,涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具,内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。 对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言,scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点,让用户无需重复造轮子,只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。 其核心技术亮点在于高度一致的 API 设计风格,所有估算器(Estimator)均遵循相同的调用逻辑,极大地降低了学习成本并提升了代码的可读性与可维护性。此外,它还提供了强大的模型选择与评估工具,如交叉验证和网格搜索,帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目,scikit-learn 以其稳定性、详尽的文档和活跃的社区支持,成为连接理论学习与工业级应用的最

65.6k|★☆☆☆☆|今天
开发框架其他数据工具

keras

Keras 是一个专为人类设计的深度学习框架,旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。 无论是刚入门的学生、专注算法的研究人员,还是需要快速落地产品的工程师,都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。 Keras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码,即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性,还允许开发者根据需求自由选择:利用 JAX 或 PyTorch 的即时执行模式进行高效调试,或切换至速度最快的后端以获得最高 350% 的性能提升。此外,Keras 具备强大的扩展能力,能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群,是连接原型开发与生产部署的理想桥梁。

63.9k|★★☆☆☆|昨天
开发框架数据工具其他