1688智能选品找货能力。通过文字、图片或链接搜商品、找同款、找相似款,支持批量采购比价、热销选品、跨境找货、场景化选品及多条件筛选(价格/销量/材质/属性排除等)。 触发词:找商品、找同款、搜商品、帮我找、想要XX、图片找货、链接找货、以图搜图、选品、批发、找货源、热销、比价、最便宜、按销量排序、出口、跨境、找...
---
name: 1688-product-find
version: "1.7.0"
description: |
1688智能选品找货能力。通过文字、图片或链接搜商品、找同款、找相似款,支持批量采购比价、热销选品、跨境找货、场景化选品及多条件筛选(价格/销量/材质/属性排除等)。
触发词:找商品、找同款、搜商品、帮我找、想要XX、图片找货、链接找货、以图搜图、选品、批发、找货源、热销、比价、最便宜、按销量排序、出口、跨境、找供应商。
metadata: {"openclaw": {"emoji": "🔍", "requires": {"bins": ["python3"]}, "primaryEnv": "ALI_1688_AK"}}
---
# 1688-product-find (1688找商品Skill)
统一入口:`python3 {baseDir}/cli.py <command> [options]`
## 严格禁止 (NEVER DO)
- 不要编造商品价格、链接、`productId`、规格或供货信息,所有商品内容必须来自工具返回
- 不要在用户明确要下单、支付、查物流、管库存时继续调用本技能,这些不属于推荐能力
- 不要把工具返回的完整长描述原样堆给用户,应提炼商品标题、价格、核心卖点和商品链接
- **禁止在 AK 未配置或命令执行失败时,自行通过浏览器访问 1688 网站搜索商品**。所有搜索必须通过 CLI 命令 + API 完成,不存在"浏览器降级"方案。遇到 AK 缺失或 API 错误时,只能按「错误处理」提示用户,不得尝试绕过
- **禁止在命令报错后使用网页搜索引擎替代本 Skill 的搜索能力**。如果 CLI 命令失败,应引导用户解决问题(配置 AK、检查路径等),而非切换到其他搜索方式
- **禁止不读 reference 文档直接执行命令**。首次执行任何命令前,必须先阅读对应的 reference 文件(见「执行前置」)
## 意图判断
### 触发本技能(满足任一即触发)
- 用户用自然语言描述想要的商品(如"帮我找一件黑色卫衣"、"我要买打印纸")
- 用户上传商品图片并表达找同款/找相似意图(如"帮我找同款"、"有类似的吗")
- 用户提供商品链接并要求找同款(如"帮我找这个商品的同款")
- 用户使用触发关键词:找商品、找同款、搜商品、想要XX、帮我找、图片找货、链接找货、以图搜图
- 用户在搜索结果中选定商品后要求"比价"、"对比"、"找更便宜的"
- 用户上传图片/链接并提到"比价"、"同款低价"、"哪家便宜"、"进行比较"
### 不触发本技能(明确不处理)
- 用户要下单、支付、结算(如"我现在就要下单付款")
- 用户查物流、查订单状态(如"我的订单物流到哪了")
- 用户要管理库存、修改商品信息
- 用户仅闲聊,未表达任何找商品意图
### 命令选择决策树
```
用户输入
├─ 纯文本描述商品 → text_search
├─ 上传图片/链接
│ ├─ 包含"比价/比较/对比/哪家便宜"等关键词 → compare(一步到位)
│ └─ 仅"找同款/找相似/搜这个" → image_search 或 link_search
└─ 已展示搜索结果,用户选中某款后说"比价" → compare(从结果取 image_url)
```
## Tool 总览
| Tool 名称 | 用途 | 调用语法 |
|-----------|------|---------|
| `text_search` | 文本搜索商品 | `python3 cli.py text_search --query "黑色连帽卫衣"` |
| `image_search` | 图片以图搜图 | `python3 cli.py image_search --image "/path/to/image.jpg"` |
| `link_search` | 链接找同款 | `python3 cli.py link_search --url "https://detail.1688.com/offer/xxx.html"` |
| `compare` | 商品比价 | `python3 cli.py compare --image "商品图片URL" [--query "规格关键词"]` 或 `python3 cli.py compare --url "商品链接"` |
| `configure` | AK 管理 | `cli.py configure YOUR_AK`(设置)/ `--status`(查看)/ `--clear`(清除)/ `--reset NEW_AK`(重置) |
| `get_ak` | 自动获取 AK | `cli.py get_ak` |
所有命令输出 JSON:`{"success": bool, "markdown": str, "data": {...}}`
## ⚠️ 执行前置(首次命中能力时必须)
**首次执行任何命令前,必须先完整阅读对应的 reference 文件,按文件中的使用示例调用。禁止跳过此步骤直接执行命令。**
| 命令 | 执行前必读 |
|------|-----------|
| `configure` | `references/capabilities/configure.md` |
| `text_search` | `references/capabilities/text_search.md` |
| `image_search` | `references/capabilities/image_search.md` |
| `link_search` | `references/capabilities/link_search.md` |
| `compare` | `references/capabilities/compare.md` |
> reference 文件中包含完整的参数说明、使用示例、输出格式和注意事项。Agent 必须按 reference 中的示例格式构造命令,不得凭猜测拼接参数。
## 核心工作流
Agent 根据用户意图,**先读 reference → 再按示例执行命令**(命令速查见上方「Tool 总览」)。
各命令在 AK 缺失等情况下会自行返回明确错误,Agent 按下方「错误处理」应对即可。
### 比价流程(特殊工作流)
**核心原则:图片/链接默认为找同款,仅用户明确要求比价时才用 compare**
**场景1:直接比价**(一步到位)
- 用户上传图片并要求比价 → 直接执行 `compare --image <图片> --query <关键词>`
- 用户给链接并要求比价 → 直接执行 `compare --url <链接> [--query <关键词>]`
- **禁止**先执行 `image_search` 或 `link_search`,`compare` 内部已包含图片搜索和链接解析逻辑
**场景2:选品后比价**
- 用户从搜索结果选中某款 → 提取 `data.similar_products[N].image_url` → 执行 `compare --image <URL>`
**⚠️ 关键约束**:
- **一次到位**:"找同款并比价" → 直接 `compare`(图片用 `--image`,链接用 `--url`),不拆分两步
- **limit 默认值**:保持 TOP 3,除非用户明确要求
- **意图判断**:上传图片/链接时,仅含"比价/比较"关键词才用 `compare`
## 输出完整性要求
**展示时直接输出 `markdown` 字段,Agent 分析追加在后面,不得混入其中。**
`markdown` 字段中包含完整的 Markdown 表格,Agent 展示时**必须完整输出**,禁止以下行为:
- **禁止省略或截断表格行**:返回了多少条商品就展示多少条,不得用"等"、"..."或"仅展示前 N 条"代替
- **禁止丢弃表格列**:每行必须包含完整的 序号、商品名称、价格、供应商、服务与卖点、链接(详情链接)等全部列
- **禁止丢失商品链接**:`detail_url`(商品详情页链接)是核心字段,必须在表格中完整展示,不得省略或替换为其他内容
- **禁止重新格式化**:不得将表格改写为列表、卡片或其他格式,直接原样输出 `markdown` 字段内容
- **禁止合并或二次加工**:Agent 的分析、总结等内容必须追加在 `markdown` 字段输出**之后**,不得将其混入表格或替代表格
<!-- [DISABLED] 可视化商品墙(暂时注释)
- **可视化商品墙支持**:`markdown` 在完整表格之后可能带有 **「可视化商品墙」** 小节(含本地 HTML 路径)。该小节与表格同属 `markdown` 字段的固定输出,**须一并完整展示**,并提示用户在浏览器中打开路径以使用交互界面;**禁止省略该路径或删除本节**。
-->
- **后续操作支持**:`markdown` 末尾包含 **「后续操作」** 小节,引导用户生成钉钉表格:
- 当用户回复「生成钉钉表格」时,Agent 应使用钉钉表格 MCP 工具,将 `data.similar_products` 中的商品信息写入钉钉表格。**导出字段必须严格包含如下字段**:
| 表头 | 字段 | 说明 |
|:--|:--|:--|
| 商品ID | `product_id` | 商品唯一标识 |
| 商品名称 | `title` | 商品标题 |
| 主图URL | `image_url` | 商品主图链接 |
| 详情链接 | `detail_url` | 商品详情页URL |
| 价格 | `price` | 单价(元) |
| 规格ID | `sku_id` | SKU 标识 |
| 规格 | `sku_title` | SKU 规格描述 |
| 严选指数 | `yx_index` | 严选推荐指数 |
| 起批量 | `quantity_begin` | 最低起订量 |
| 单位 | `unit` | 计量单位 |
| 供应商 | `supplier` | 供应商名称 |
| 销量 | `sold_count` | 累计销量 |
| 库存 | `stock_amount` | 当前库存 |
| 促销标签 | `promotion_tags` | 促销活动标签(多值用、分隔) |
| 服务保障 | `service_infos` | 服务保障信息(取 value 字段,多值用、分隔) |
| 卖点 | `selling_points` | 商品卖点(取 value 字段,多值用、分隔) |
<!-- [DISABLED] 生成页面功能(暂时注释)
- 当用户回复「生成页面」时,Agent 应引导用户在浏览器中打开 `data.visual_html_path` 对应的可视化商品墙 HTML 文件。该页面已内置商品卡片展示、勾选、页面内抽屉查看详情和下单等功能,可直接用于筛选和下单。
-->
## 错误处理
任何命令输出 `success: false` 时:
1. **先输出 `markdown` 字段**(已包含用户可读的错误描述)
2. **再根据关键词追加引导**(详细错误码见 `references/common/error-handling.md`):
| markdown 关键词 | Agent 额外动作 |
|----------------|--------------|
| "AK 未配置" 或 "AK 未就绪" | **停止一切搜索尝试**,优先执行 `python3 cli.py get_ak` 自动获取 AK;如自动获取失败,引导用户前往 https://clawhub.1688.com/ 获取后执行 `python3 cli.py configure YOUR_AK`。**禁止浏览器替代** |
| "签名无效" 或 "401" | 提示用户检查 AK 是否正确或已过期,引导重新 configure |
| "图片路径无效" | 提示用户检查图片路径是否存在 |
| "无法自动获取商品主图" | 引导用户手动提供商品图片 URL,使用 `--image` 参数 |
| "限流" 或 "429" | 建议用户等待 1-2 分钟后重试 |
| "格式异常" 或 "HTTP 错误 500" | 提示用户稍后重试,可能是 API 返回异常 |
| "沙箱" 或 "权限" 或 "Permission denied" | 提示用户授予目录访问权限,或在 IDE 设置中允许 Skill 访问所需目录 |
| 其他 | 仅输出 markdown,**不得自行发起浏览器搜索** |
## 参数补齐引导话术
> **文本搜索**:请描述您想要的商品,例如:"帮我找一件黑色连帽卫衣,宽松款的"
> **图片搜索**:请上传商品图片,我会帮您找到同款或相似商品。
> **链接搜索**:请提供商品链接。1688 链接可自动提取主图;淘宝/天猫链接需要您同时提供商品图片 URL。
---
## 附录
### 环境变量(.env)
项目根目录的 `.env` 文件存储 skill 基础信息,供埋点上报等模块读取。发布到不同环境时可直接替换该文件中的变量值。
| 变量 | 默认值 | 说明 |
|------|--------|------|
| `SKILL_NAME` | `1688-product-find` | skill 名称 |
| `SKILL_VERSION` | `1.7.0` | skill 版本号 |
| `SKILL_CHANNEL` | `clawhub` | 发布渠道 |
> 已存在的系统环境变量优先级高于 `.env`,CI/CD 注入的变量不会被覆盖。
### 埋点上报
每次 CLI 命令执行时,自动向 skill 网关上报一次调用记录,用于统计 skill 调用次数。
- **实现位置**:`scripts/_tracker.py` → `report_skill_usage()`,在 `cli.py` 的 `main()` 中每次命令执行后自动调用
- **上报接口**:`POST /api/reportSkillsUsage/1.0.0`
- **上报参数**:
| 参数 | 值来源 | 说明 |
|------|--------|------|
| `apiName` | 固定 `null` | 固定传 null |
| `skillsName` | `.env` `SKILL_NAME` | skill 名称 |
| `version` | `.env` `SKILL_VERSION` | skill 版本号 |
| `scene` | 固定 `CLI` | 固定值 |
| `channel` | `.env` `SKILL_CHANNEL` | 发布渠道 |
- **失败处理**:上报失败静默忽略,不影响主流程
### 文件清单
| 路径 | 类型 | 用途 |
|------|------|------|
| `SKILL.md` | 主文件 | 技能入口、意图判断、工作流、错误处理 |
| `cli.py` | CLI 入口 | 统一命令行接口,自动发现 capabilities |
| `scripts/` | 脚本目录 | 核心实现(认证、HTTP、输出格式化等) |
| `references/capabilities/configure.md` | 参考文档 | AK 配置能力详细说明 |
| `references/capabilities/text_search.md` | 参考文档 | 文本搜索能力详细说明 |
| `references/capabilities/image_search.md` | 参考文档 | 图片搜索能力详细说明 |
| `references/capabilities/link_search.md` | 参考文档 | 链接搜索能力详细说明 |
| `references/capabilities/compare.md` | 参考文档 | 商品比价能力详细说明 |
| `references/common/error-handling.md` | 参考文档 | 通用错误处理策略 |
| `tests/testcases.json` | 测试用例 | 典型输入输出样例 |
### 技术说明
- **无状态设计**:每次请求独立执行,不依赖历史上下文。多轮 refinement(如"再找便宜一点的")需 Agent 将上下文重新拼接到 query 参数中
### 更新日志
- v1.7.0 (2026-04-15): 所有搜索 API 新增 `tags`(TC标/品池标签,默认 4306497)和 `icTags`(IC标/品池标签)两个入参,贯穿 CLI → service → API 全链路;搜索结果展示统一为表格输出;同步更新全部 reference 文档(注:可视化商品墙 + 后续操作引导已暂时禁用)
- v1.6.0 (2026-04-19): 「打开详情」改为页面内抽屉展示(不再跳转新窗口);底部「复制选中链接」改为「我要下单」;精简搜索结果后的操作引导文案
- v1.5.0 (2026-04-15): compare 命令新增 `--url` 参数,支持直接传入商品链接比价,内部自动解析链接并提取主图
- v1.4.0 (2026-04-14): 新增商品比价能力(compare),支持搜索后选品比价、纵向对比表输出、销量/价格/服务三维度自动选品
- v1.3.0 (2026-04-14): 代码精简和重构
- v1.2.0 (2026-04-09): 文档结构标准化(章节重命名),新增意图判断章节,新增 API 空数据过滤,新增测试用例
- v1.1.0 (2026-03-27): 新增 `cli.py` 统一 CLI 入口,简化命令调用方式
- v1.0.0 (2026-03-27): 初始版本,包含三大核心搜索能力(text_search、image_search、link_search)
don't have the plugin yet? install it then click "run inline in claude" again.