Ecom-RLVE:面向电商对话代理的自适应可验证环境
摘要
Huggingface 推出 EcomRLVE-GYM,这是一个提供八个可验证环境的框架,用于在复杂电商任务上训练强化学习智能体。该工具具备自适应难度课程和算法化奖励机制,以提升购物助手的任务完成率,并已通过训练 Qwen 3 8B 模型进行了验证。
查看缓存全文
缓存时间: 2026/05/08 09:04
Ecom-RLVE: 面向电商对话智能体的自适应可验证环境
来源:https://huggingface.co/blog/ecom-rlve
返回文章 (https://huggingface.co/blog)
- 为什么购物智能体需要 RL?(https://huggingface.co/blog/ecom-rlve#why-rl-for-shopping-agents)
- 从 RLVE-Gym 到 EcomRLVE-GYM (https://huggingface.co/blog/ecom-rlve#from-rlve-gym-to-ecomrlve-gym)
- 训练回合长什么样 (https://huggingface.co/blog/ecom-rlve#what-a-training-episode-looks-like)
- 八大环境 (https://huggingface.co/blog/ecom-rlve#the-eight-environments)
- 自适应难度课程 (https://huggingface.co/blog/ecom-rlve#adaptive-difficulty-curriculum)
- 深度解析:购物车构建 (E_CART) (https://huggingface.co/blog/ecom-rlve#deep-dive-cart-building-e_cart)
- 问题定义 (https://huggingface.co/blog/ecom-rlve#the-problem)
- 为什么变体很重要 (https://huggingface.co/blog/ecom-rlve#why-variants-matter)
- 难度缩放 (https://huggingface.co/blog/ecom-rlve#difficulty-scaling)
- 评分机制 (https://huggingface.co/blog/ecom-rlve#scoring)
- 轨迹对比:简单 vs 困难 (https://huggingface.co/blog/ecom-rlve#trajectories-easy-vs-hard)
- 用户模拟 (https://huggingface.co/blog/ecom-rlve#user-simulation)
- 环境扩展 (https://huggingface.co/blog/ecom-rlve#environment-scaling)
- 早期结果 (https://huggingface.co/blog/ecom-rlve#early-results)
- 亲自尝试 (https://huggingface.co/blog/ecom-rlve#try-it-yourself)
- 资源 (https://huggingface.co/blog/ecom-rlve#resources)
- 参考文献 (https://huggingface.co/blog/ecom-rlve#references)
TL;DR — 我们将 RLVE 框架从单轮推理谜题扩展到多轮、工具增强的电商对话。EcomRLVE-GYM 提供 8 个可验证环境 —— 商品发现、替代推荐、购物车构建、退货、订单追踪、政策问答、组合规划和多意图旅程 —— 每个环境都包含程序化问题生成、12 维度难度课程,以及算法可验证的奖励。我们使用 DAPO 训练 Qwen 3 8B 模型 300 步,初步结果表明环境扩展和自适应难度能够迁移到真实的智能体任务完成。
本项目起源于 PyTorch OpenEnv Hackathon (https://cerebralvalley.ai/e/openenv-hackathon-sf),仍在持续演进中,欢迎关注更新 🔥
为什么购物智能体需要 RL?
大语言模型能够进行流畅的对话,但将它们部署为购物助手时,一个持续的差距显现出来:流畅度 ≠ 任务完成。当客户询问*“帮我找一个 25 美元以下、两天内发货的 USB-C 充电器”*时,需要的智能体能够调用正确的目录搜索、在三个硬约束上进行过滤、避免幻觉从未检索到的商品 ID,并在首选商品缺货时处理后续跟进。
监督微调可以从演示中教授表面层次的工具使用,但无法扩展到真实电商所需的组合约束配置、部分信息对话和多步骤交易工作流。
带有可验证奖励的强化学习(RLVR)提供了一种替代方案:智能体优化的是结果—— 商品是否满足约束?购物车是否正确?退货是否针对正确的订单行发起?挑战在于构建既可验证(无需 LLM 作为评判者的主观性)又自适应(难度随策略能力增长)的奖励函数。
从 RLVE-Gym 到 EcomRLVE-GYM
RLVE-Gym 提供了 400 个用于排序、乘法、数独等算法推理任务的环境;然而这些都是单轮、文本输入/输出的谜题 —— 扩展到智能体领域被留作未来工作。
EcomRLVE-GYM 填补了这一空白:我们保持在可验证范式内(电商结果可以被算法检查),同时扩展到多轮、工具增强、智能体对话 —— 智能体必须行动(调用工具、修改世界状态)而非仅仅推理(生成文本答案),并弥补搜索系统的不足。
EcomRLVE-GYM 将客户服务结果转化为结构性可验证信号:

上图中的每个信号都可以通过访问隐藏真实目标的程序来评估。无需人工标注或 LLM-as-a-judge。
训练回合长什么样
在解释框架之前,以下是难度 d = 4 时单个 EcomRLVE 回合的样子。环境生成一个隐藏目标,模拟用户打开聊天,智能体必须使用工具满足请求。每个动作都被算法验证 —— 无需 LLM 评判。
示例回合
奖励完全由代码计算:对 (product, variant, qty) 元组计算 F1,回合数少的效率加成,以及检查每个推荐的商品 ID 是否确实被检索过的幻觉检测。如果智能体选择了 Lightning 变体而非 USB-C,模拟用户会在对话中纠正 —— F1 分数将下降。
八大环境
每个环境覆盖一个不同的真实购物场景。智能体必须使用工具(目录搜索、购物车操作、订单查询、政策查询)完成任务,并由程序评分 —— 而非人类或另一个 LLM。
| 环境 | 智能体必须做什么 |
|---|---|
| 商品发现 | 找到满足用户所有约束的商品 |
| 替代推荐 | 某商品缺货 —— 找到相似、兼容的替代品 |
| 购物车构建 | 添加用户要求的精确商品、变体和数量 |
| 退货 + 换货 | 识别正确的订单行,发起退货,建议替代品 |
| 订单追踪 | 确定用户指的是哪个订单,报告当前状态 |
| 政策问答 | 回答关于商店政策的确定性问题(退货期限、 shipping 规则等) |
| 组合规划 | 在预算内为某个项目推荐完整购物清单 |
| 多意图旅程 | 处理将 2-5 个上述任务串联起来的对话 |
每个环境使用相同的三部分奖励信号:
- 任务奖励 —— 智能体是否实际完成了目标?(例如,是否推荐了正确的商品、购物车是否正确、是否追踪了正确的订单?)
- 效率奖励 —— 智能体是否没有浪费回合完成?用户导致的回合(追问、确认操作)不计入 —— 只有智能体错误导致的回合才算。
- 幻觉惩罚 —— 智能体是否只推荐它在会话中实际检索过的商品?推荐从未查询过的商品 ID 会被惩罚,因此智能体不能凭空捏造结果。
无效输出(格式错误的 JSON、非法工具调用)触发立即失败分数,从第一步就强烈激励格式正确的响应。
自适应难度课程
单个难度数字 d 同时控制任务的 12 个独立方面。这很重要,因为电商对话在多个不同维度上同时具有挑战性 —— 而非单一维度。

以下是四个代表性难度维度:
| 变化因素 | 简单 (d = 0) | 中等 (d = 6) | 困难 (d = 12) |
|---|---|---|---|
| 用户约束数量 | 2 | 5 | 8 |
| 用户遗漏约束的频率 | 5% | 70% | ~80% |
| 搜索结果中为干扰项的比例 | 0% | 12% | 24% |
| 对话中缺货的商品 | 0% | 30% | 50% |
其余八个维度涵盖回合预算、输入噪声(错别字、俚语)、上下文切换、检索深度、订单历史大小、政策复杂度、工具预算。完整细分见技术报告 (https://github.com/owlgebra-ai/EcomRLVE-Gym)。
自适应调度。 每个环境独立跟踪智能体的成功率,仅在智能体可靠通过当前级别后才推进到更难的问题。这使每个环境在智能体的能力前沿进行训练 —— 避免“太简单而无法学习“和“太难而无法进步“两种情况。
深度解析:购物车构建 (E_CART)
购物车构建是一个很好的展示案例,因为它需要完整的搜索 → 检查 → 澄清 → 行动循环,具有二元真实值,并引入了大多数推荐基准中缺失的挑战:变体选择。
要成功,智能体必须发展五种不同技能:
| 技能 | 实际含义 |
|---|---|
| 商品发现 | 用结构良好的查询搜索目录以找到正确商品 |
| 变体选择 | 识别正确的颜色、尺寸或连接器类型 —— 不仅是正确的商品 |
| 购物车管理 | 按用户要求的精确变体和数量添加商品 |
| 澄清对话 | 当请求模糊时提出聚焦的跟进问题(例如,缺少尺寸) |
| 多商品订单 | 在单个对话中处理包含多种不同商品的购物清单 |
智能体使用六种工具完成此任务:
| 工具 | 功能 |
|---|---|
catalog_search | 用自然语言查询搜索商品目录 |
catalog_get_variants | 返回商品的可用变体(颜色、尺寸、连接器等) |
cart_add | 以特定变体和数量将商品添加到购物车 |
cart_view | 读取当前购物车以便智能体验证是否匹配请求 |
user_get_visit_history | 获取用户最近浏览的商品 |
ask_user | 当缺少细节时向客户发送澄清问题 |
问题定义
生成器采样 1-5 个目标商品(随 d 缩放难度),每个可能需要特定变体(USB-C vs Lightning,哑光 vs 亮面)和数量 > 1。智能体必须:
- 搜索目录找到每个商品
- 调用
catalog.get_variants查看可用选项 - 将正确的
(product_id, variant_id, qty)元组添加到购物车
为什么变体很重要
真实商品目录的变体数据稀疏 —— 许多商品没有变体,有的通常只按颜色或尺寸变化。为了创建更丰富的区分任务,我们在回合初始化时合成变体:
- 按类别优先级列表选择最自然的变体属性(电子产品 →
connector_type;服装 →size;厨房 →material)。 - 为每个目标商品生成 3 个变体:1 个目标 + 2 个合理干扰项。“Anker 65W USB-C 充电器“产生
{USB-C, Lightning, HDMI}。 - 验证器检查复合键
(product_id, variant_id)—— 正确的商品但错误的变体意味着该单位不匹配。
难度缩放
| 维度 | d = 0 | d = 3 | d = 6 | d = 9 |
|---|---|---|---|---|
| 不同商品数 | 1 | 2 | 3 | 4 |
| 需要变体 | 21% | 66% | 93% | 99% |
| 多数量 | 0% | 30% | 50% | 50% |
d = 0 时智能体添加单个无变体复杂度的商品 —— 学习基本的 catalog.search → cart.add 工作流。d = 6 时需要处理 3 个商品,几乎所有都需要特定变体,一半需要数量 > 1。
评分机制
购物车必须完全正确 —— 正确的商品、正确的变体、正确的数量。部分正确的购物车给予部分分数,但完美分数要求每个商品都匹配。如果智能体添加了错误的变体,模拟用户会在对话中纠正(“那是 Lightning 版本,但我需要 USB-C”),给智能体在回合结束前自我纠正的机会。
轨迹对比:简单 vs 困难
来自 Qwen 3 8B 智能体的两个真实 E_CART 回合。相同环境,相同智能体 —— 仅难度改变了一切。
| d = 1 — 1 个商品,无变体 | d = 8 — 3 个商品,变体 + 错别字 |
|---|---|
| 用户消息 | “购物清单:SonicWave 键盘。请添加所有东西。” |
| 第 1 回合 | user.get_visit_history() → 4 个结果。立即发现目标。 |
| 第 2 回合 | cart.add("syn_000162", qty=1) → 购物车:1 件商品,$2.74。* “我找到了 SonicWave 键盘。”* 用户:“太好了,就是那个。” |
| 第 3 回合 | answer: { "done": true } —— 3 回合完成。 |
| 第 4 回合 | |
| 第 5 回合 | |
| 第 6 回合 | |
| 第 7 回合 | |
| 第 8 回合 | |
| 奖励 | r_task = +1.00, r_eff = +0.33, r_hall = 0.00, r_total = +0.80 ✓ |
| 结果 | 购物车匹配目标。3 回合,2 个有效回合。 |
d=1 时智能体用 3 个干净回合解决任务。d=8 时它陷入螺旋 —— 选择 Bamboo 而非 Charcoal,XL 而非 XS,尽管用户纠正两次仍未修复空气炸锅,然后幻觉该变体不存在。这正是难度课程揭示的多步骤错误级联类型,也是自适应训练应该教会智能体从中恢复的。
用户模拟
可验证环境需要行为逼真的用户模拟器。我们使用 Qwen3.5 (9.7B) 生成自然、多样化的用户消息,而非固定模板 —— 涵盖从错别字请求到对话中途话题切换的各种情况。
两个设计选择对训练质量至关重要:
偏好与陈述约束匹配。 每个模拟用户有一组隐藏偏好(价格敏感度、品牌忠诚度、shipping 速度等)。这些被刻意偏向用户沟通的约束 —— 所以如果用户说了“25 美元以下“,奖励函数实际上关心价格。没有这一点,智能体可能因正确遵循用户指令而被惩罚。
策略性遗漏。 LLM 故意从开场消息中省略一些约束,迫使智能体提出澄清问题。系统精确跟踪什么被提及和未被提及,因此智能体永远不会
相似文章
EnvFactory:通过可执行环境合成与鲁棒强化学习扩展工具使用智能体
EnvFactory 自动化创建可执行工具环境和自然的多轮轨迹,用于训练具有智能体强化学习能力的大语言模型,在使用比先前工作更少的环境下,在 BFCLv3 和 MCP-Atlas 等基准测试上取得了优异性能。
ShopGym:一个用于电子商务网络代理的现实模拟和可扩展基准测试的集成框架
ShopGym 是一个框架,它将实时的电子商务店面转换为自包含的沙盒商店,用于对网络代理进行真实、可控和可重复的基准测试,并包含涵盖七类技能的合成任务。
学习构建环境:通过可验证环境合成实现自我进化推理强化学习
本文提出EvoEnv,一种让语言模型通过强化学习构建可验证的Python环境以实现自我改进的方法,在Qwen3-4B-Thinking上取得了3.3%的相对提升。
CUA-Gym: 为计算机使用代理扩展可验证的训练环境与任务
CUA-Gym 引入了一个可扩展的流水线,用于为计算机使用代理生成可验证的训练环境和任务,从而解决数据稀缺问题。由此产生的数据集和模型在OSWorld-Verified和WebArena等基准测试上取得了强劲的性能。
AgentV-RL:用智能体验证器扩展奖励建模
AgentV-RL引入了智能体验证器框架,通过具有工具增强的前向和后向智能体进行双向验证来增强奖励建模,相比最先进的ORM实现了25.2%的性能提升。该方法通过将多轮深思熟虑过程与强化学习相结合,解决了验证器在复杂推理任务中的误差传播和基础性不足等问题。