尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Filtmall-Shopping-Skill源码解读:filtalgo.js CLI包装器的命令路由与15分钟推荐状态生命周期
Filtmall-Shopping-Skill源码解读filtalgo.js CLI包装器的命令路由与15分钟推荐状态生命周期【免费下载链接】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 是筛电Filtalgo官方购物 Skill让 AI 智能体能够实时搜索商品、给出同款同规格比价证据并完成结算、订单、物流与售后。它的入口文件 scripts/filtalgo.js 是一个约 300 行的「CLI 包装器」一方面把用户输入的命令路由到不同处理分支另一方面用「15 分钟过期的临时文件」管理推荐流程的中间状态。本文结合源码讲清这两件事。 包装器是干什么的智能体不会直接调用打包后的 assets/filtalgo-cli.cjs而是统一执行node scripts/filtalgo.js command --json包装器在透传命令之前会做四类额外的事拦截recommend两阶段推荐命令、为search命令附加需求画像与结构化搜索、绑定商品详情链接、以及把关键流程的结果落盘为「状态文件」。理解它的命令路由就能看懂整个购物流程如何被串起来。 命令路由filtalgo.js 的 4 条分支路由逻辑没有用复杂的解析库而是按「第一个参数 特殊标志位」的顺序做 if 判断从上到下依次是分支一recommend 两阶段推荐最优先只要第一个参数是recommend就进入专用分支见 scripts/filtalgo.js支持三个动作动作输入作用prepare搜索上下文--search-ref 模型评估 JSON校验候选来源、排序生成第二阶段任务finalize推荐上下文--prepared-ref 决策 JSON生成推荐理由、首选/次选和最终 Markdowndetail--prepared-ref--number按编号回查某一款候选的详情这三个动作全部以「读取标准输入里的单个 JSON」作为模型输出通道校验逻辑集中在 scripts/recommendation-two-stage.js。动作名不在白名单内时直接报错退出这就是包装器最严格的一条路由。分支二--agent-response智能体响应模式携带--agent-response标志时包装器会把子进程的输出「接住」再加工见 scripts/filtalgo.jssearch 命令若未显式提供--filters等参数先走结构化搜索管线 scripts/structured-search.js——把自然语言需求拆成类目适配器、硬预算过滤和排序偏好再合并商品目录补齐字段然后把搜索结果存为状态返回search_ref和下一条要执行的prepare_command。checkout prepare-payment / order list由 scripts/transaction-response.js 把原始数据渲染成订单卡片、待支付列表和「去支付」入口。其他命令直接报「--agent-response目前只用于 search、checkout prepare-payment 和 order list 命令」。如果还带--request-profile-stdin会先从标准输入读入需求画像预算、肤质、功效等并做字段白名单和敏感信息校验详见 references/product-search.md。分支三--product-ref商品链接回查当命令是search-tools lookup --product-ref 详情链接时包装器会先校验链接必须来自filtalgo.com的商品详情页并提取 SPU/SKU再把参数改写为--ids skuId发起查询最后用 bindProductRefLookup 把返回结果中所有 URL 统一「钉回」用户给出的那条原始链接防止多轮对话中链接漂移。分支四兜底透传以上都不命中时包装器用spawnSync原样把参数转发给打包 CLI见 scripts/filtalgo.jsauth、cart、order、logistics等命令都走这条路径输出直接继承父进程的标准流。⏱️ 15 分钟推荐状态生命周期推荐流程跨多次命令调用search → prepare → finalize → detail中间结果不能塞进命令行参数于是包装器用「系统临时目录 一次性 JSON 文件」来承载状态。状态文件在哪里const stateDirectory path.join(os.tmpdir(), filtmall-shopping-recommendations); const stateLifetimeMs 15 * 60 * 1000;摘自 scripts/filtalgo.js每次写入都生成一个 UUID 作为 tokenstoreState创建目录权限 0700、写入文件权限 0600、wx独占创建返回 token见 scripts/filtalgo.js。智能体后续命令拿这个 token 就能取回状态。读取即校验过期即删除loadState每次读取都检查文件修改时间超过 15 分钟就删掉文件并抛出「推荐上下文已过期请重新搜索」见 scripts/filtalgo.js。同时任何一次新状态写入前cleanupExpiredStates会顺带清扫目录里所有过期的 15 分钟旧文件保证临时目录不会无限膨胀。状态机两个阶段 一次续命阶段由谁写入携带内容search_resultssearch--agent-response查询、需求画像、预算、候选列表recommendation_preparedrecommend prepare已校验排序的候选 第二阶段任务同阶段更新recommend finalize/detail追加模型的finalPayload有一个精巧细节detail回查执行后会调用fs.utimesSync把文件修改时间刷新为当前时间见 scripts/filtalgo.js。也就是说用户连续追问「第 2 款详情」「第 3 款呢」时状态窗口随之续命一旦 15 分钟没有任何后续命令文件自然过期清理。整个窗口的设计意图是一次推荐会话通常几分钟内完成过期状态里的价格、库存已不可信不如强制重新搜索。每次路由切换的「接力棒」就是响应里的命令字符串search 返回prepare_commandprepare 返回finalize_commandfinalize 返回selection_command智能体照着执行即可无需自己拼接参数。 小结命令路由recommend专用分支 →--agent-response加工分支 →--product-ref链接绑定分支 → 兜底透传四层判断覆盖了「推荐决策、智能体响应、链接回查、普通命令」四类场景。状态生命周期15 分钟 UUID 临时文件串联 search/prepare/finalize/detail读时校验过期、写时顺手清理detail可续命形成有界的推荐会话窗口。安全设计状态目录 0700、文件 0600、token 正则校验、链接域名白名单细节见 SKILL.md 的全局安全约束。读懂这个约 300 行的包装器就掌握了 Filtmall-Shopping-Skill「模型做语义、代码做校验」的核心架构入口。【免费下载链接】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),仅供参考
RELATED

相关推荐

Android 使用 NFC 分享文件:Android Beam 文件传输完整实战指南

Android 使用 NFC 分享文件:Android Beam 文件传输完整实战指南

文档教程移动开发 【免费下载链接】android-training-course-in-chinese Android官方培训课程中文版 项目地址: https://gitcode.com/gh_mirrors/an/android-training-course-in-chinese 点击查看 免费下载 本指南基于《Android 官方培训课程中文版》仓库的 使用NF…

📅 2026/10/5 1:58:40
DeepSpeed 动态批量大小与学习率缩放实战:基于 Token 预算的变长序列训练指南

DeepSpeed 动态批量大小与学习率缩放实战:基于 Token 预算的变长序列训练指南

示例工程 【免费下载链接】DeepSpeedExamples Example models using DeepSpeed 项目地址: https://gitcode.com/gh_mirrors/de/DeepSpeedExamples 点击查看 免费下载 本文以 DeepSpeedExamples 仓库中 training/data_efficiency/variable_batch_size_and_lr/README…

📅 2026/10/5 1:53:40
AI智能时代,数据美学更加重要:如何搭建交互可视化仪表盘

AI智能时代,数据美学更加重要:如何搭建交互可视化仪表盘

无需设计师,利用 Highcharts 快速搭建一个专业级运营仪表盘,提升项目质感与交互体验Ai时代开发者应从技术变为艺术科学-改变对仪表盘美学焦虑你是否遇到过这样的情境:Ai来临、开发提速,领导要求「明天上线一个高大上的运营大屏」&…

📅 2026/10/5 1:53:40
MORE NEWS

更多资讯

📰

Three.js加载3DTiles倾斜摄影:从数据准备到性能调优全攻略

做倾斜摄影项目的人越来越多,但很多团队一上来就撞上同一个问题:手里只有一份OSGB或者3DTiles倾斜摄影数据,领导说要在Web端展示,还要叠加业务功能。打开Cesium觉得太重,纯用Three.js又发现它压根不认3dtiles这种格式&…

📰

yarn install 卡在 Building fresh packages 的解决办法

先说我最近一次被这个场景支配的经历。项目刚从仓库 clone 下来,照着 README 敲yarn install,前两段Resolving packages、Fetching packages都跑得飞快,等到了Linking dependencies结束、终端冒出Building fresh packages...之后,…

📰

STM32F103移植到F407后OLED不亮?主频与延时函数是关键

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

openGauss Summit 2025技术解读:数智时代数据库的破局与工程实践

聊到数智时代的数据库技术,openGauss Summit 2025确实是个绕不开的话题。从2020年正式开源至今,openGauss从一个单纯的关系型数据库内核,逐步扩展出了分布式、向量化引擎、全密态、可观测性等一堆能力,社区贡献者也从最初的几家头…

📰

CentOS 7部署Ambari 2.7.5+HDP 3.1.5完整指南:从环境准备到集群验证

以前我手动搭 Hadoop 集群的时候,最头疼的就是各种组件版本对不上、配置改了同步不到所有节点、每台机器都要单独启动服务。后来换到 Ambari 管理之后,部署 HDFS、YARN、Hive 这些组件基本就是在网页上勾选、分配、点安装,整个过程会清晰非常…

📰

光网络保护APS从原理到实战:配置、倒换验证与避坑指南

简介:光网络保护APS技术介绍PPT学习教案,是一份面向光通信网络工程师、运维人员及相关专业学生的教学课件,系统讲解自动保护切换(APS)的核心原理与应用场景。内容包括保护倒换的必要性、网络保护与恢复的区别、光层保护…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬