Install
openclaw skills install @fenxianglife/fenxiang-saving-assistantopenclaw skills install @fenxianglife/fenxiang-saving-assistant购买建议、同款判定、推荐都在粉象服务端完成,和粉象 App 里的 AI 省钱管家是同一套。你只做两件事:选对工具,照结果说话。
| 用户给了什么 | 调用 | 要点 |
|---|---|---|
| 1 个商品链接、淘口令、整段分享文案,或从购物 App 复制的整段商品标题 | buy_advice | goodsUrl 传原文,不用自己抠链接;整段标题会按标题找到那件商品(与 App 标题转链一样)。结果已含历史价、同款比价和省钱方案,不要再调 history_price / compare_price / saving_plan |
| 2–5 个商品链接,要对比 | batch_analyze | 一次传全,逗号或换行分隔;超过 5 个分批 |
| 只说了型号或简短品名(没有链接),问哪里便宜、多少钱 | compare_by_name | 没有同款时结果会附上按名称搜到的在售商品(relatedGoods),先说「没查到可靠的同款比价」,再给这些商品并说明不是同款判定、型号规格要核对;连这些都没有时再用 recommend_goods |
| 说需求让推荐(预算、用途、送礼对象、"哪款好") | recommend_goods | userQuery 传用户原话;返回澄清问题就转述,用户回答后把回答拼进 userQuery 再调一次 |
| 只想按关键词看看有哪些商品(可限价格区间、只看官方店) | goods_search | 默认全平台(淘宝/天猫、京东、唯品会) |
| 抖音链接、拼多多分享短链等解析不了的链接 | 先按结果里的 suggestedNextAction | 请用户发商品标题(分享文案里的商品名也行),用 compare_by_name 按名称比价;不要换链接格式反复重试 |
| 淘宝商品没参加淘宝联盟推广(结果说查不到它的价格) | compare_by_name | suggestedNextAction 里已经带了商品标题,直接用它按名称比价,不要让用户再发链接 |
| 用户指着上一轮的结果说「第 N 个」「上面那款」 | buy_advice | 按上一轮表格的 # 序号找到那件商品,用它的链接调用;不要重新搜索 |
| 明确只要历史价曲线 / 比价表 / 省钱步骤 | history_price / compare_price / saving_plan | 只在用户点名要时用 |
| 什么都没给("帮我省点钱") | 不调工具 | 一句话请用户发链接、说型号或说需求 |
retryable=false 的空结果,不要换参数、换 responseFormat 重试,按 suggestedNextAction 告诉用户下一步。tools/list 返回为准);没有连上时用本技能 scripts/ 下的脚本(见文末)。每个工具结果都分两层:
### 回答要点(可直接转述给用户)(JSON 格式里是 summary 字段):已经按 App 省钱管家的口吻排好。### 数据明细(供核对与追问,不必逐项展示):比价表、历史价、方案步骤等,用户追问时再引用。回答骨架和 App 一致:
[去下单] 单独拎成一行;有别的渠道时用回答要点里的比价表格(渠道、到手价、链接、差价/说明)。展示规则:
工具结果开头的「【给助手的展示要求,不用转述】」是给你的展示要求(顺序、优先 Mermaid、链接、只用本结果的价格):照做,不要转述给用户。
比价用表格:回答要点里的表格(同款比价、搜索结果、批量对比、直接买和省钱方案的对比)原样保留,不要改写成大段文字,也不要调列的顺序(到手价、链接排在前面,是为了手机上一屏看得到);行太多时只留前几行。
历史价:放在买法(到手价、比价表、风险)之后、下一步之前,照回答要点的两个小标题分两块、按这个顺序放,图一定在价格轨迹表上面:
近 N 天券后价:最高… 最低…),后面可以接一句话概括规律(如降价幅度、之后有没有回升,只用表里的数字和日期;不要另起「走势很清晰:」这类小标题),下面紧跟曲线图;曲线图优先用 Mermaid,界面确实渲染不了时才往下选:
%%{init…}%%,里面设了画布宽度、线色和纵轴留白,删掉的话浅色界面上折线看不见、手机上纵轴价格会被裁)。不要沿用之前回答里的图,不要改标题、横轴日期写法或删数——横轴写成「9月10日」、第一行加宽画布,是为了避开部分界面把英文标点替换掉、标签挤在一起,改成「25-09-10」「2025/9/10」就会显示成乱码;回答要点里的 [去下单] / [去看看] 链接原样给用户,这是用户下单的入口,不能省。
结尾的「价格说明」保留一行即可,不要每段都重复。
不要用「~」表示区间,数字和日期区间用「至」或「–」(如「7499–8200」「1 至 7 天」):部分界面会把同一段里两个波浪号之间的字当成删除线划掉。
一般 3–8 行加一张表就够;用户要细节再展开数据明细。
| 说法 | 含义 |
|---|---|
| 到手价 | 直接下单的价格:已扣店铺券和平台优惠(立减、淘金币等) |
| 券后价 | 只扣店铺券的价格;历史价按券后价记录,和历史比较时用券后价 |
| 方案价 | 要会员、凑单等条件才能拿到的价格,条件要和价格一起说;和到手价一样不扣国补;省得很少时直接买也行 |
| 国补 / 政府补贴 | 要所在地区有资格并领取,单独说,不要算进到手价;回答要点里的「如果能领国补:到手 ¥X…」是有条件的结论,原样转述,不要说成无条件 |
| 新人价 / 首单价 | 要新用户身份,同样单独说 |
| 历史最低 / 平时价 | 这件商品自己的历史券后价 |
| 全网最低 | 同款同规格里最便宜的渠道;第三方买手店、异常低价会作为风险单独提示 |
suggestedNextAction 给下一步;不要凭记忆补价格或活动。compare_by_name 的 matchLevel 是 SIMILAR 时只是相近款,要说清差在哪(diff),不能说成同款;结果带 notice(按名称搜到的商品)时,不能说成「全网最低」。recommend_goods,由它决定要不要追问;不要自己先列一串问题。userQuery 再调。buy_advice 之后再调 history_price / compare_price / saving_plan 拼结果。例 1:发链接问值不值得买
用户:https://e.tb.cn/h.xxxx 这个吹风机现在买划算吗
调用 buy_advice,goodsUrl 传 https://e.tb.cn/h.xxxx。回答:
⏳ 价格偏高,建议等活动 • 当前处于历史高位,比平时偏贵 • 双11快到了,活动期更容易出低价 当前到手价 ¥399.00(天猫 / 品牌官方旗舰店,官方/自营) 去下单
价格走势 近 91 天券后价:最高 ¥429.00(10-25 至 10-28),最低 ¥329.00(08-03 至 08-07)
Rendering diagram...价格轨迹
阶段 券后价 说明 2026/7/31 — 8/2 349 收录起,持续 3 天 8/3 — 8/7 329 降 20,仅 5 天,历史最低 8/8 — 9/14 349 回到 349 9/15 — 10/24 399 涨 50 10/25 — 10/28 429 涨 30,仅 4 天,历史最高 10/29 399 今天,降 30,比收录起累计涨 50(+14.3%) 下一步:不急就等双 11 开售再看,到时把链接发我再查一次。 价格说明:到手价已扣店铺券和平台优惠;历史价按券后价记录
例 2:只说型号问哪里便宜
用户:iPhone 17 Pro 256G 哪里买最便宜
调用 compare_by_name,productName 传 iPhone 17 Pro 256G。回答:
全网同款最低:京东 / Apple产品京东自营旗舰店 ¥7999.00
# 到手价 链接 平台 店铺 说明 1 ¥7999.00 去看看 京东 Apple产品京东自营旗舰店 最低、官方/自营 2 ¥8299.00 去看看 天猫 Apple Store 官方旗舰店 贵 ¥300.00、官方/自营 下一步:点最低价那一行的链接领券下单。 价格说明:到手价已扣店铺券和平台优惠
表格直接用回答要点里的。如果结果的 matchLevel 是 SIMILAR:先说"没有找到完全同款,下面是相近款,差在 xxx",再给表格。
例 3:说需求让推荐,先澄清
用户:想给我妈买个生日礼物
调用 recommend_goods,userQuery 传 想给我妈买个生日礼物,结果返回澄清问题。回答:
想先确认两件事,好帮你挑: • 预算大概多少?(200 以内 / 200–500 / 500 以上) • 偏实用还是偏心意?(家电数码 / 护肤保养 / 鲜花首饰)
用户回答"500 左右,实用点"后,再调 recommend_goods,userQuery 传 想给我妈买个生日礼物;预算 500 左右,偏实用,按回答要点里每组的表格推荐(每组 6–10 款,带序号、到手价和链接),表格原样保留,可以在表格前用一句话说明这组为什么适合。
在本技能目录下执行:
python3 scripts/fenxiang_mcp.py tools/list
python3 scripts/fenxiang_mcp.py buy_advice '{"goodsUrl":"<商品链接或分享文案>"}'
python3 scripts/fenxiang_mcp.py compare_by_name '{"productName":"iPhone 17 Pro 256G"}'
python3 scripts/fenxiang_mcp.py recommend_goods '{"userQuery":"500元以内送妈妈的生日礼物"}'
python3 scripts/verify.py # 全链路自检:先搜索拿到在售链接,再逐个工具验证
https://api.fenxianglife.com/njia/mcp,可用 FENXIANG_MCP_URL 或 --url 覆盖。FENXIANG_MCP_API_KEY 或 --api-key-file 传入,不要写进 Skill 或对话。--insecure 只用于内网自签名测试环境。references/tools.md:8 个工具的入参、关键出参和价格字段scripts/fenxiang_mcp.py:MCP Streamable HTTP 客户端(仅标准库)scripts/verify.py:全链路自检