Filtmall-Shopping-Skill 两阶段推荐机制深入解析:为什么 AI 推荐要把“选择”与“校验”分开
【免费下载链接】Filtmall-Shopping-SkillAgent-native shopping for extreme value: verifiable same-product price evidence, checkout, orders, delivery, and after-sales.项目地址: https://gitcode.com/gh_mirrors/fi/Filtmall-Shopping-Skill
Filtmall-Shopping-Skill 是筛电(Filtmall / Filtalgo)官方推出的购物 Skill,覆盖商品发现、同款比价证据、购物车结算、订单物流到售后的完整链路。它做 AI 购物推荐的核心,是一套“两阶段推荐机制”:模型只负责选择——挑哪几款、如何评分;代码负责校验——候选是否来自本次搜索结果、是否超预算、分数是否合规、链接与商品是否一一绑定。把选择与校验分开,正是 AI 推荐能让人敢信的原因。
一句话需求,一条完整购物链路 🛒
对新手来说,你不需要懂任何命令。只要像聊天一样说出需求,例如“想买一款 100 元以内、保湿但别太黏的面膜”,Filtmall-Shopping-Skill 就能接力完成下面这些事:
| 阶段 | 用户得到的结果 |
|---|---|
| 发现 | 把自然语言需求转成筛电实时商品候选 |
| 决策 | 比较价格、规格、库存、详情和需求适配度 |
| 购买 | 使用持久购物车,或单 SKU 立即购买流程 |
| 支付 | 生成适合桌面网页或移动 H5 的结算入口 |
| 跟进 | 查询订单物流、管理地址、取消订单、进入售后 |
整个能力的“剧本”写在 SKILL.md 中,推荐阶段的详细规则则放在 references/product-search.md,由智能体按需加载,而不是把几百条规则一次塞给模型。
为什么不能“一把梭”:AI 推荐的一次性风险 ⚠️
如果只让 AI 模型一口气完成“搜索 → 挑选 → 打分 → 写文案 → 生成链接”,至少会埋下三类隐患:
- 虚构商品:模型可能凭“记忆”编出一个搜索结果里根本不存在的商品,链接指向别家甚至失效。
- 排序漂移:打分全凭模型当下发挥,同样输入两次,排名可能不同,无法复现、无法审计。
- 越界结论:“口碑好”“销量第一”这类说法如果没有数据支撑,就是误导;同样,“100 元以内”是硬预算,却被模型当成“参考价”。
Filtmall-Shopping-Skill 的解法很直白:凡是可以用代码验证的事实,绝不交给模型;凡是必须理解语义的判断,绝不硬编码成规则。
两阶段推荐的三步走:search → prepare → finalize
正常推荐严格走三步,每一步的输入输出都被脚本固定:
search(取真实候选) → prepare(模型选+打分,代码校验+排序) → finalize(模型写理由,代码出卡片)第一步 search:只取真实候选
搜索由 CLI 完成,命令入口在 scripts/filtalgo.js 中定义。搜索返回的不是“推荐结论”,而是一份候选清单:每款商品带有真实的价格、规格、图片和详情链接。脚本同时会解析用户原话里的预算(例如“100 元以内”记为硬预算)、明确说出的“价格优先”等优先级信息,生成第一阶段的评分任务。
关键约束在这一阶段就写死了:候选只能从本次搜索结果里选,不得新增、不得重复、不得改写商品标识;“预算上限”不等于“价格优先”,模型不得自行改写用户优先级。
第二步 prepare:模型做选择,代码做裁判
这是两阶段机制的第一次“选择与校验”分离。模型只做语义工作:
- 从候选中挑出真正值得展示的几款;
- 按用户本轮优先级,给每款打出 1.0–5.0 的综合分,并列出完整的评分维度;
- 为每款写一句只基于真实属性的商品概览。
随后,代码接管并做四件事(实现见 scripts/recommendation-two-stage.js):
- 来源校验:每款候选必须能在本次搜索结果中找到对应商品,否则整体报错;
- 硬预算过滤:超预算的候选直接拒绝,不靠模型自觉;
- 证据门控:模型给了“保湿 4 分”之类的维度分,但商品资料里根本没有保湿相关证据时,该维度会被强制改写成“暂时无法确认”;无据可依的“口碑”“畅销”等表述会被自动剔除;
- 稳定排序:按综合分降序排列,同分沿用搜索顺序,结果可复现。
排好序后,脚本把“已排序候选 + 第二阶段任务”交回模型,明确指令是:不得增删候选、不得重新评分、不得改变排序。
第三步 finalize:只写理由,产出由代码生成
第二阶段的模型任务(见 scripts/recommendation-two-stage.js)被压缩到最小:
- 为每款候选写“为什么适合你”的推荐理由;
- 只有排名第一且评分不低于 3.5时才能给出首选,否则必须说明“为什么没有可靠首选”;
- 仅在存在真实差异时,提交条件式次选(比如“更看重清爽,可以换这款”)。
最后的 Markdown 正文、星级、价格、链接和同序商品卡片,全部由脚本生成——模型从头到尾碰不到链接和价格的生成权。这一步保证了“文字第 1 款 = 卡片第 1 款”,不会出现图文错位。完整的阶段说明可参考 references/product-search.md。
模型与脚本的分工清单 ⚖️
| 事项 | 谁负责 | 为什么 |
|---|---|---|
| 理解需求、挑选候选、打分、写理由 | AI 模型 | 需要语义理解,规则写不全 |
| 候选来源是否真实、是否重复 | 脚本 | 可用 ID 精确校验 |
| 硬预算是否满足 | 脚本 | 数值比较,不容解释空间 |
| 维度分是否有商品证据支撑 | 脚本 | 防止“无据高分” |
| 排序、星级、卡片与链接绑定 | 脚本 | 保证结果稳定、可复现 |
| 首选资格(第 1 名且 ≥3.5 分) | 脚本定门槛,模型写原因 | 资格是规则,解释是语义 |
让推荐更可信的几个小机制 🔍
- 证据不足就明说:资料缺失的维度显示“暂时无法确认”,而不是让模型猜一个分数。
- 首选有门槛:没有一款商品真正达标时,宁可输出“当前没有合适的首选”,也不硬推。
- 比价必须带证据:只有当前价、同款同规格对比价、来源平台、记录时间和来源链接齐全时,价格优势才会展示;否则整节省略。
- 条件变化就重跑全链路:多轮对话里,用户新增、覆盖或取消条件(比如先说“100 元以内”,后说“预算优先”),必须重新搜索、重新评分、重新排序,不允许沿用旧结论。
- 品牌信息只读本地已审核知识:品牌概览只在能精确匹配到已审核品牌资料时展示,模型只能压缩改写,不能杜撰。
这些规则的细节都沉淀在 references/product-search.md 与 scripts/recommendation-two-stage.js 中,想深挖的读者可以对照阅读。
如何快速体验 🚀
安装只需要一行命令(需 Node.js 18 及以上):
npx skills add filtalgo/Filtmall-Shopping-Skill --skill filtmall-shopping -g装好后,用这几句话就能感受两阶段推荐:
- “想买一款 100 元以内、保湿但别太黏的面膜。”
- “比较第 1 款和第 3 款,敏感肌更适合哪一款?”
- “我最近一笔订单到哪里了?”
你会发现:推荐结论有分数、有维度、有证据,链接点开就是对应商品——这就是“选择与校验分离”落到用户侧的样子。
小结
Filtmall-Shopping-Skill 的两阶段推荐机制,本质是一次清晰的职责切割:模型做它擅长的语义判断,代码做它擅长的严格校验。选择可以灵活,但校验必须铁面无私。对普通用户而言,这意味着每一款推荐都有来源、每一分都有依据;对开发者而言,这是一套可以直接借鉴的“让 AI 推荐可验证、可复现”的工程范式。
【免费下载链接】Filtmall-Shopping-SkillAgent-native shopping for extreme value: verifiable same-product price evidence, checkout, orders, delivery, and after-sales.项目地址: https://gitcode.com/gh_mirrors/fi/Filtmall-Shopping-Skill
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考