ReCall
ReCall 是一套开源框架,专门用强化学习让大语言模型学会“自己调用工具”。它不需要任何人工标注的工具使用示例,就能让模型像 OpenAI o3 一样,灵活组合搜索、计算器、数据库等任意工具,完成复杂的多步推理任务。相比前身 ReSearch(仅支持搜索),ReCall 把能力扩展到所有用户自定义工具,并配套提供合成数据生成方案,帮助模型在多样化场景里练出高阶工具链思维。
如果你正在做 AI Agent、RAG 或需要让大模型“动手”解决实际问题,ReCall 提供了可直接运行的训练脚本、预训练模型和一键安装指南,非常适合研究人员和开发者快速上手实验。
使用场景
一家 30 人的跨境电商 SaaS 初创公司,正在把 AI 客服助手接入 Shopify、WooCommerce 和 TikTok Shop 的订单、库存、物流 API,让客服机器人能实时回答“我的包裹到哪了”“能不能改地址”这类复杂问题。
没有 ReCall 时
- 需要 3 名算法工程师花 2 周手工标注 5 000 条“工具调用轨迹”(先查订单→再查物流→再查库存),标注成本高且容易遗漏边界情况。
- 上线后,每当 TikTok Shop 更新 API 字段,就要重新标注、重训模型,迭代周期至少 3 天。
- 机器人遇到多步任务(先确认订单状态→再判断能否改地址→最后调用改地址接口)时,经常漏掉中间步骤,导致用户投诉。
- 不同店铺用的库存系统版本不同,传统微调模型在新系统上直接“翻车”,准确率从 92% 跌到 67%。
使用 ReCall 后
- 零标注:工程师只需把 Shopify、WooCommerce、TikTok Shop 的 API 文档写成 JSON Schema,ReCall 用强化学习自动生成 20 万条合成对话,2 小时完成训练。
- 零重训:TikTok Shop 更新字段后,把新 Schema 替换即可,ReCall 当晚自动重跑 RL,第二天上线,无需人工干预。
- 零漏步:ReCall 在训练中学会“先查订单→再查物流→再查库存”的完整链路,复杂多步任务成功率从 67% 提升到 94%。
- 零翻车:面对不同版本的库存系统,ReCall 通过 RL 探索不同 API 组合,跨系统准确率稳定在 91% 以上。
ReCall 让跨境电商客服团队用 1 名工程师、1 晚时间,就能让 AI 客服像资深运营一样熟练调用任意店铺后台,彻底告别“人工标注—微调—翻车—再标注”的循环。
运行环境要求
- Linux
需要 NVIDIA GPU,显存 ≥24GB(示例脚本使用 4×GPU),CUDA 11.8+(与 faiss-gpu=1.8.0 兼容)
未说明

快速开始
我们提出了ReCall,一个新颖的框架,通过强化学习训练大语言模型进行工具调用推理——且无需任何关于工具使用轨迹或推理步骤的监督数据。ReCall使大语言模型能够自主地使用并组合任意工具,例如OpenAI o3,为构建通用智能体提供了一种易于实现的方法。此外,我们还提出了一种全新的视角,用于生成包含多样化环境和复杂多步任务的合成数据,从而帮助大语言模型发展出复杂的基于工具的推理能力。这是一项正在进行中的工作,我们正积极推进其研发。
[!重要] ReCall是ReSearch的后继版本,是一个更为全面的框架,不仅支持搜索工具,还能扩展到任意用户自定义工具的推理。它可直接替代ReSearch。我们已将ReSearch的原始实现存档在
re-search分支中。
📰 新闻
- [2025-04-24] 🎉 我们发布了ReCall的第一个版本,并存档了ReSearch的原始实现。
- ➡️ 仓库名称由ReSearch更改为ReCall。
- 📝 我们发布了一篇博客,介绍ReCall的理念。
- 📦 当前ReCall的实现基于verl 0.3.0 + vllm 0.8.4。
- [2025-03-27] 🤗 我们在Hugging Face上发布了训练好的ReSearch模型,欢迎查看!
- [2025-03-26] 🎉 我们发布了论文并更新了ReSearch的代码。
- 📝 论文已在arXiv上发布,更多细节和评估结果请参见我们的论文。
- 🛠️ 仓库已更新,加入了新的实现,特别是在强化学习训练过程中引入了搜索功能。该版本的实现基于最新发布的verl。
- [2025-03-03] ✅ 我们已发布了ReSearch实现的预览版。
📦 安装
我们建议使用conda来管理环境。首先创建一个conda环境并激活它。
conda create -n re-call python==3.10
conda activate re-call
然后安装依赖项,其中src/下的包将以可编辑模式安装。详细信息请参阅setup.py。
git clone https://github.com/Agent-RL/ReCall.git
cd ReCall
pip3 install -e .
pip3 install flash-attn --no-build-isolation
如果希望基于FlashRAG搭建一个维基百科RAG系统,则需要按如下方式安装faiss-gpu。正如FlashRAG中所述,由于使用pip安装faiss时存在兼容性问题,我们需要使用以下conda命令来安装faiss-gpu。
conda install -c pytorch -c nvidia faiss-gpu=1.8.0
🚀 快速入门
如果您想了解当前版本ReCall的详细信息,请先参阅博客。
数据准备
ReCall是在我们的合成数据集SynTool与MuSiQue的训练集混合的基础上训练的。您可以从这里下载预处理后的训练数据,并直接用于训练。如需准备带有特定工具的自有数据,可以参考data/prepare_musique_recall.py,其中提供了使用维基百科搜索工具为MuSiQue准备数据的脚本。
沙箱服务
由于工具是以可执行的Python代码实现的,因此工具执行器负责运行这些Python代码。为确保安全性和可靠性,我们实现了在远程服务器上运行Python代码的沙箱环境。要启动沙箱服务,运行以下命令:
cd scripts/serving
python sandbox.py --port {port}
注意:当前实现是一个基础的沙箱环境。我们计划在未来的更新中采用更加健壮、安全的沙箱。建议将沙箱托管在远程服务器上,因为本地托管可能会使您的机器面临潜在的安全风险。
检索器服务
为了在带有维基百科搜索工具的MuSiQue数据上进行训练,我们提供了基于FlashRAG和FastAPI实现的维基百科检索器服务。在启动检索器服务之前,您需要下载预先索引的维基百科、维基百科语料库及相应的检索器模型。更多详情请参阅FlashRAG的文档。
要启动检索器服务,您需要先在scripts/serving/retriever_config.yaml中填写检索模型、索引和语料库的正确路径,以及可用的GPU ID。随后,您可以运行以下命令启动检索器服务:
cd scripts/serving
python retriever_serving.py \
--config retriever_config.yaml \
--num_retriever {num_retriever} \
--port {port}
训练
我们的训练框架基于 verl,这是一个用于大语言模型的强大强化学习框架。我们对 verl 的代码进行了深度定制以满足自身需求,修改后的版本位于 src/verl 目录下。训练脚本的示例则位于 scripts/train 目录中。
单节点训练
以下是在本地使用 4 块 GPU 训练 Qwen2.5-7B-Instruct 的示例。请注意,下面的训练脚本仅作为单节点训练的示例,采用较小的批量大小以便快速上手,并不保证训练性能。
cd scripts/train
bash train.sh \
--train_batch_size 8 \
--ppo_mini_batch_size 4 \
--use_re_call True \
--prompt_template_name re_call_template_sys \
--actor_model_path {model/path/to/qwen2.5-7b-instruct} \
--search_url {your-hosted-retriever-url} \
--sandbox_url {your-hosted-sandbox-url} \
--project_name {wandb-project-name} \
--experiment_name {wandb-experiment-name} \
--nnodes 1 \
--n_gpus_per_node 4 \
--save_freq 5 \
--test_freq 5 \
--total_epochs 2 \
--wandb_api_key {your-wandb-api-key} \
--save_path {path/to/save} \
--train_files "['train1.parquet', 'train2.parquet']" \
--test_files "['test1.parquet', 'test2.parquet']"
多节点训练
如果您希望完全复现 ReCall,请参考 scripts/train/train_multi_node.sh 中的多节点训练脚本。
推理
本节演示如何使用训练好的 ReCall 模型进行推理。我们在 src/re_call/inference/re_call.py 中提供了一个标准的封装类,以简化推理流程。开始使用时,您只需提供模型 URL 和沙盒 URL,然后调用 run 函数即可执行推理。ReCall 类会在内部完成模型生成与工具执行之间的所有协调工作。有关如何实际使用 ReCall 类的示例,请参阅我们的示例实现文件 scripts/inference/re_call_use_case.py。
对于模型服务,我们推荐使用 SGLang。您可以下载我们的开源模型,也可以训练自己的模型来进行推理。以下是启动模型服务的示例:
python3 -m sglang.launch_server \
--served-model-name {trained/model/name} \
--model-path {trained/model/path} \
--tp 2 \
--context-length 8192 \
--enable-metrics \
--dtype bfloat16 \
--host 0.0.0.0 \
--port 80 \
--trust-remote-code \
--disable-overlap \
--disable-radix-cache
评估
多跳问答
对于多跳问答的评估,我们使用 FlashRAG 作为标准评估环境。要下载评估数据,请运行以下命令:
cd data
bash download_dataset.sh
以下是评估 ReCall-Qwen-7B-Instruct 在 Bamboogle 测试集上的表现的示例。
cd scripts/evaluation
python run_eval.py \
--config_path eval_config.yaml \
--method_name re-call \
--data_dir {root/path/to/evaluation/data} \
--dataset_name bamboogle \
--split test \
--save_dir {your-save-dir} \
--save_note re-call_qwen7b_ins
--sgl_remote_url {your-launched-sgl-url} \
--remote_retriever_url {your-hosted-retriever-url} \
--generator_model {your-local-model-path} \
--sandbox_url {your-hosted-sandbox-url}
有关配置的更多详细信息,请参阅 scripts/evaluation/eval_config.yaml 文件。
BFCL
我们将很快发布 BFCL 的评估代码。
🤝 致谢
本次训练实现基于 verl,评估则基于 FlashRAG 和 BFCL。沙盒与检索器的服务基于 FastAPI。模型服务则基于 SGLang。ReCall 模型的训练基于 Qwen2.5。我们衷心感谢这些项目对开源社区的贡献。
📚 引用
如果您觉得这项工作有用,请按如下方式引用:
@misc{chen2025research
title={ReSearch: 利用强化学习让大语言模型通过搜索进行推理},
author={Mingyang Chen 和 Tianpeng Li 和 Haoze Sun 和 Yijie Zhou 和 Chenzheng Zhu 和 Haofen Wang 和 Jeff Z. Pan 和 Wen Zhang 和 Huajun Chen 和 Fan Yang 和 Zenan Zhou 和 Weipeng Chen},
year={2025},
eprint={2503.19470},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2503.19470},
}
常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。