首页/新闻资讯/正文详情

agentic-rl-lab复现Search-R1:接入DeepSeek官方搜索API,让大模型自主决定何时搜索

发布时间:2026/11/5 1:38:35 来源:云帆数科 栏目:资讯中心
agentic-rl-lab复现Search-R1:接入DeepSeek官方搜索API,让大模型自主决定何时搜索
【免费下载链接】agentic-rl-labReproducing and studying RL algorithms for LLM agents, including GRPO, GSPO, DAPO, OPD, Search-R1, ReTool, ALFWorld and beyond.项目地址https://gitcode.com/gh_mirrors/ag/agentic-rl-lab点击查看免费下载本项目 agentic-rl-lab 用 Qwen3.5-4B PyTRIO 完整复现了 Search-R1 强化学习算法把 160 GB 的本地检索库换成 DeepSeek 官方 Search API让大模型在推理过程中自主决定何时搜索、搜什么、何时停止搜索并作答。下文带你用极小的算力与金钱成本把这套 Agentic RL 训练闭环从数据准备、多轮搜索 rollout 到评测一次跑通。Search-R1 是什么让边搜边想学进参数里传统 RAG 的流程是固定的问题 → 检索一次 → 把结果塞进 prompt → 回答。这对简单事实题够用但面对多跳问题就不行了。比如问《小王子》的作者出生在哪个国家模型需要先搜The Little Prince author得到作者 Antoine de Saint-Exupéry再搜Antoine de Saint-Exupéry birthplace country才能回答 France。Search-R1 的核心变化一句话概括搜索从回答前的固定步骤变成了模型在整条推理轨迹中可以反复选择的动作。模型自己生成 query、读取搜索结果、判断信息够不够、决定是否继续搜最后才作答。训练时只根据最终答案给 reward答对得分高、答错得分低、格式不对再扣分。然后同一道题的多条轨迹放在一起比较比组内平均好的被鼓励、差的被压低——这就是 group-relative advantageGRPO 家族的思路。![](03-search-r1/images/Search-R1 · Paper Diagram.png)上图即本项目的 Search-R1 训练总览上半部分是多轮搜索 rolloutQwen3.5-4BLoRA 可训练与固定的搜索引擎交替交互下半部分是组相对策略更新每道题 8 条轨迹、共 64 条计算 reward 与 advantage 后用 PyTRIO 更新参数。注意一个容易误解的点训练对象是模型的 LoRA 权重搜索引擎作为固定环境保留。模型学的是什么时候调用工具、怎么构造 query、怎么用返回的证据。为什么选 DeepSeek 官方搜索 API 作为搜索环境原版 Search-R1 依赖本地 Wikipedia 语料 E5 检索器下载解压后约160 GB检索服务运行还需要约180 GB 内存。对第一次学习 Search-R1 的人来说还没碰到 reward 和 advantage就先卡在 Faiss 启动失败、retriever OOM 这些工程问题上。而 Search-R1 算法本身只要求存在这样一个接口search(query) → observations。所以本项目把本地检索器替换成可切换的在线搜索服务实现在 search.py搜索后端返回内容默认并发默认超时成本deepseek默认Top 3 网页短摘要 标题、来源、URL1660 秒按次计费wikipediaTop 3 英文词条正文片段 URL315 秒免费、无需 API KeyDeepSeek 后端直接调用官方POST /v1/tools/search每次默认取 Top 3 的snippet短摘要缺失时回退summary不额外调用模型整理证据、不 Fetch 页面。两个后端共用同一个search(query) → observations接口对训练算法本身完全透明——模型仍然负责生成 query、判断证据、追加搜索和输出答案。Search-R1 训练流程如何快速复现5 步跑通完整目录与说明见 start.md快速启动和 readme.md。第一步获取代码并配置环境git clone https://gitcode.com/gh_mirrors/ag/agentic-rl-lab.git cd agentic-rl-lab uv sync trio login # 登录 PyTRIO 远端训练服务 swanlab login # 实验记录训练与采样由 PyTRIO 远端完成本地只需要 CPU 环境训练侧按实际处理的训练 Token 计费——模型等待搜索 API 的 GPU 空转时间不产生费用非常适合环境交互时间长、有效训练时间短的 Agentic RL 任务。第二步下载并整理数据uv run python 03-search-r1/prepare_data.py脚本 prepare_data.py 会生成训练集NQ 79,168 题 HotpotQA 90,447 题合计 169,615 题和固定 70 题的评测集。数据里没有人工标注的搜索 query也没有写好的推理轨迹——模型只拿到问题搜索路径由策略自己探索这是 RL 与 SFT 模仿学习的关键区别。第三步配置搜索后端cp 03-search-r1/.env.example 03-search-r1/.env在03-search-r1/.env中填入DEEPSEEK_API_KEY你的key也兼容DEEPSEEK_KEY即可使用默认的 DeepSeek 后端想免密钥运行则加参数--search-backend wikipedia即可。工具协议定义在 protocol.pysearch(query)只有一个字符串参数system prompt 要求模型需要证据才搜索、每轮至多调用一次、最终以Answer: short answer一行作答。第四步启动 20-step 小规模训练uv run python 03-search-r1/train.py \ --max-steps 20 \ --questions-per-batch 8 \ --group-size 8 \ --save-every 5 \ --base-model Qwen/Qwen3.5-4B \ --search-backend deepseek \ --swanlab-mode online每个 step 8 道题 × 每题 8 条真实多轮搜索轨迹 64 条轨迹。关键超参train.pyLoRA rank 32、最大搜索 4 次、最大 assistant turns 6、单条轨迹上限 8192 tokensloss 用importance_sampling。第五步评测 Base 与训练后的 checkpoint# 先评 Base Model uv run python 03-search-r1/eval.py --base-model Qwen/Qwen3.5-4B \ --search-backend deepseek --output eval_result/eval_results_base.jsonl # 再评训练出的 Step 20 权重训练结束时终端会打印 sampler weights 路径 uv run python 03-search-r1/eval.py \ --model-path trio://RUN_ID/sampler_weights/STEP_20_WEIGHTS_NAME \ --search-backend deepseek --output eval_result/eval_results_rl_step_20.jsonl评测代码在 eval.pyBase 和 checkpoint 必须使用同一个搜索后端与搜索配置对 7 个 benchmark 各 10 题计算 Macro EM精确匹配和 Format 合规率。想快速核对整条链路可先加--limit 20。训练闭环里的三个关键实现细节细节一第一轮共享 prompt搜索后轨迹真正分叉同一道题第一次采样时 8 条轨迹的 prompt 完全相同可以一次sample_async(num_samples8)搞定。但第一轮搜索后8 条轨迹的 query、observation、下一轮 prompt 各不相同就必须把每条未结束轨迹独立推进用多个num_samples1的请求并发执行。Search-R1 group rollout 流程共享根 prompt 与搜索后分叉的轨迹这个状态机完整实现在 rollout.py轨迹内部严格串行生成 → 搜索 → 读 observation → 继续生成不同轨迹之间并发。既保留了每条 Agent 轨迹的因果顺序又不会让 64 条轨迹完全串行等待。细节二只用最终答案算 Reward避免 reward hackingreward.py 只有三档 reward不给搜索次数、中间 query 加任何人工分数给搜索次数奖励会诱导模型不停搜索最终结果Reward格式合法且答案正确1.0格式合法但答案错误0.0格式非法 / 没有最终答案-0.1然后在一道题的 8 条轨迹内做 group-relative advantageA_i r_i − mean(r_group)。例如一组 reward 均值为 0.225 时r1.0的轨迹得到0.775r-0.1的得到-0.325。若整组 reward 相同所有 advantage 为 0这一组不提供梯度、跳过更新。细节三搜索结果留在上下文但不参与 Loss多轮轨迹里混着四类 tokensystem/user、assistant 的 search(query)、tool observation、assistant 的最终 Answer。模型生成的 assistant token 是动作要参与策略更新搜索 API 返回的 observation 是环境状态只能当上下文不能当成模型生成的 token 去训练。Search-R1 token-level loss mask只有 assistant 动作 token 携带 advantagetrain.py 的build_datum()里无需单独的 mask 字段直接给 observation token 填零 advantage 和零 old logprobsystem/user/tool 位置 advantage 0assistant 位置 advantage 整条轨迹的 advantage。importance_samplingloss 只在 advantage ≠ 0 的位置产生贡献——搜索结果依然影响后续决策却不会被错误地当成模型动作参与 policy loss。30-step 训练后的评测结果模型学会了什么本次用 DeepSeek 官方 Search API 训练 30 步在同一套固定 70 题、相同搜索配置下评测 Base 与 Step 30模型 / CheckpointMacro EMFormat平均搜索次数Qwen3.5-4B40.00%82.86%1.76RL Step 3042.86%91.43%2.77两点值得注意格式合规的回答多了 6 题说明模型学会了适时停止搜索并按格式作答平均搜索次数从 1.76 升到 2.77说明模型开始更充分地利用多跳证据。两次评测搜索成功率均为 100%没有超时或 429。一条真实 MuSiQue 轨迹的对比更有说服力Base 模型搜了 4 次却一直没给出最终Answerreward -0.1Step 50 保留了完整的多跳实体链John Cabot → child答对而 Step 200 搜索链变短后实体链断裂反而答错——搜索更少不等于更好Search-R1 真实轨迹对比Base 与 RL checkpoints 的搜索行为差异训练时最应该盯住哪些指标Agentic RL 和纯数学 RL 最大的不同数学题的 verifier 是确定的但工具环境会超时、限流、返回空结果——环境质量本身就是实验变量。建议在 SwanLab 里重点盯这几项指标回答的问题reward/format模型是否学会结束搜索并按格式回答reward/correct最终答案正确率是否变化rollout/search_calls/rollout/turns搜索行为和轨迹长度怎么变rollout/degenerate_group_rate多少问题没有组内训练信号search/success_rate/search/error_rate工具环境是否可靠、reward 是否被外部错误污染如果reward/correct下跌同时search/error_rate上升先查环境再下模型退化的结论。小结这条复现路径的边界在哪里本文聚焦 Search-R1 核心算法闭环问题、工具、环境交互、group-relative advantage、retrieved-token mask、policy update未逐项还原原论文 160 GB 检索基础设施绝对分数不能与论文直接比较评测集为固定 70 题适合观察行为变化正式结论需要更大评测集与多随机种子DeepSeek 与 Wikipedia 后端、新旧 Evidence 接入属于不同搜索环境只能在各自相同环境内比较 checkpoint。在这些边界内这套复现把 Search-R1 的入门门槛降到了普通开发者的水平本地只需 CPU写的是普通 Python数据、工具环境、rollout 状态机、reward、advantage采样与训练交给 PyTRIO 远端。当你真正需要论文级指标时再把search(query)换回本地 Wikipedia retriever 即可——算法接口不变。完整代码见 03-search-r1/ 目录data.py、protocol.py、search.py、rollout.py、reward.py、train.py、eval.py、analyse.py建议按 start.md 的顺序动手跑一遍。赞分享【免费下载链接】agentic-rl-labReproducing and studying RL algorithms for LLM agents, including GRPO, GSPO, DAPO, OPD, Search-R1, ReTool, ALFWorld and beyond.项目地址https://gitcode.com/gh_mirrors/ag/agentic-rl-lab点击查看免费下载相关推荐Gatsby 站点搜索接入指南从 js-search 客户端搜索到 Algolia API 搜索Gatsby 站点搜索接入指南从 js search 客户端搜索到 Algolia API 搜索 导读 本文围绕 Gatsby 官方文档 adding sea前端静态站点Web框架DataHub 搜索文档Search Document建模指南从 PDL 模式定义到搜索索引与 APIDataHub 搜索文档Search Document建模指南从 PDL 模式定义到搜索索引与 API 导读 本文深入讲解 DataHub 元数据模型中的数据目录数据治理数据血缘后端前端如何快速上手Matterport3DSimulatorDocker安装与环境配置终极教程如何快速上手Matterport3DSimulatorDocker安装与环境配置终极教程 Matterport3DSimulator是一款基于真实全景图像的A上一篇如何在3分钟内为Word添加APA第7版参考文献格式下一篇FastbootEnhance从命令行到可视化重新定义Android设备管理的Windows神器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

agentic-rl-lab训练家务Agent:ALFWorld真实TextWorld环境+12K长轨迹的Agentic RL实践
agentic-rl-lab训练家务Agent:ALFWorld真实TextWorld环境+12K长轨迹的Agentic RL实践

【免费下载链接】agentic-rl-lab Reproducing and studying RL algorithms for LLM agents, including GRPO, GSPO, DAPO, OPD, Search-R1, ReTool, ALFWorld and beyond. 项目地址: https://gitcode.com/gh_mirrors/ag/agentic-rl-lab 点击查看 免费下载 agentic-… · 2026/11/5 1:38:35

Windows 远程桌面添加 SSL 证书指南(阿里云免费证书)
Windows 远程桌面添加 SSL 证书指南(阿里云免费证书)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 1:38:35

具身智能“想象力”闭环构建原理(6):基于想象力机制的通用任务实现方法研究
具身智能“想象力”闭环构建原理(6):基于想象力机制的通用任务实现方法研究

前沿技术探索:TVA智能体(简称TVA)TVA智能体(Transformer-based Vision Agent)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强… · 2026/11/5 1:37:35

省市县街道四级地址表:SQL建表、导入与联动查询实战
省市县街道四级地址表:SQL建表、导入与联动查询实战

简介:面向需要搭建国内省、市、县、街道乡镇四级联动地址数据的开发者与数据库使用人员,这份地区表着重解决行政区划层级、父子关系与联动标识难以一次性整理的问题。压缩包共6个文件,以xlsx表格和sql数据库文件为主,并配有png示意… · 2026/11/5 2:14:48

LogViewPro中文版安装配置全攻略:大文件打开不卡顿
LogViewPro中文版安装配置全攻略:大文件打开不卡顿

简介:LogViewPro中文版是一款面向系统管理员、开发人员及运维工程师的超大文本文件查看与分析工具,针对几GB级日志文件加载缓慢、检索困难的痛点,提供快速浏览、全文搜索、条件过滤与统计分析能力。压缩包为zip格式,体积约1.54MB&… · 2026/11/5 2:14:48

Maven仓库机制与可执行JAR打包实战指南
Maven仓库机制与可执行JAR打包实战指南

简介:本资源是一份面向Java开发者与Maven初学者的实战型学习包,聚焦Maven核心机制中的仓库管理、本地依赖引入及可执行JAR包构建三大痛点问题,适用于项目构建调试、私有库集成与部署交付等典型开发场景。压缩包为5KB的ZIP格式,共含… · 2026/11/5 2:14:48

ROS无人机YOLO视觉精准投放:从像素到落点的闭环链路设计
ROS无人机YOLO视觉精准投放:从像素到落点的闭环链路设计

简介:面向ROS与PX4无人机开发的学习者与竞赛选手,这套资源围绕物体识别与精准投放任务给出可直接运行的完整工程。方案以YOLO完成目标检测,将识别到的位置信息转化为无人机控制指令,使机体持续保持在目标正上方,并在满… · 2026/11/5 2:14:48

C++标准库头文件正确用法
C++标准库头文件正确用法

前言 C 标准库由几十个头文件组成&#xff0c;每个头文件声明一组相关的设施。写代码时 #include 哪几个&#xff0c;看起来是小事&#xff0c;实际上直接影响可移植性、编译速度和代码的可维护性。 最常见的坏习惯是 #include <bits/stdc.h>。GCC 提供了这样一个扩展头&… · 2026/11/5 2:14:48

东南亚SHP文件诊断与修复:GDAL+GeoPandas实战指南
东南亚SHP文件诊断与修复:GDAL+GeoPandas实战指南

简介&#xff1a;本资源是一套完整的东南亚区域GIS矢量数据集&#xff0c;面向地理信息科学、城市规划、环境研究及区域经济分析等领域的初学者与专业用户&#xff0c;解决高精度行政区划、水系与城市空间分布数据缺失问题。压缩包共53个文件&#xff0c;包含6个核心SHP主文件&… · 2026/11/5 2:13:48

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时&#xff0c;Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门&#xff0c;我先说个结论&#xff1a;这事真不难&#xff0c;难的是资料太散、路线太多&#xff0c;今天这个框架明天那个工具&#xff0c;新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师&#xff0c;我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码&#xff0c;在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码