电商对话Agent的自适应可验证环境框架
Hugging Face发布RLVE框架,为电商对话Agent提供自适应可验证的评估环境
Hugging Face发布RLVE框架,为电商对话Agent提供自适应可验证的评估环境
本项目源自 PyTorch OpenEnv Hackathon,目前仍在持续演进,欢迎关注我们以获取最新动态 🔥
大语言模型可以流畅地进行对话,但将其部署为购物助手时,一个长期存在的差距便暴露出来:表达流畅 ≠ 完成任务。假如顾客提出“帮我找一款价格低于 25 美元、两天内可以送达的 USB-C 充电器”,Agent 就必须调用正确的商品目录搜索功能,按照三个硬性约束进行筛选,避免凭空捏造从未检索到的产品 ID,并且能在首选商品缺货时处理后续对话。
监督微调可以通过示范教会模型表层的工具使用方式,但它无法扩展到真实电商业务所要求的组合空间,包括不同的约束配置、信息不完整的对话,以及多步骤交易工作流。
基于可验证奖励的强化学习(RLVR)提供了另一种方案:Agent 针对结果进行优化——商品是否满足约束?购物车是否正确?退货是否针对正确的订单商品发起?挑战在于,如何构造既可验证(不存在 LLM-as-a-judge 的主观性)又具备自适应能力(难度会随 policy 能力提升而增长)的奖励函数。
RLVE-Gym 提供了 400 个环境,涵盖排序、乘法、数独和其他算法推理任务;不过,这些任务都是单轮、文本输入/文本输出的谜题——如何扩展到 Agentic 领域,则被留作未来工作。
EcomRLVE-GYM 填补了这一空白:我们仍然处于可验证范式之中(电商结果可以通过算法检查),同时将其扩展到多轮、工具增强的 Agentic 对话——在这些环境中,Agent 必须采取行动(调用工具、修改世界状态),而不只是进行推理(生成文本答案),并弥补搜索系统的不足。
EcomRLVE-GYM 将客户服务结果转化为结构化、可验证的形式:
上述每一种信号,都可以由能够访问隐藏真实目标的程序进行评估。整个过程不需要人工标注,也不需要 LLM-as-a-judge。
在解释这个框架之前,先来看一次难度为 d = 4 的 EcomRLVE episode。环境会生成一个隐藏目标,由模拟用户发起对话,而 Agent 必须使用工具来满足用户的请求。每一个动作都通过算法验证——不需要 LLM judge。
奖励完全由代码计算:对 (product, variant, qty) 元组计算 F1;用更少轮次完成任务可获得效率奖励;同时还会进行幻觉检查,确认每个被推荐的产品 ID 都确实经过检索。如果 Agent 选择的是 Lightning 版本而不是 USB-C 版本,模拟用户会在对话中途纠正它——F1 分数也会随之下降。
每个环境都对应一种不同的真实购物场景。Agent 必须使用工具完成任务,包括商品目录搜索、购物车操作、订单查询和政策查询等,并由程序进行评分——不是由人类或另一个 LLM 评分。
每个环境都使用相同的三部分奖励信号:
任务奖励——Agent 是否真正完成了目标?例如,推荐的商品是否正确、购物车是否正确、追踪的订单是否正确?
效率奖励——Agent 是否没有浪费对话轮次就完成了任务?由用户引起的轮次,例如追问或确认操作,不会计入 Agent 的惩罚;只有 Agent 犯错所导致的额外轮次才会计算在内。
幻觉惩罚——Agent 是否只推荐了本次会话中真正检索到的商品?如果推荐从未查询过的产品 ID,就会受到惩罚,因此 Agent 无法凭记忆编造搜索结果。
无效输出,例如格式错误的 JSON 或非法工具调用,会立即触发失败分数,从第一步开始就强力激励 Agent 生成格式规范的响应。
单个难度数值 d 会同时控制任务的 12 个独立方面。这一点非常重要,因为电商对话往往会同时在许多方面变得困难,而不只是沿某个单一维度增加难度。
以下是四个具有代表性的难度轴:
另外八个难度轴涵盖轮次预算、输入噪声(拼写错误、俚语)、上下文切换、检索深度、订单历史规模、政策复杂度和工具预算。完整拆解详见技术报告。
自适应调度。每个环境都会独立追踪 Agent 的成功率,只有当 Agent 能够稳定通过当前级别时,才会进入更困难的问题。这让每个环境始终在 Agent 的能力前沿进行训练,既避免“过于简单,学不到东西”,也避免“过于困难,无法取得进展”。
构建购物车是一个很有代表性的案例,因为它要求 Agent 完成完整的“搜索 → 检查 → 澄清 → 行动”循环,拥有二元的 ground truth,并引入了大多数推荐 benchmark 中都不存在的一项挑战:选择商品变体。
要想成功,Agent 必须掌握五种不同的技能:
Agent 使用六种工具来完成这项任务:
生成器会抽取 1–5 个目标商品,数量随难度 d 增长。每个商品都可能要求特定的变体,例如 USB-C 与 Lightning、Matte 与 Glossy,并且数量可能大于 1。Agent 必须:
搜索商品目录,找到每一件商品
调用 catalog.get_variants 查看可选项
将正确的 (product_id, variant_id, qty) 元组加入购物车
真实商品目录中的变体数据非常稀疏——许多商品完全没有变体,即使存在变体,通常也只是在颜色或尺码上有所不同。为了构造信息更丰富的辨别任务,我们会在 episode 初始化时合成商品变体:
每个品类都有一份优先级列表,用于选择最自然的变化属性,例如电子产品 → connector_type、服装 → 尺码、厨具 → 材质。
对于每一件目标商品,我们生成 3 个变体:1 个目标变体,加上 2 个看似合理的干扰项。例如,“Anker 65W USB-C Charger”会产生 {USB-C, Lightning, HDMI}。
验证器会检查复合键 (product_id, variant_id)——即使商品正确,只要变体错误,这个单元就无法匹配。
当 d = 0 时,Agent 只需添加一件没有变体复杂度的商品,学习最基本的 catalog.search → cart.add 工作流。当 d = 6 时,它需要同时处理 3 件商品,几乎每一件都要求特定变体,其中一半的商品数量还会大于 1。
购物车必须完全正确——商品、变体和数量都要匹配。部分正确的购物车可以获得部分分数,但要得到满分,每一项都必须准确无误。如果 Agent 添加了错误的变体,模拟用户会在对话中途纠正它,比如“这是 Lightning 版本,但我需要 USB-C”,让 Agent 有机会在 episode 结束前自行修正。
下面是 Qwen 3 8B Agent 在 E_CART 中的两次真实 episode。环境相同,Agent 相同——仅仅改变难度,就足以让整个任务截然不同。
在 d=1 时,Agent 用 3 个干净利落的轮次解决了任务。在 d=8 时,它却逐渐失控——选择了 Bamboo 而不是 Charcoal,选择了 XL 而不是 XS;用户两次纠正空气炸锅的问题后,它仍然没有修复,最后还凭空声称相应变体并不存在。这正是难度课程能够暴露出来的多步骤错误级联,也是自适应训练应当教会 Agent 如何恢复的情况。
一个可验证环境需要配备行为足够真实的用户模拟器。我们使用 Qwen3.5(9.7B)生成自然、多样的用户消息,而不是使用固定模板——覆盖从包含大量拼写错误的请求,到对话中途切换话题等各种情况。
有两项设计选择对训练质量至关重要:
偏好与已表达的约束保持一致。每个模拟用户都有一组隐藏偏好,例如价格敏感度、品牌忠诚度和配送速度等。这些偏好会被刻意调整,使其倾向于用户已经表达的约束——因此,如果用户说“低于 25 美元”,奖励函数就会真正关心价格。如果不这样做,Agent 可能会因为正确遵循用户指令而受到惩罚。
策略性省略。LLM 会刻意在开场消息中隐去一部分约束,迫使 Agent 主动提出澄清问题。系统会准确记录哪些信息已经提及、哪些信息尚未提及,因此 Agent 绝不会因为用户从未提供的信息而受到惩罚。
按照 RLVE 的方法,我们定义了嵌套的环境集合:
我们的假设是——这也与 RLVE 的发现一致——C8 Agent 的表现会优于单环境专家,即使是在该专家自己的任务上也是如此。
作为初步的可行性研究,我们使用 DAPO 在 C1(构建购物车)上训练了 Qwen 3 8B,共训练 300 步。
我们观察到 Agent 所能达到的难度在逐步提升,这证实了自适应调度可以产生稳定的学习信号,而不是出现 RLVE 论文所预测的饱和(静态低难度)或信号匮乏(静态高难度)模式。
你可以直接在浏览器中使用下方嵌入的 demo,运行一次实时 episode。使用方法如下:
从下拉菜单中选择一个环境,例如用于构建购物车的 E_CART,或用于商品发现的 E_PD。
设置难度——0 表示只包含单个约束的简单任务;6 及以上会引入信息缺失、检索噪声和变体选择。
点击 “Reset Episode”——模拟用户会提出一个购物请求来发起对话。
现在你就是 Agent:进行工具调用、分析输出,并提交最终的产品 ID 列表。
每次运行后点击 “Reset Episode”,即可开始一个全新的场景。
所有环境、验证器和训练配置均已开源:
git clone https://github.com/owlgebra-ai/EcomRLVE-Gym
cd EcomRLVE-Gym
pip install -e .
包含 200 万件商品的目录已发布在 Hub 上:
from datasets import load_dataset
catalog = load_dataset("owlgebra-ai/Amazebay-catalog-2M", split="train")
print(f"{len(catalog)} products loaded")
Zeng, Z., Ivison, H., Wang, Y., 等(2025)。RLVE:使用自适应可验证环境扩展语言模型强化学习。ICML 2025。arXiv:2511.07317
Zeng, Z., Ivison, H., Wang, Y., 等(2025)。RLVE:使用自适应可验证环境扩展语言模型强化学习。ICML 2025。arXiv:2511.07317
Yu, Q., Zhang, Z., Zhu, R., 等(2025)。DAPO:大规模开源 LLM 强化学习系统。arXiv:2503.14476
Yu, Q., Zhang, Z., Zhu, R., 等(2025)。DAPO:大规模开源 LLM 强化学习系统。arXiv:2503.14476
Shao, Z., Wang, P., Zhu, Q., 等(2024)。DeepSeekMath:突破开放语言模型数学推理的极限。arXiv:2402.03300
Shao, Z., Wang, P., Zhu, Q., 等(2024)。DeepSeekMath:突破开放语言模型数学推理的极限。arXiv:2402.03300
DeepSeek-AI。(2025)。DeepSeek-R1:通过强化学习激励 LLM 推理。Nature。
DeepSeek-AI。(2025)。DeepSeek-R1:通过强化学习激励 LLM 推理。Nature。
Meta AI。(2024)。Llama 3.1:面向通用智能的基础模型。llama.meta.com
Meta AI。(2024)。Llama 3.1:面向通用智能的基础模型。llama.meta.com
Qwen 团队。(2025)。Qwen3 技术报告。arXiv:2505.09388
Qwen 团队。(2025)。Qwen3 技术报告。arXiv:2505.09388
本文提及的数据集 1
本文提及的 Spaces 1
本文提及的 Collections 1
DeepSeek-V4:Agent 真正能够利用的百万 token 上下文
使用 Unsloth 和 Hugging Face Jobs 免费训练 AI 模型
· 注册或登录后发表评论
本文提及的数据集 1
本文提及的 Spaces 1
本文提及的 Collections 1