git:20260820.02ae832 to git:20260821.a6e0145

5 added, 6 removed. Audit A to A.

---
name: qinghu-ecom-sourcing
description: 青虎AI 电商选品上货总入口:基于青虎 MCP 数据能力,覆盖 Amazon、TikTok Shop、Shopee、Ozon、抖音、小红书、B 站、1688 的爆款挖掘、竞品分析、关键词选品、市场评估、货源采集与一键上架。当用户提到选品、找爆款、竞品分析、市场调研、类目评估、关键词挖掘、找货源、跨境铺货、一键上架,或点名亚马逊/Shopee/Ozon/TikTok/抖音/1688 的商品与市场数据时必须触发。关键词:青虎AI、选品、上货、爆款、竞品、蓝海、类目、关键词选品、货源、铺货、跨境电商。
user-invocable: true
metadata: {"openclaw":{"emoji":"🛒"}}
---
# AI电商选品上货 | 青虎AI
「AI电商选品上货」是青虎AI 电商数据能力的**总入口**:从选品、竞品分析、市场评估到货源采集与一键上架,一条链路做完。
覆盖平台:Amazon、Ozon、Shopee、TikTok Shop、抖音、小红书、B 站、1688。
**先看清用户要哪一步**——选品 / 分析 / 采集 / 上架是四件不同的事,别一上来就堆数据。
## 何时触发
- 「帮我选品」「找找有什么爆款」「这个类目能做吗」
- 「分析下这个竞品 / 这个 ASIN / 这个店铺」
- 「找同款货源」「从 1688 找这个款」
- 「把这些链接铺到抖店」「一键上架」
- 用户点名某个平台的商品、榜单、达人、关键词、市场数据
## 数据接口
本技能的数据全部来自**青虎数据接口**——一个普通的 HTTP 端点,用任何能发请求的方式调用即可(`curl`、`fetch`、`requests` 都行)。
如果当前环境已经把这些工具做成了可直接调用的工具,那就直接调,不必自己拼请求。
| 项 | 值 |
| --- | --- |
| 地址 | `POST https://www.iqinghu.com/api/desktop/qh/mcp` |
| 必需请求头 | `Authorization: Bearer <青虎密钥>`、`Content-Type: application/json` |
| 密钥来源 | 向用户索取,或读环境变量 `QINGHU_TOKEN` / `QHKIT_TOKEN`;用户在 https://www.iqinghu.com/workbench/dashboard/api-keys 生成 |
**HTTP 401 + 空响应体不一定是密钥的问题,按这个顺序排查**:
① **先原样重试一次**——2026-08-18 实测过同一把有效密钥间歇性返回 401 空体、隔一会儿再请求就正常,别一遇到 401 就下结论;
② 检查请求头是不是 `Authorization: Bearer <密钥>`(少了 `Bearer ` 前缀、或改用 `X-Api-Key` / `api-key` 一律 401);
③ 持续 401 时,拿**同一个密钥**请求 `GET https://www.iqinghu.com/api/desktop/qh/workflow/page?pageNum=1&pageSize=5`(同一套鉴权):
返回 200 说明密钥有效,问题在这个端点的账号权限——此时**不要再向用户索要密钥**,请他到青虎工作台开通数据接口权限。
返回一律是纯 JSON,不需要 `Accept: text/event-stream`。
### 1) 查工具入参
第一次用某个工具、或拿不准参数时先查一次,**不要猜参数**:
```json
{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}
```
`result.tools[]` 每项含 `name`(调用时用的名字)、`title`(中文名)、`description`、`inputSchema`(必填项与类型)、`outputSchema`、`free`(是否免费)。
### 2) 发起调用
工具名照 `tools/list` 返回的 `name` 原样填:
```json
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"hot_douyin_rank","arguments":{}}}
```
### 3) 取业务数据:要解两层
**业务数据是被 JSON 字符串化塞在 `content[0].text` 里的**,直接读 `content` 拿不到值:
```json
{"jsonrpc":"2.0","id":2,"result":{
"isError": false,
"pointCost": 2000,
"content": [{"type":"text","text":"{\"code\":200,\"data\":{...},\"success\":true}"}]
}}
```
**必须对 `content[0].text` 再做一次 JSON 解析**,才拿得到里面的 `data`。
### 4) 判断成没成功:三层都要看
**HTTP 状态码永远是 200,`isError` 也可能骗人**,按顺序检查:
| 检查 | 含义 |
| --- | --- |
| 顶层有 `error` 对象(此时没有 `result`) | 协议层失败,如工具名写错会返回「工具不存在: xxx」 |
| `result.isError` 为 `true` | 调用出错 |
| 解析内层后 `code == 200` 且 `success == true` | **只有这样才算真成功** |
实测缺必填参数时返回的是 `isError: false` 但内层 `code:500`、`success:false`——**光看 `isError` 或 HTTP 200 会把失败当成功**。
参数出错时的提示只有一句「API调用成功判断失败」,既不说缺哪个参数也不说哪个值非法,所以**调用前对着 `inputSchema` 的 `required` 自查**,不要靠试错。
调用失败时 `pointCost` 为 0,不扣费。
拿不到数据就停下来说明卡在哪(缺密钥 / 工具名不存在 / 参数不对),**不要用名字相似的工具替代**,也不要改用浏览器抓网页——
商品、货源、榜单、达人、关键词、市场数据类需求一律优先走这些接口。
下表是本技能要用的工具,写的是 `name` 原值;表里只补 `inputSchema` 里看不出来的取值来源与前置步骤。
| 工具 | 中文名 | 用在哪一步 |
| --- | --- | --- |
| `product_node / product_research / market_research` | 亚马逊类目与选品 | Amazon 选品与市场评估 |
| `asin_detail / keepa_info / review` | ASIN 详情与趋势 | Amazon 单品分析 |
| `keyword_miner / traffic_keyword / google_trend` | 关键词挖掘与反查 | 以词定款、流量诊断 |
| `queryhot* / querycategory* / queryshop*` | Ozon 榜单与类目 | Ozon 选品、竞店、关键词 |
| `queryshopee*` | Shopee 数据族(39 个) | Shopee 大盘、类目、爆款、热搜词、品牌 |
| `tiktok_*` | TikTok 数据族(16 个) | TikTok 商品/达人/视频榜单与详情 |
| `douyin_* / rednote_* / bilibili_* / hot_*_rank` | 国内社媒数据 | 抖音/小红书/B 站内容与达人数据 |
| `1688goods_keyword_search_global / 1688goods_image_search_global / 1688goods_detail_global` | 1688 货源 | 关键词找款、以图搜款、商品详情 |
| `qinghu_query_erp_authorized_accounts / xiaofeng_*` | ERP 授权与晓风上货 | 抖店链接铺货与商品编辑(免费工具) |
> 上表按**工具族**列出,具体工具名以 `tools/list` 返回的实际清单为准。
> 平台专项的细节口径(站点枚举、账期、类目 ID 怎么查)在各平台的专项技能里,本技能只做路由与串联。
## 工作流程
### 1) 先分清用户要的是哪一步
| 用户意图 | 走哪条线 |
| --- | --- |
| 「有什么好卖的 / 找爆款 / 挖蓝海」 | **选品**:榜单 + 多维筛选 + 趋势验证 |
| 「这个品 / 这个店 / 这个链接怎么样」 | **分析**:详情 + 历史趋势 + 评论 + 流量词 |
| 「这个类目能不能做」 | **市场评估**:容量、集中度、价格带、新品活跃度 |
| 「找同款货源 / 从 1688 找」 | **采集**:以图搜款 / 关键词找款 + 商品详情 |
| 「铺到抖店 / 一键上架」 | **上架**:ERP 授权 → 选模板 → 链接铺货 |
### 2) 补齐必要口径再开工
平台、站点、类目、时间周期缺一不可。用户没说就问一句,**不要默认站点、不要编类目 ID**——
类目 ID 一律先用对应平台的类目工具查出来再用。
### 3) 取数:先免费后付费,一次取够
- 同一个需求先看有没有免费工具;付费工具按下面「计费与授权」一次性征求同意。
+ 同一个需求先看有没有免费工具;所有调用按下面「计费与授权」先一次性征求同意。
一轮内不要为了多拿一点数据反复调同一个工具。
### 4) 出结论,不是出字段
先回答用户真正的问题(能不能做 / 做哪个 / 风险在哪),数据作为支撑;
明细数据按「数据交付」导出成文件,不要铺在聊天里。
## 输出
- **选品**:候选清单(按机会度排序)+ 每款一句话理由 + 明细表文件。
- **分析**:结论(值不值得跟 / 差距在哪)+ 关键指标对比 + 风险提示。
- **市场评估**:能不能进 + 怎么切(价格带、差异化方向)+ 主要风险。
- **采集 / 上架**:处理条数、成功与失败明细、失败原因、后续动作。
## 数据交付
- **工具返回的记录数组 ≥ 10 条时默认导出表格文件**(装了 `qinghu-excel-export` 技能就用它),不管用户有没有提「表格 / 导出」。**不要**把大数据集铺成聊天里的 markdown 表格,也**不要**反问「需要我导出吗」——先导出、给链接才是正确姿势。
- 工具返回里出现「完整数据已缓存到本机文件: ...」时,后续筛选、导出一律用那个文件路径,**绝对不要逐行抄写数据**。
- 导出后的回复保持精简:交付链接 + 一句话说明 + 不超过 5 行关键预览。
- **结论先行**:先给判断和建议(能不能做、怎么做、风险在哪),再给支撑数据;不要把原始字段直接倒给用户。
- 数字要标口径:站点 / 账期 / 周期 / 样本量。跨站点或跨周期的数字不要混在一张表里比。
## 计费与授权
- - **收不收费看工具的 `free` 字段**(bool,`tools/list` 返回里每个工具都带):`free=true` 直接调用、不必询问;`free=false` 按下面的规则征求授权。
- - **不要看描述里的文案**——有的工具描述里写着「免费」,`free` 却是 `false`(1688 那几个就是),**一律以 `free` 字段为准**。取不到该字段时按付费处理。
+ - **所有工具统一在发起调用前先经用户确认**,不必按 `free` 字段区分收费与否,按下面的规则征求授权。
+ - **不要轻信描述里的「免费」文案**——有的工具描述写着「免费」实际照样扣积分(1688 那几个就是);没实测过 `pointCost` 就说「费用以实际扣费为准」,不要替工具打包票。
- **实扣多少看返回信封里的 `pointCost`**(在 `result` 层,与 `isError` 同级)。这个值**要换算**:`pointCost ÷ 10000 = 青虎积分`(实测 10000 = 1 积分,16000 = 1.6 积分)。
- **只认信封层的 `pointCost`,绝不去业务数据里翻积分字段**——工具返回的业务文本里常带 `charge_points` / `points_balance` 或「消耗 8 积分,剩余 1952 积分」之类的话,那是**上游数据源自己的积分体系**,和青虎积分不是一回事(实测同一条响应 `pointCost=16000`=青虎 1.6 积分,而业务文本写「消耗 8 积分」)。照抄业务文本会把用户的账算错。
- 信封里没有 `pointCost` 时按 0 报,或直接说这次拿不到消耗数据,**不要拿业务文本里的数字顶替,也不要自己估算**。
- **事前预估同样只能报换算后的青虎积分,绝不报原始点数**——征求授权时给用户估费用,依据只能是本会话内同一工具实测到的 `pointCost` 换算值(`pointCost=20000` 要说「约 2 积分」;照抄原始数字说成「约 2 万积分」等于把账算错一万倍)。没实测过就写「费用以实际扣费为准」,不要编数字,也不要照抄工具描述里出现的任何点数。
- **消耗写在回复的最末尾,单独一行,格式固定**:
```
本次共消耗 9.6 青虎积分
```
数值是本轮**所有**付费调用的 `pointCost` 累加后 ÷ 10000(例:16000 + 96000 = 112000 → `本次共消耗 11.2 青虎积分`)。小数按实际写,不补零也不四舍五入到整数。
这一行必须**另起一行、独占一行、放在正文全部结束之后**,前面空一行隔开。**不要把积分数字混写进正文段落**(写成「共返回 60 条笔记,实扣 96000 pointCost = 9.6 青虎积分」这种是错的)。
本轮一次付费调用都没有时,不输出这一行。
- - **本会话首次用到付费工具**:一次性列清本次要用的**全部**工具,说明准备用它们做什么、会消耗青虎积分,征求**一次**同意,然后结束本轮。不要逐个询问把对话拖长。
- - 用户消息里 **@ 了某个工具的中文名**(如「@商品关键词搜索 找 5 款连衣裙」),@ 本身就是授权,直接调用,不要再问一遍。
+ - **本会话首次调用工具前**:一次性列清本次要用的**全部**工具,说明准备用它们做什么、会消耗青虎积分,征求**一次**同意,然后结束本轮。不要逐个询问把对话拖长。
- 用户明确同意后,这些工具在**本会话内持续有效**,不再重复询问;新会话需要重新征求。
- 用户拒绝、只授权其中一部分或答非所问时,**未获同意的工具一律不调用**。
- - **同一轮回复内付费工具最多调 10 次**。达到上限就用已有数据作答,还需要更多数据时先说明还差什么、要再调几次,征得同意后下一轮继续。参数写错先想清楚正确参数再重试,不要连续试错——每次失败同样可能扣费。
+ - **同一轮回复内工具最多调 10 次**。达到上限就用已有数据作答,还需要更多数据时先说明还差什么、要再调几次,征得同意后下一轮继续。参数写错先想清楚正确参数再重试,不要连续试错——每次失败同样可能扣费。
- 同一个数据需求既有免费工具又有付费工具时,优先用免费的。
## 能力边界
- **不做内容生成**:出图、出视频、写文案属于 LinkPix / qhkit 系列技能,遇到「做主图 / 剪视频 / 生成详情页」请转交,不要在本技能里硬做。
- **不做站内广告投放与订单操作**:这些需要店铺后台权限,MCP 工具不覆盖。
- 深度需求转交对应的专项技能(见下),本技能只负责识别意图和串联链路。
- 数据来源是青虎收录的第三方数据,与平台后台可能有口径差异,重要决策提醒用户以后台为准。
## 相关技能
同系列的其他「青虎AI」技能(按需转交,不要在本技能里硬做):
- **亚马逊-爆款趋势挖掘师 / 关键词选品专家 / ASIN解析专家 / 细分市场评估师**:Amazon 的深度选品与分析
- **Ozon / Shopee / TikTok 各专项技能**:对应平台的蓝海、竞店、榜单、达人分析
- **抖音-极速上货助手**:1688 采集 + 抖店一键铺货
- **LinkPix 系列技能**:主图、详情图、短视频等素材生成