name: vipshop-product-detail description: 当用户请求查询唯品会商品详情时使用此 skill。执行 vipshop CLI 并传入商品ID,该脚本会查询商品主信息、商品辅助信息并进行分析总结。
唯品会商品详情查询
概述
通过执行 vipshop CLI 命令查询唯品会商品的详细信息,包括商品基本信息、价格信息、商品描述、品牌信息、服务保障等,并进行智能分析总结。
功能特性:商品ID查询、主信息获取、智能分析总结、自动登录触发
重要提示:当检测到用户未登录时,AI 必须自动触发登录流程,无需用户手动请求。
注意:商品辅助信息接口当前不可用,仅返回商品主信息。
使用场景
- 用户要求查询唯品会商品详情时
- 需要了解商品详细信息、价格、品牌等信息时
- 任何唯品会商品详情相关查询
工作流程
步骤 1:检测组件安装与登录状态(AI 必须执行)
在执行查询前,AI 必须先检测依赖:
- 检测
vipshop-cli是否已安装(命令是否存在),如果没有则需全局安装:npm install -g vipshop-cli - 执行
vipshop status命令检查登录状态- 解析返回的 JSON,检查
success字段 success: true表示已登录,success: false表示未登录或登录态已过期
- 解析返回的 JSON,检查
- 如果已登录(`vipshop status` 返回 `success: true`):直接执行步骤2
- 如果未登录(`vipshop status` 返回 `success: false`):必须自动触发登录流程(见下文"未登录自动处理")
重要:不要直接执行查询脚本,而是先使用 vipshop status 命令检查登录状态。如果直接执行脚本返回 {"error": "login_required"},说明未登录,此时必须进入自动登录流程。
未登录自动处理(AI 必须自动执行)
当检测到未登录时,AI 必须按以下步骤自动处理,不要等待用户手动请求:
步骤 1.1:提示用户
检测到您尚未登录唯品会账户,准备为您启动登录流程。
💡 登录说明:
- 将使用唯品会登录 SKILL 完成登录
- 使用唯品会APP扫描二维码登录
- 快捷便捷,安全可靠
如果遇到未登录:
请直接执行系统原生级命令:vipshop login,随后必须在聊天中将获取到的二维码【线上链接】和【生成的二维码本地图片】(根据路径)同时一并返回给用户进行扫码登录操作。然后按照控制台提示使用 vipshop login --poll <qrToken> 轮询状态即可完成登录。
步骤 1.3:自动触发登录流程(通过 Skill 方式)
执行 vipshop login:
触发 `vipshop login`(阻塞模式)
如果 skill 调用不可用,则执行命令(备选方式):
vipshop login
步骤 1.4:等待登录完成 等待 SKILL 完成登录流程,包括:
- 生成二维码
- 用户扫码确认
- 登录验证
步骤 1.5:确认登录成功后,继续执行步骤2 登录成功后,继续执行商品详情查询。
步骤 2:接收商品ID
接收用户提供的商品ID,确保不为空。
步骤 3:执行查询脚本
执行:vipshop product-detail --product-id <product_id>
步骤 4:展示结果
解析 JSON 数据并格式化输出,展示商品分析总结。
输出格式要求:
- 优先使用 Markdown 格式:AI工具优先使用 Markdown 表格或格式化输出,提供更好的可读性
- 备选文本格式:如果AI工具不支持 Markdown,则使用普通文本格式输出
显示字段:
- 商品图片:前3张商品图片
- 商品信息:品牌名 | 商品名称
- 价格信息:市场价、到手价、折扣
- 价格计算公式:价格明细说明
- 优惠信息:活动优惠提示
- 优惠券信息:可用优惠券
- 服务标签:商品服务保障标签
- 正品信息:正品保障相关信息
- 精华评论:前两条用户评价内容
- 链接:PC端商品详情链接
重要说明
脚本位置
skills/vipshop-product-detail/scripts/detail.py(基于原生 Node.js,通过 NPM Wrapper 提供完整功能)
输出格式
{
"商品ID": "6921714935983149512",
"分析总结": {
"商品图片": [
"https://img.vip.vip.com/xxxxx.jpg",
"https://img.vip.vip.com/xxxxx.jpg",
"https://img.vip.vip.com/xxxxx.jpg"
],
"商品信息": "品牌名|商品名称",
"价格信息": {
"到手价": "299",
"市场价": "399",
"折扣": "7.5折"
},
"价格计算公式": "活动价299-优惠券20=到手价279",
"优惠信息": [
{
"类型": "限时特惠",
"提示语": "限时特惠,低至7.5折"
}
],
"优惠券信息": [
{
"优惠券描述": "满200减20优惠券",
"使用门槛": "满200元可用",
"购买价": "10",
"优惠金额": "20",
"使用时间": "有效期至2024-12-31"
}
],
"服务标签": [
"正品保障",
"7天无理由退货",
"全国包邮"
],
"正品信息": [
"正品保障",
"品牌授权",
"中国人保承保"
],
"精华评论": [
"第一条用户评价内容",
"第二条用户评价内容"
],
"链接": "https://detail.vip.com/detail-123456-6921714935983149512.html"
},
"原始数据": {
"商品主信息": {...},
"商品辅助信息": {...}
}
}
输出格式示例
优先使用 Markdown 格式(推荐):
# 商品详情
**商品ID**:6921714935983149512
## 商品图片
1. 
2. 
3. 
## 商品信息
**品牌名|商品名称**
## 价格信息
| 项目 | 价格 |
| ------ | ----- |
| 到手价 | ¥299 |
| 市场价 | ¥399 |
| 折扣 | 7.5折 |
## 价格计算公式
📊 活动价299-优惠券20=到手价279
## 优惠信息
- **限时特惠**:限时特惠,低至7.5折
## 优惠券信息
| 优惠券描述 | 使用门槛 | 购买价 | 优惠金额 | 使用时间 |
| --------------- | ----------- | ------ | -------- | ------------------ |
| 满200减20优惠券 | 满200元可用 | 10 | 20 | 有效期至2024-12-31 |
## 服务标签
✅ 正品保障 · 7天无理由退货 · 全国包邮
## 正品信息
🏷️ 正品保障 · 品牌授权 · 中国人保承保
## 精华评论
**评论1**:第一条用户评价内容
**评论2**:第二条用户评价内容
## 商品链接
🔗 [查看商品详情](https://detail.vip.com/detail-123456-6921714935983149512.html)
备选文本格式(AI工具不支持 Markdown 时使用):
📦 商品ID:6921714935983149512
━━━ 商品图片 ━━━
🖼️ [图片1] https://img.vip.vip.com/xxxxx.jpg
🖼️ [图片2] https://img.vip.vip.com/xxxxx.jpg
🖼️ [图片3] https://img.vip.vip.com/xxxxx.jpg
━━━ 商品信息 ━━━
📦 品牌名|商品名称
━━━ 价格信息 ━━━
💰 到手价:¥299
💰 市场价:¥399
🏷️ 折扣:7.5折
━━━ 价格计算公式 ━━━
📊 活动价299-优惠券20=到手价279
━━━ 优惠信息 ━━━
🏷️ 限时特惠:限时特惠,低至7.5折
━━━ 优惠券信息 ━━━
🎟️ 满200减20优惠券
- 使用门槛:满200元可用
- 购买价:10
- 优惠金额:20
- 使用时间:有效期至2024-12-31
━━━ 服务标签 ━━━
✅ 正品保障 · 7天无理由退货 · 全国包邮
━━━ 正品信息 ━━━
🏷️ 正品保障 · 品牌授权 · 中国人保承保
━━━ 精华评论 ━━━
📝 [评论1] 第一条用户评价内容
📝 [评论2] 第二条用户评价内容
━━━ 商品链接 ━━━
🔗 https://detail.vip.com/detail-123456-6921714935983149512.html
示例
示例 1:成功查询
用户输入: "查询商品详情 6921714935983149512"
执行: vipshop product-detail --product-id 6921714935983149512
输出:
{
"商品ID": "6921714935983149512",
"分析总结": {
"商品图片": ["图片1", "图片2", "图片3"],
"商品信息": "品牌名|商品名称",
"价格信息": {
"到手价": "299",
"市场价": "399",
"折扣": "7.5折"
},
"价格计算公式": "活动价299-优惠券20=到手价279",
"优惠信息": [...],
"优惠券信息": [...],
"服务标签": ["正品保障", "7天无理由退货", "全国包邮"],
"精华评论": {...},
"链接": "https://detail.vip.com/detail-123456-6921714935983149512.html"
},
"原始数据": {
"商品主信息": {...},
"商品辅助信息": {...}
}
}
示例 2:用户未登录(AI 自动触发登录)
用户输入: "查询商品详情 6921714935983149512"
AI 响应(必须执行):
-
检测未登录(
vipshop status返回success: false) -
立即自动执行(不要等待用户请求):
检测到您尚未登录唯品会账户,准备为您启动登录流程。 💡 登录说明: - 将使用唯品会登录 SKILL 完成登录 - 使用唯品会APP扫描二维码登录 - 快捷便捷,安全可靠 正在为您生成登录二维码... -
通过 skill 方式触发登录(优先方式):
调用 use_skill 工具触发 `vipshop login`如果 skill 调用不可用,则执行命令(备选方式,相对于项目根目录):
vipshop login -
等待用户扫码确认并完成登录
-
登录成功后,自动继续执行(相对于项目根目录):
vipshop product-detail --product-id 6921714935983149512 -
向用户展示查询结果
关键点:
- AI 主动检测并触发登录,无需用户再次请求
- 使用
--blocking参数等待登录完成 - 登录成功后自动继续执行查询
AI 行为规范(必须严格遵守)
未登录处理(AI 必须自动执行)
当检测到用户未登录时,AI 必须:
- 不要只提示用户"需要登录",而应该立即自动触发登录流程
- 不要等待用户再次请求,而是主动执行以下步骤:
- 检查并安装 vipshop login SKILL
- 自动调用
vipshop login(优先)或执行vipshop login --blocking触发登录(备选,相对于项目根目录:skills/vipshop-skills/vipshop login/scripts/vip_login.py) - 等待用户扫码完成登录
- 登录成功后自动继续执行商品详情查询
- 如果找不到
vipshop login:- 执行
vipshop login - 安装完成后自动触发登录流程
- 执行
禁止行为
- ❌ 不要只返回错误信息让用户自己处理
- ❌ 不要等待用户再次请求登录
- ❌ 不要在未登录时直接执行查询脚本
正确行为
- ✅ 检测到未登录时立即自动触发登录流程
- ✅ 使用阻塞模式(--blocking)等待登录完成
- ✅ 登录成功后自动继续执行查询
- ✅ 全程无需用户手动请求,AI 主动完成
实现要求
登录状态验证
执行前必须验证:
- 执行
vipshop status命令并检查返回的 JSON 中的success字段success: true表示已登录success: false表示未登录或登录态已过期
- 未登录时:
- 自动执行
vipshop login - 生成二维码并等待用户扫码确认
- 登录成功后自动继续执行脚本
- 自动执行
- 登录成功后才执行查询脚本
脚本执行
vipshop product-detail --product-id <product_id>
参数说明:
product_id:商品ID(必需)
示例:
vipshop product-detail --product-id 6921714935983149512
信息提取与总结
执行脚本后:
- 解析商品主信息和商品辅助信息
- 提取关键字段并按新格式组织:
- 商品图片:从 previewImages.imageUrl 字段提取前3张
- 商品信息:品牌名和商品名称拼接(格式:品牌名|商品名称)
- 价格信息:市场价、到手价、折扣
- 价格计算公式:formula.detail 下的 t 字段拼接
- 优惠信息:foldTips、svipFoldTips 字段
- 优惠券信息:foldCoupons 字段
- 服务标签:serviceTags 字段(去重)
- 正品信息:commitment4 字段
- 精华评论:前两条用户评价内容(从 productReputationList.reputation.content 提取)
- 链接:PC端商品详情链接
- 过滤技术性字段:不展示品牌ID、分类ID、SPU ID等技术性标识符
- 进行智能分析和总结
- 格式化输出:
- 优先使用 Markdown 格式:使用表格、标题、列表等 Markdown 元素提升可读性
- 备选文本格式:如果AI工具不支持 Markdown,则使用普通文本格式
- 向用户显示格式化的分析结果
接口信息
登录态要求
- 使用前必须通过
vipshop login登录 mars_cid:从登录态文件读取作为请求参数PASSPORT_ACCESS_TOKEN:通过 Cookie 传入- 未登录时提示用户先登录
商品主信息接口
URL: https://mapi-pc.vip.com/vips-mobile/rest/shopping/skill/detail/main/v6
方式: POST
主要参数: productId(必需)、mars_cid、scene(detail)
Cookie: PASSPORT_ACCESS_TOKEN
返回: 商品基本信息、价格信息、品牌信息、服务保障、优惠信息等
商品辅助信息接口
注意:当前接口不可用,暂不提供尺码表、尺码推荐等辅助信息。
注意事项
- 自动登录触发(重要):检测到未登录时,AI 必须自动触发登录流程,不要只提示用户
- 登录要求:必须先执行
vipshop login获取登录态 - 输出格式:AI工具优先使用 Markdown 格式输出,提供更好的可读性;如果AI工具不支持 Markdown,则使用普通文本格式
- 参数固化:大部分接口参数已固化
- 网络要求:需要正常网络连接
- URL 编码:自动处理中文和特殊字符
- 字段缺失:空字段自动跳过显示
- 辅助信息失败:辅助信息接口失败时,可继续展示主信息
- 登录态管理:通过
vipshop status命令检查登录状态 - **依赖库:纯 Node 原生环境直连 Fetch,零外部 HTTP 依赖。
- 分析总结:自动提取关键信息并进行智能分析
- 原始数据:同时保留原始数据供调试使用
- 用户体验:整个登录和查询过程对用户透明,无需用户多次请求
技术细节
- **实现语言:基于 Node.js CLI (Commander)
- 数据格式:JSON(脚本输出)→ 格式化文本(AI 展示)
- 编码支持:UTF-8,支持中文
- 异常处理:完整的网络异常和 API 错误处理
- 登录态管理:通过
vipshop status命令检查登录状态 - 依赖库:内部已绑定 Node.js Fetch 环境
- 智能分析:自动提取关键信息并生成分析总结
- 降级策略:辅助信息失败时降级为仅展示主信息
常见问题
Q: 如何获取商品ID? A: 可以通过 vipshop-product-search skill 搜索商品获取商品ID。
Q: 支持哪些语言? A: 支持中文、英文等多种语言,自动 URL 编码。
Q: 接口调用失败怎么办? A: 检查网络连接,持续失败可能是接口参数更新。辅助信息失败时自动降级。
Q: 为什么有些字段为空? A: 某些商品可能缺少尺码表、品牌故事等信息,系统自动跳过空字段。
Q: 需要登录才能使用吗?
A: 是的,必须先执行 vipshop login 获取登录态。
Q: 原始数据有什么用? A: 原始数据包含完整的接口返回数据,可用于调试和扩展分析。
Q: 为什么没有尺码表信息? A: 商品辅助信息接口当前不可用,因此无法提供尺码表、尺码推荐等信息。