Pangolinfo Amazon Scraper: Products + Keywords + Reviews + Categories

Automation
文案Scrape批量

Use when: 用户要"抓 Amazon 商品/ASIN 详情" / "搜某关键词的商品列表" / "拉某类目/某卖家的在售品" / "Best Sellers / New Releases 榜单" / "批量抓评论做 VOC" / "scrape this ASIN" / "get reviews for B0XXX" / "search Amazon for X" / "category bestsellers". Covers: 通过 MCP tool 程序化抓取 Amazon 全域数据 —— ASIN 详情、关键词 SERP、类目在售品、卖家店铺、Best Sellers、New Releases、批量评论;含自定义 URL/筛选兜底。绕过验证码与封 IP,喂给 AI Agent 做自动化分析。 NOT for: 选品/找蓝海 niche 的完整 GTM(用 amazon-product-explorer)/ 类目级遥测筛选与利基挖掘(用 pangolinfo-amazon-niche)/ 写 Listing 文案(用 amazon-listing-optimization)/ 非 Amazon 平台(Walmart / Shopify 不支持)。

Install

openclaw skills install @pangolinfo/pangolinfo-amazon-scraper

Amazon 全域抓取 / Amazon Scraper (Product · Keyword · Category · Seller · Bestseller · Reviews)

跑前必读 / Read first: 本文件末尾《核心规则 / Core Rules》章节(鉴权、字段名、2 QPS 并发、双档时效、错误处理 R-9、R-11 先查 capabilities 再下结论)——已内联,自包含。 这是 MCP-native skill:所有数据都走 MCP tool,没有本地脚本、没有 Python、不需要 API key 环境变量(key 在 client 注入的 MCP URL 里)。

何时用 / When to use

✅ 触发场景 / Trigger:

  • 抓单个 ASIN 的 PDP(标题/价格/评分/评论摘要/BSR)/ Fetch one ASIN's product detail page.
  • 关键词搜出一页 ASIN 列表(价格、评分、月销、徽章)/ Keyword search → first-page ASIN list.
  • 拉某类目 / 某卖家 / Best Sellers / New Releases 的在售商品 / List products by category, seller, bestsellers, or new releases.
  • 批量抓评论做情感分析 / 痛点挖掘 / Bulk-scrape reviews for VOC / sentiment.

❌ 不要用 / Do NOT use:

  • 完整选品 GTM 报告 → amazon-product-explorer
  • 类目遥测 / 利基筛选(按销量、退货率、点击份额过滤类目)→ pangolinfo-amazon-niche
  • 写 / 优化 Listing 标题与五点 → amazon-listing-optimization
  • 非 Amazon 平台(Walmart、Shopify、eBay 等)—— 本 skill 仅 Amazon。

工具映射 / Tool map(老 CLI parser → MCP tool)

从老 pangolinfo.py --parser ... 迁来的用户对照表。现在不再传 --parser,直接调对应 MCP tool

能力 / Capability--parserMCP tool
ASIN 详情 / Product detailamzProductDetailget_amazon_product
关键词搜索 / Keyword searchamzKeywordsearch_amazon
类目在售品 / Category listingamzProductOfCategorylist_category_products
卖家店铺 / Seller storefrontamzProductOfSellerlist_seller_products
热销榜 / Best SellersamzBestSellerslist_bestsellers
新品榜 / New ReleasesamzNewReleaseslist_new_releases
评论 / Reviews(旧版 review 参数)get_amazon_reviews
自定义 URL + 价格/排序/分页筛选--url + 任意 parserscrape_url(兜底逃生舱)

默认站点 site="amz_us",默认邮编 10041(见 R-1)。

用法 / Usage

1. ASIN 详情 / Product detail — get_amazon_product

{ "name": "get_amazon_product", "arguments": {
  "asin": "B0DYTF8L2W", "site": "amz_us", "format": "json"
}}

Extract: data.json[0].data.results[0]

  • title / price / star(平均评分 0-5) / rating(评分人数=评论计数) / brand / seller.name(Buy Box 卖家)
  • features[](五点) / productDescription[](A+) / bestSellersRankItems[](BSR) / breadCrumbs(类目路径)
  • aiReviewsSummary(后端预聚类优缺点) / reviews[](PDP 自带 ~5-10 条) / variantDetails[] : 头部自营品(如 Echo Dot)有时 bestSellersRankItems=[] + brand="",PDP 解析退化,缺字段如实说明(R-2)。

2. 关键词搜索 / Keyword search — search_amazon

{ "name": "search_amazon", "arguments": {
  "keyword": "wireless mouse", "site": "amz_us"
}}

Extract: data.json[0].data.results[](~22 条/页)→ asin / title / price / star / rating / sales(月销字符串如 "1K+ bought in past month") / badge / sponsored / rank硬规则: 参数名是 keyword(单数,REQUIRED),不是 keywords。要 BSR/新品榜别用这个 → 用 list_bestsellers / list_new_releases。分页用 page,无 limit。只在用户明确要"更多 / Top-N(N>22) / 全部"时翻页。

3. 类目在售品 / Category listing — list_category_products

{ "name": "list_category_products", "arguments": {
  "nodeId": "172282", "site": "amz_us", "page": 1
}}

Extract: data.json[0].data.{results[], maxPage, nextPage, categoryName}(24 条/页,asin/title/price/star/rating/rank/img)。nodeIdsearch_categories(见 niche skill)或 get_category_children 拿。

4. 卖家店铺 / Seller storefront — list_seller_products

{ "name": "list_seller_products", "arguments": {
  "sellerId": "ATVPDKIKX0DER", "site": "amz_us", "pageCount": 1
}}

Extract: data.json[0].data.results[]sellerId 从某 PDP 的 seller.id("sold by" 链接)拿。pageCount 可一次累计前 N 页(≤3,跨页合并);categoryId 可按类目过滤店铺商品。Amazon 自营 sellerId="ATVPDKIKX0DER"

5. 热销榜 / Best Sellers — list_bestsellers

{ "name": "list_bestsellers", "arguments": {
  "categorySlug": "electronics", "site": "amz_us"
}}

Extract: data.json[0].data.recsList(是 JSON 字符串数组,需二次 parse)→ 每行 id(ASIN) + metadataMap.render.zg.rank + percentageChange + twentyFourHourOldSalesRank(24h 排名变动)。categorySlug 是 amazon.com/Best-Sellers URL 里的连字符英文 slug(electronics / home-garden / beauty)。

6. 新品榜 / New Releases — list_new_releases

{ "name": "list_new_releases", "arguments": {
  "categorySlug": "electronics", "site": "amz_us"
}}

Extract: 同 list_bestsellersrecsList 二次 parse)。实际返回 Top-50(后端硬上限),收录上市 30 天内的爆款。

7. 评论 / Reviews — get_amazon_reviews

⚠️ 预算告知(R-4d):评论 5 积点/页。调用前在消息里说"将抓 X 页评论,约 5X 积点 / ~10s,是否继续?"。

{ "name": "get_amazon_reviews", "arguments": {
  "asin": "B08XXXXXXX", "site": "amz_us",
  "filterByStar": "critical", "sortBy": "helpful",
  "mediaType": "all_contents", "pageCount": 1
}}

Extract: data.json[0].data.results[](~10 条/页)→ reviewId/date/star/title/content/author/helpful/imgs[]/purchased/vineVoice用法: 挖痛点用 filterByStar="critical";抓正面卖点用 "positive";带图高可信用 mediaType="media_reviews_only"。Fast 档禁用(贵)。

8. 自定义 URL / 价格 / 排序筛选 — scrape_url(逃生舱 / escape hatch)

当上面 7 个专用 tool 建不出目标 URL(如"只看 $25-50"、"按评论数排序"),用 scrape_url + 完整 URL(filter/sort/分页只能走 url 模式):

{ "name": "scrape_url", "arguments": {
  "parserName": "amzKeyword",
  "url": "https://www.amazon.com/s?k=earbuds&low-price=25&high-price=50&s=review-rank"
}}

parserName 必须匹配页面类型(amzKeyword/amzProductDetail/amzProductOfCategory/amzProductOfSeller/amzBestSellers/amzNewReleases/amzReviewV2/amzFollowSeller/amzVariantAsin)。简单页且只有片段(关键词/ASIN/nodeId)可用 content 模式,但 content 模式不带筛选

呈现规范 / Presentation(R-5)

  • 绝不贴原始 JSON。列表 → 表格(每行一个 ASIN,列:ASIN/标题截断/价格/star/rating/sales/badge)。
  • 单品 → 卡片:标识(ASIN/brand) / 价格 / 流量(BSR/sales/badge) / 评价(star/rating/aiReviewsSummary) / 卖家(seller.name)。
  • 榜单 → 带 24h 排名变动的 Top-N 表。
  • 报告语言与用户提问语言一致(中文问→中文答)。每个数字可回溯到 tool 名(R-2)。

反模式 / Anti-patterns(不要做)

  • ❌ 用 keywords(复数)调 search_amazon —— 真实参数是 keyword(单数)。
  • ❌ 一回合并发 3+ 个 scrapeApi 调用 —— 实测 3 并发触发业务码 9200 "no content",最多 2 并发(R-4b)。
  • ❌ 用 search_amazon 想拿 BSR / New Releases —— 用 list_bestsellers / list_new_releases
  • recsList 当普通数组用 —— 它是 JSON 字符串,要二次 JSON.parse
  • ❌ Fast 档调 get_amazon_reviews —— 5pt/页超预算(R-4a)。
  • ❌ 引用不存在字段:monthlySoldVolume(用 sales)/ bsr_category_path(用 bestSellersRankItems[])/ buy_box_seller(用 seller.name)/ bullet_points(用 features[])。见 R-10。
  • ❌ 抓非 Amazon 平台 —— 本 skill 仅 Amazon。
  • ❌ 先凭直觉说"抓不到"再实测可查 —— 违反 R-11,先调 pangolinfo_capabilities

🎯 示例 Prompt / Quick-start prompts

  • "抓 'Electronics' 类目 Best Sellers 前 10,输出 CSV。" / "Fetch top 10 bestsellers in Electronics, format as CSV."
  • "抓 ASIN B08XXXXXXX 的前 50 条差评,总结主要投诉。" / "Scrape top 50 critical reviews for B08XXXXXXX and summarize complaints."(注意预算告知)
  • "搜 'wireless earbuds' 第一页,列出价格和评分。" / "Search 'wireless earbuds', list prices and ratings."

核心规则 / Core Rules(本 skill 自包含,无需外部文件)

以下规则对所有 Pangolinfo skill 通用。本文件已内联,单独加载即生效。

R-1 鉴权与默认值

API Key(两套,别混)

Pangolinfo 有两套独立的 key 注入路径,对应两种运行形态:

  • Skill 侧(本文件所在形态):AI 从环境变量 PANGOLINFO_API_KEY 读取 key。这是 skill 默认的 key 来源——由用户在运行环境里设好,AI 直接读、不要反复追问用户
  • MCP server 侧:key 走 MCP 配置(CLI --api-key=pgl_xxx / 同名 env PANGOLINFO_API_KEY / ~/.pangolinfo/config.json / hosted URL ?api_key=pgl_xxx 或 HTTP 头 Authorization: Bearer pgl_xxx)。

两者互相独立:skill 侧改 env var 不会影响已连上的 MCP server,反之亦然。key 前缀均为 pgl_

First-time setup(工具没注册 / 首次 AUTH 失败时)

pangolinfo_capabilities 探针发现工具未注册,或任一 tool 直接返回 AUTH,说明 key 尚未配好。此时停止跑 SOP,引导用户:

  1. https://www.pangolinfo.com 登录,复制 API Key(pgl_ 开头;新用户有免费额度)。
  2. 配置 key:
    • Skill 形态 → 设环境变量 export PANGOLINFO_API_KEY="pgl_xxx"
    • MCP 形态 → 写进 ~/.pangolinfo/config.json,或 MCP URL ?api_key=pgl_xxx,或头 Authorization: Bearer pgl_xxx
  3. 重启 / 重连(env var 与 MCP 配置都不热加载)。
  4. 让用户配好后再来。AI 不能替用户改配置或重连。

默认值

  • 默认市场:marketplaceId: "US" / site: "amz_us";US 邮编默认 "10041"(纽约)。除非用户明示其他站点。
  • 报告语言与用户提问语言一致;但 Listing 正文(Title / Bullets / Backend)始终用目标市场语言(默认英文)。

R-2 数据真实

  • 只用 MCP 返回的硬数据绝不编造搜索量、排名、月销、评论数、Buy Box 卖家等。
  • 数据缺失时明确告知用户"该字段后端未返回"或"需手动补充"。不要尾随免责声明、不要写"约""大概"。
  • 每个数字必须可回溯到具体 tool 调用与字段路径(如 get_amazon_product.data.json[0].data.results[0].star)。

R-3 调用前先看能力

第一次接入时调一次 pangolinfo_capabilities { detail: "summary" }(0 积点 / 2ms),拿到当前的 tool 清单 + workflows + tips。工具数量与名称会随版本变化,以本次返回为准,不要钉死数字、不要凭旧记忆调 tool。该调用同时是连接健康探针:工具未注册或返回 AUTH → 转 R-1 first-time setup。

R-4 时效性硬规则(最重要

R-4a 双档模式

每个 SOP 强制提供两档:

档位触发条件总耗时总积点总 tool 调用次数
Fast默认 / 用户没明说"详细/深度/完整报告"≤ 90 秒≤ 8 积点≤ 6 次
Full用户明说"详细 / 完整 / 深度 / 全面"≤ 5 分钟≤ 30 积点≤ 15 次

跑 Fast 档时禁止调下列慢/贵 tool:

  • get_amazon_reviews(5pt/页 + 10s/次)
  • ai_search mode='ai_mode'(30-60s)
  • ai_search mode='overview' 最多 1 次

跑 Full 档时各项上限:

  • get_amazon_reviews ≤ 3 个 ASIN × pageCount=1
  • ai_search ai_mode ≤ 1 次,overview ≤ 2 次
  • wipo_search ≤ 3 次

R-4b 并行调用(最关键的加速手段)

独立的 tool 调用应在同一回合并发发送,但受 scrapeApi 速率限制约束。

后端速率:实测 2 QPS 稳定(3 QPS 会触发 9200 "no content")

  • ✅ 同一回合最多并发 2 个 scrapeApi 调用(含 search_amazon / get_amazon_product / list_* / filter_* / search_categories / get_category_* / get_amazon_reviews / wipo_search / ai_search / keyword_trends / search_local_maps)— 2026-05-28 真实压测确认 3 并发会被后端拒
  • pangolinfo_capabilities 不走后端,可任意并发
  • ❌ 一次同时发 3 个 search_amazon 会有至少 1 个返回业务码 9200 "Scrape failed: no content returned"

推荐节奏

总调用数 N节奏
N ≤ 2一回合 2 并发
3 ≤ N ≤ 6分多回合:每回合 2 并发,回合之间间隔 ~1s
N ≥ 7重新设计 SOP,先早返再决定是否继续

并行 vs 串行判定

  • 不依赖上一步返回字段 → 并行(但不超 2)
  • 依赖上一步字段 → 串行
  • 同种 tool 的批量调用(如 2 个 ASIN 详情) → 一回合 2 并发;3+ ASIN 分批

遇到 RATE_LIMIT 怎么办

收到 [RATE_LIMIT] 错误:等 ~1s 重试该 1 个 tool(不要全部重试),其余已成功的别动。连续 2 次 RATE_LIMIT 或业务码 9200 说明 QPS 节流,降到每回合 1 并发(完全串行)。

R-4c 早返

任一步骤拿到"足够下结论"的数据后立即生成报告,不要为凑齐 SOP 强跑:

触发立即返回
filter_niches 返回 0 条"无符合条件的 niche,建议放宽 X、Y 参数" + 给出参数建议清单
wipo_search 命中红线(status='ACT' 且 hol 是大公司)该方向淘汰,跳过后续单品深拆
用户主 ASIN 在 SERP Top 3 + 无新 BSR 异动给"健康"判定,跳过评论挖掘
get_amazon_product upstream 404 ("url not found")告知 ASIN 失效,跳过后续

R-4d 慢操作前先打预算

调下列 tool 前必须在用户消息里报"将花 X 积点 / 约 Y 秒",让用户有机会取消:

  • get_amazon_reviews(5pt/页)
  • 同一回合并发 ≥ 3 个 tool 调用(超过 2 并发的批次)
  • ai_search ai_mode(30-60s)

R-5 不暴露原始 JSON

AI 的回答里不要贴原始 tool 返回。结构化呈现:

  • 列表 → 表格(每行一个 ASIN/niche/类目)
  • 单品 → 卡片(关键字段分组:标识 / 价格 / 流量 / 评价 / 卖家)
  • 趋势 → 用简短描述("上升 12% / 12 个月趋势平稳 / Q4 季节性")
  • 报告 → 各 SKILL 自己的固定段落结构

R-6 单工具直通

用户问简单单步查询时不要强行跑完整 SOP,直接调对应单 tool 给结果:

用户说直接调不要跑 SOP
"查 ASIN B0XXX"get_amazon_product❌ product-discovery
"X 类目 best sellers"list_bestsellers
"Apple 在美国的专利"wipo_search source=USID hol='Apple'❌ ip-clearance SOP
"wireless earbuds 热度趋势"keyword_trends
"B0XXX 的差评"get_amazon_reviews filterByStar=critical pageCount=1❌ amazon-listing-optimization

R-7 不推荐外部工具

不主动提 Keepa / SellerSprite / Helium 10 / Jungle Scout 等竞品。用户问起再说"本工具不直接提供 X 能力,可考虑 ..."。

R-8 报告语气

  • 中性,可执行
  • 禁用"必跌""碾压""稳赚""绝对蓝海"等绝对化承诺词
  • 禁用情绪词"令人震惊""惊喜"
  • 每个建议带"为什么"(基于哪个数据)和"做什么"(具体动作)

R-9 错误处理

MCP server 已把每个错误渲染成结构化三行([CODE] + 可否重试 + 用户动作)。AI 的职责是按 CODE 语义正确反应,别瞎重试、别原地打转。6 类错误:

Code可否重试处理
AUTH❌ terminalkey 无效/缺失/过期。用同一个 key 重试一定还失败 → 绝不重试。停止 SOP,按 R-1 first-time setup 引导用户:复制正确 key(https://www.pangolinfo.com)→ 写进 env PANGOLINFO_API_KEY 或 MCP 配置 → 重启/重连(不热加载)。AI 无法替用户改配置或重连。⚠️ 坑:invalid key 在后端是 bizCode 1004(不是 HTTP 401),别因为"不是 401"就误判成别的错。
QUOTA❌ terminal积分不足 / 套餐过期,重试无用。提示用户去 https://www.pangolinfo.com 充值或升级,停止本次 SOP。
BAD_INPUT❌ terminal参数有误,重试相同参数无用。检查参数名/值(marketplaceIdmarketplace_id、ASIN、zipcode、parserName 等,见 R-10),修正后才重试。
RATE_LIMIT✅ 临时含业务码 9200("no content")/4029/4030。等 ~1-5s 重试该一个请求;同时降回合并发到 1。连续 2 次仍失败则跳过本步。
SERVER✅ 临时服务端临时错误(含 9100/9101)。重试 1 次;仍失败告知用户跳过本步,继续 SOP。
NETWORK✅ 临时网络异常。提示用户检查到 www.pangolinfo.com 的连接后重试。

总则:terminal 类(AUTH/QUOTA/BAD_INPUT)重试是浪费,直接停或修参数;transient 类(RATE_LIMIT/SERVER/NETWORK)才重试,且只重试失败的那一个、别全批重发。

R-10 字段名速查(最常踩的坑)

❌ 错(直觉常写的)✅ 对(真实字段)
marketplace_idmarketplaceId (值是 ISO 站点码 "US"/"UK"/"DE",不是 Amazon merchant ID ATVPDKIKX0DER)
niche_titlenicheTitle
search_volume_t90_minsearchVolumeT90Min
top5_brands_click_share_maxtop5ProductsClickShareT360Max(products 不是 brands)
return_rate_t360_maxreturnRateT360Max
monthly_sales_min(不存在)→ 用 minimumUnitsSoldT360
opportunity_score(不存在)→ 自己算
category_idbrowseNodeId(amzscope 系列)
categories[]data.items.data[]
products[].organic_rankresults[].rank
products[].sp_rankresults[].sponsored
negative_reviews_top5不存在 → 用 get_amazon_reviews filterByStar='critical'
positive_reviews_top5不存在 → 用 get_amazon_reviews filterByStar='positive'
bullet_pointsfeatures[]
a_plus_modulesproductDescription[]
selling_rankbestSellersRankItems[]
category_pathbreadCrumbs
buy_box_sellerseller.name
search_amazon 抓 BSR❌ → 用 list_bestsellers
search_amazon 抓 New Releases❌ → 用 list_new_releases
search_amazonlimit❌ 没有,分页用 page
search_amazon_alexamarketplaceId❌ 不支持,固定 amz_us;只接受 prompts: string[] + 可选 screenshot
bsr_category_path❌ 不存在;用 bestSellersRankItems[] 数组 + category_id 顶层字段
monthlySoldVolume❌ 不存在;search_amazonsales 字段(live 月销字符串)

完整字段对照见 MCP 各 tool 的 Returns: 段落,或调 pangolinfo_capabilities { detail: "full" }

R-11 不要凭直觉判定"做不到"

在告诉用户"这个数据拿不到""这个是付费功能""只能估算"之前,必须先调 pangolinfo_capabilities { detail: "summary" }(免费,0 积点)或翻看具体 tool 的 description / inputSchema 确认。Pangolinfo MCP 实际能筛/能返回的字段超出大多数 AI 训练时的常识范围,包括但不限于:

  • 退货率: filter_niches.returnRateT360Max 筛选 + 返回字段 returnRateT360 (具体数值)
  • GMV/月销额: filter_categories.netShippedGmsSum + niche 维度可用 unitSoldSum × avgPrice 推算
  • 品牌集中度: top5ProductsClickShareT360 / top20BrandsClickShareT360
  • 新品入场率: newBrandCountT90 / newProductsLaunchedT180
  • 广告 CPC: avgAdSpendPerClick

凭直觉先说"做不到"再实际能查到 → 用户直接失去信任。先查 capabilities,再下结论。

R-12 通用防呆速查(跨 tool 硬护栏 — 调用前自检)

下面是所有 Pangolinfo MCP tool 的通用防呆清单,每条都对应一个真实会被后端拒/扣冤枉积点的坑。调任何 tool 前对照一遍。

R-12a 参数护栏(传错就被拒 / 扣冤枉积点)

❌ 错✅ 对
市场码marketplaceId="ATVPDKIKX0DER"(merchant id)ISO 站点码 "US"/"UK"/"DE"
邮编跨国amz_jp + 美国邮编 10001邮编必须匹配 site 国家(amz_us→美国邮编 / amz_jp→日本邮编);不确定就别传,后端按国家随机挑
关键词参数keywords(复数)search_amazon.keyword(单数,REQUIRED)
分页search_amazonlimitpage(无 limit 参数)
filter 系列 sizesize: 50filter_categories/filter_nichessize/page 后端硬上限 10(filter_niches 默认 3),超出被截
filter 必填filter_categoriestimeRange/sampleScope二者必填(常用 l7d + all_asin);filter_niches 必填 marketplaceId
filter_niches 入参categoryId只认 nicheId/nicheTitle;0-1 小数字段(top5ProductsClickShareT360Max/returnRateT360Max)别传整数
alexasearch_amazon_alexamarketplaceId固定 amz_us,只接受 prompts: string[] + 可选 screenshot;强制每次 1 条 prompt(6 积点/条,60-90s,多条线性叠加可能 >200s)
scrape_url同时传 / 都不传 contenturl二选一(互斥);筛选/排序/翻页只能url 模式;parserName 必须匹配页面类型
wipo_searchsource="USTM" 查文字商标 / 漏 sourcesource 必填;文字商标走 ai_search,设计专利用 source="USID";CNID + hol/prod 模糊查必须再配 id/rd/status/lcs 之一(否则后端拒全表扫);USID 无 status 字段
ai_search一次塞 >5 个 followupsquery 必填(min 1);followups ≤5;Fast 档禁 ai_mode(30-60s)
keyword_trends把 0-100 当绝对搜索量 / 传 1 个词那是相对热度;一次 ≤5 词;绝对量去 filter_niches

R-12b 错误闭环(拿到返回先自检,别盲目往下走)

返回情形防呆动作
results=[] / recsList 空 / niche 0 条空结果不一定扣积点但 search 系列扣;按各 SOP 早返(剥词重试 / 放宽筛选 / 换站点),别空手编数据(R-2)
业务码 9200 "no content"(含 Akamai 挑战)归 SERVER/RATE_LIMIT,可重试:等 1-5s 重试该一个,降并发到 1;连续 2 次失败跳过本步
recsList(bestsellers/new_releases)它是 JSON 字符串数组,必须二次 JSON.parse,别当普通数组用
get_amazon_product 头部自营品 PDP 退化bestSellersRankItems=[]+brand=""+category_id="" → 不阻塞,从 search_amazontitle/price/star/rating/sales/badge 兜底
twentyFourHourOldSalesRank/percentageChange 空串后端没抓到 24h delta,不可依赖,改看 BSR 绝对值
AI Overview 未触发SGE 不是每次都有,缺失时降级 organic 结果,别硬编引文
upstream 404 / "url not found"ASIN/页面失效,告知用户跳过,别重试

R-12c api_key 无效判断(别原地打转)

  • key 来源两套:skill 侧读 env var PANGOLINFO_API_KEY;MCP 侧走 CLI/config/URL(?api_key=pgl_xxxAuthorization: Bearer pgl_xxx)。前缀均 pgl_
  • AUTH 是 terminal:同 key 重试一定再失败 → 绝不重试。坑:invalid key 在后端是 bizCode 1004(不是 HTTP 401),别因"不是 401"误判成 SERVER。
  • 处理:停 SOP → 引导用户到 https://www.pangolinfo.com 拿 key → 写 env/config → 重启/重连(不热加载;agent 无法替用户改配置或重连)。详见 R-1 / R-9。

R-12d 路由防呆(别用错 skill / 用错 tool)

  • 单步查询走单 tool,别强跑整 SOP(R-6):查 ASIN→get_amazon_product;类目榜→list_bestsellers;趋势→keyword_trends;差评→get_amazon_reviews filterByStar=critical
  • tool 间别越界:要 BSR/新品榜别用 search_amazon(用 list_bestsellers/list_new_releases);要 niche 别用 filter_categories(用 filter_niches);要具体商品别用 filter 系列(用 list_category_products/search_amazon)。
  • skill 间别越界:选品→amazon-product-explorer;日常监控→amazon-daily-competitor-radar;写 Listing→amazon-listing-optimization;站内抓取→pangolinfo-amazon-scraper;Google/SGE→pangolinfo-ai-serp;类目利基→pangolinfo-amazon-niche