ShopGym 创建逼真的在线商店,并根据每家商店的产品和功能生成购物任务。开发者随后可以在一致的条件下反复测试购物智能体。

购物智能体可能会帮你找到预算范围内的夹克、选择合适的尺码、查看退货政策,并将其加入购物车。这部分感觉很简单,但训练和评估这些智能体却颇具挑战,因为产品、价格和商店布局不断变化。机器人检测和限流也可能中断运行,而手工搭建的测试商店虽然提供了控制力,却只能覆盖有限的购物体验范围。
这促使我们思考:能否在不丢失真实商店复杂性的前提下,让购物环境可重复?
我们构建了 ShopGym 来回答这个问题。它将线上店面转化为自包含、可重置的沙盒商店,并生成与其产品、功能和政策相关联的购物任务。开发者可以复现故障、在一致条件下比较智能体,并衡量变更是否提升了性能。
这同样惠及商家。我们的目标是构建能够在各种规模和品类的商店中可靠运行的购物智能体,从服装、数字商品到家居装修。这些环境为智能体提供了一个练习场所,让它们在接触线上商店之前,先练习寻找产品、理解商店政策并完成购物任务。

图 1:ShopGym 高层架构
ShopGym 通过两个部分弥合这一差距。其仿真层 ShopArena 通过匿名化的商店规格和分阶段、经过验证的生成流程,将线上种子店面转化为自包含的沙盒商店。在这些店面之上,ShopGuru 跨七个技能类别合成基准任务,将每个任务扎根于商店的商品目录、导航结构、政策和交互可供性。
我们通过基于图的结构分析和基于智能体的行为评估,在六家沙盒商店的 224 个任务上验证了该框架,其中三家基于合成数据构建,三家基于真实数据构建。合成商店保留了线上店面的关键结构属性,智能体在合成商店上的表现与其所映射的线上店面表现呈正相关。

图 2. 生成的沙盒商店截图
你可以在 ShopGym 项目网站上探索生成的沙盒商店,示例涵盖服装、厨具、电子产品等。
ShopGym 在一个工作流中由两个互补的框架组成。ShopArena 构建环境,ShopGuru 构建基准。两者都组织为通过文件系统通信的小型编码智能体集合,并带有执行-验证循环,以确保长周期生成的可靠性。
ShopArena 将店面探索与沙盒生成分离。店铺规范连接这两个阶段,并作为它们唯一的接口。
探索从店面的关键界面开始:其主页、站点地图、搜索和购物车端点、公开目录以及政策页面。规划智能体将这些材料划分为聚焦的任务。
对于每个任务,ShopArena 会启动一个带有浏览器工具的全新规范智能体。该智能体探索种子店面,捕获证据,并写入一个匿名化片段。这些片段共同描述店铺的三个部分:
在写入时,智能体会省略品牌名称、产品名称、人名和绝对 URL。因此,后续每个阶段都保持匿名,无需单独的脱敏处理。
随后,一个整合步骤会将各片段合并为一份规范。ShopArena 还可以组合来自多个种子店铺的规范,使一个沙盒拥有比任何单一来源更丰富的结构和行为多样性。
由于规范是可读的,基准创建者可以检查或编辑环境,而无需重新访问源店面。

生成阶段只读取规范,从不读取探索期间收集的源材料。ShopArena 首先使用规范的设计细节和目录统计信息生成一个虚构的产品目录,包括集合、产品名称、描述和图片。然后,它按固定顺序构建店面:站点外壳和主页、集合、产品页面、购物车、搜索和筛选、政策页面,以及最后的集成步骤。每一步都建立在之前步骤的稳定工作之上。如果某个功能失败,ShopArena 可以修复它,而无需重新生成整个店铺。
每一步都运行相同的执行和验证循环:
每次迭代都启动一个全新的智能体,以保持其工作上下文较小。源代码保存当前状态,规范保存意图,然后最新报告描述下一次修复。

ShopGuru 使用每个沙盒商店的产品、导航、筛选器和政策来创建购物任务。一些任务测试单一技能,例如查找特定产品或定位退货政策。其他任务组合多个步骤,例如打开一个集合、按颜色筛选、按价格排序,并将匹配的产品添加到购物车。
基于规则的生成器创建较简单的任务,而大语言模型编写多步骤旅程。自动化检查验证每个任务中引用的产品、集合和筛选选项在商店中存在。当任务未通过这些检查时,大语言模型会收到反馈以进行修订。

我们以两种方式测试了 ShopGym。首先,我们比较了真实商店和合成商店的结构。然后我们测量了智能体在两者中的行为。回顾一下,该研究涵盖了六个沙盒商店中的 224 个任务:三个使用合成数据,三个使用真实产品数据的孪生商店。
我们通过将真实商店和合成商店的页面和交互状态(例如打开的菜单和购物车抽屉)映射为图来进行比较。左侧面板显示了一个示例:节点表示界面状态,箭头表示在它们之间移动的操作。中间面板比较状态和连接的数量,而右侧比较页面结构和可用控件。

合成商店具有相似数量的不同状态和可比的页面复杂度。它们之间的状态连接较少,主要是因为它们省略了外部链接、营销页面以及在线商店中发现的其他辅助路径。
为了测试我们的六个沙盒商店,我们使用了两个评估系统:带有可访问性树观察的 BrowserGym,以及一个也使用截图的内部系统。每个图表比较了在实时商店和孪生商店上针对聚焦任务和多步骤购物旅程的成功率。

相似的成功率表明,孪生商店保留了真实商店中有效的难度。这种一致性在多步骤任务上最为明显,两个系统在这些任务中也保持了模型排名。一些聚焦任务显示出更大的差距,尤其是在内部系统中,因此孪生商店并不能完全复现真实商店的难度。
ShopGym 表明,可复现性不必以牺牲真实感为代价。我们可以为购物智能体提供一个稳定的场所来失败、学习和改进,同时保留来自真实网络的有意义信号。
你可以在 ShopGym 项目网站上探索生成的沙盒商店,示例涵盖服装、厨具、电子产品等。
接下来,我们计划在更广泛的零售领域生成更多沙盒商店,为每个商店创建更多任务,并支持覆盖更多购物旅程的新任务类型。我们的研究测试了生成商店和购物任务的质量。我们正在开展利用这些环境训练购物智能体的工作。
这些努力的共同目标是让 ShopGym 从一个模拟和基准测试框架转变为一个为商家和买家构建更强大购物智能体的平台。
本文包含 Chinmay Savadikar、Yuanzheng Zhu、Han Li、Shuang Xie、Alberto Castelo、Tianfu Wu、Lingyun Wang 的贡献。
转载声明:本文为转载整理,原文版权归原作者及原站点所有。
原文来源:Shopify Engineering
原文作者:Shopify Engineering;如有侵权,请联系管理员删除。