Filtmall-Shopping-Skill商品身份元组与URL策略:为什么AI购物链接不能手写拼接
Filtmall-Shopping-Skill商品身份元组与URL策略为什么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-SkillFiltmall-Shopping-Skill 是筛电Filtmall/Filtalgo官方的 AI 购物技能它让 AI Agent 能完成真实商品搜索、比价、购物车、结算、订单与售后全流程。其中一条反直觉的硬性规则是AI 购物商品详情链接绝不能手写拼接必须逐字使用工具返回的原值。本文讲清这条规则背后的商品身份元组与 URL 校验策略帮你理解为什么看起来只差一个参数的手拼链接会被系统直接丢弃。什么是商品身份元组传统电商里一个商品就是一个链接。而在 Filtmall-Shopping-Skill 里商品被定义为一个不可拆分的元组元组成员作用SPU / SKU商品与规格的唯一定位名称、图片、价格、规格展示给用户的可核验事实H5 详情链接detail_url用户点击打开的原始地址编号与卡片顺序多轮对话中第一款第二款的依据规则写得很直白这些字段必须同元组任何一项被单独改动整条记录就失去可信度。核心约束来自 SKILL.md商品的 SPU、SKU、图片、名称、价格、规格、详情链接、编号、文字顺序和卡片顺序是不可拆分元组。详情链接必须逐字使用该商品自己的 H5detail_url不得手写、拼接、解码、删改或借用其他商品链接。为什么要这么严格因为链接不只是导航它是证据。这个项目主打可验证的同款同规格价格优势——价格优势必须附带匹配规格、来源平台和记录时间。如果链接与商品身份解绑整条比价证据链就断了。手写拼接链接会踩中哪 3 个坑⚠️坑一链接与商品悄悄错配筛电商品详情页的 URL 里同时含有商品标识goodsId和规格标识skuId。一个 SPU 下往往有多个 SKU不同容量、不同套装价格各不相同。想象 AI 凭记忆补全链接写对了商品、写错了规格或者干脆把 A 商品的链接安到 B 商品名下。用户点进去看到的是另一个商品或另一个价格——比找不到商品更糟因为这属于展示错误价格直接摧毁比价可信度。所以 references/product-followups.md 规定绑定不完整时不得展示链接宁可少展示不做错误展示。坑二模型会自作聪明地改写链接大模型处理 URL 时有几个经典坏习惯解码把%2F、%3D等转义字符还原破坏参数值删改觉得某些查询参数多余就删掉丢掉渠道、会话等上下文缩短把长链接截断成看起来差不多的版本借用把上一轮或相邻商品的链接套用到当前商品。这些修正在人看来是优化在系统看来全是污染。项目因此把规则写成代码层的强校验而不是靠提示词求模型别改。坑三手写链接绕过安全边界AI Agent 生成的链接最终会指向浏览器打开的页面这是一个攻击面。手拼链接可能引入任意域名、内部网络地址甚至file://协议。URL 策略正是为挡住这些而生的下一节展开。URL 策略链接出厂前的三道安检 ️所有商品链接在展示前都要通过 scripts/url-policy.js 的统一校验共三道关卡。第一道publicHTTPS只放行公网 HTTPSsource 中publicHTTPS会依次拒绝非https:协议HTTP、file://等一律出局URL 中携带用户名/密码、锚点、非标端口命中不安全主机的域名。第二道unsafeHost黑名单挡住内网地址source 会拦截localhost、.local、.internal域名以及10.*、127.*、192.168.*、169.254.*、链路本地 IPv6 等内网网段。这一步防的是 SSRF 类风险——AI 生成的链接绝不应当指向内网服务。第三道filtalgoProductDetail做身份绑定核验source 是最关键的一关主机必须是筛电官方移动端域名白名单m.filtalgo.com等路径必须是商品详情页/pages/goods/product/detailURL 中的goodsId参数必须等于该候选的 SPU 标识skuId参数必须等于推荐规格标识。任何一个条件不满足返回值就是空字符串——这个链接会被静默丢弃商品要么改用其他合格链接要么整条不展示。这正是元组不可拆分的机器执行链接里的身份参数和商品数据不一致就不算同一个商品。代码里如何做到元组整体校验三道安检之外项目还在数据层做了两处配合。水合阶段不合格商品直接过滤scripts/search-hydration.js 在处理搜索结果时会为每个候选依次尝试多个来源的链接并用boundUrl即上面的filtalgoProductDetail逐一核验。链接不通过、价格无效、名称缺失三者任一不满足该商品整体返回空不会带着残缺字段出现在结果里。同时它还特意禁止借用某 SKU 缺价格时不允许借用同商品另一个变体的价格。结构化搜索阶段主动重绑而不是盲信scripts/structured-search.js 中的bindProductIdentity会解析原始链接并显式重写goodsId与skuId两个参数确保输出链接与当前候选严格绑定。测试文件 scripts/structured-search.test.js 里也断言了这一点输出的detail_url必须同时含有正确的goodsId和skuId。另外当用户直接丢来一条筛电商品链接时scripts/filtalgo.js 会先解析并核验链接中的双标识再按真实 SKU 回查目录最后把 lookup 结果重新绑定回用户提供的原始链接——即内容以回查为准链接以原值为准两者都不许模型动。新手实践清单让 AI 购物链接保持可信 ✅实践说明永远点击工具返回的原值链接不手工复制改参、不补全残缺链接绑定不完整就少展示宁可说暂无可靠详情不展示错绑链接多轮追问用编号而非链接片段第一款按最近一次候选顺序解释脚本内部用真实 SKU 回查原商品链接是只读元组后续搜索返回的同商品字段不得覆盖 lookup 的原始链接价格结论必须能溯源链接、规格、价格、采集时间任一缺失整段比价省略这几条实践分别落在 references/product-search.md、references/product-followups.md 等流程参考中模型每次执行时都要按图索骥地遵守。相关文件导航 SKILL.md商品身份元组与多轮约束总纲scripts/url-policy.jsURL 三道安检的完整实现scripts/search-hydration.js搜索结果水合与元组整体校验scripts/structured-search.js结构化搜索中的链接重绑scripts/filtalgo.js用户来链接的身份解析与回查绑定references/product-followups.md详情、比较与链接研究的流程规则小结回到标题的问题为什么 AI 购物链接不能手写拼接因为在这个项目里链接不是装饰而是商品身份元组的组成部分、比价证据链的一环、以及 Agent 与外部世界交互的安全边界。手写拼接看似省了三次工具调用实则同时牺牲了准确性规格错配、诚实性模型改写污染事实和安全性绕过内网黑名单。Filtmall-Shopping-Skill 的选择是把信任从提示词移到代码——链接要么逐字核验通过要么干脆不出现。这正是Agent 原生购物能在推荐、结算、售后多轮对话中保持一致性的底层原因。【免费下载链接】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),仅供参考