本文へ移動
cccskills
無料GitHub で公開

space-xhs-hotspot

小红书热点搜集与选题判断。按关键词/赛道拉取近期高互动笔记,输出热点表格、趋势判断和可直接开写的选题建议。当用户说"小红书热点""小红书最近火什么""查一下 XX 赛道的爆款""小红书选题""找小红书素材""这个词在小红书热不热""小红书热榜/热门笔记/爆款笔记""帮我看看小红书数据"时触发。

也适用于用户报出一个赛道词(如"减脂餐""通勤穿搭""AI 工具")并问"能不能写"的场景。多数据源自动降级:红狐 API / socialdatax CLI / 怪壳 CLI,均未配置时走 WebSearch 手动兜底。

インストール方法を見る

含まれるファイル(7)

  • SKILL.md20.9 KB
  • references/data_sources.md9.0 KB
  • references/pattern_extraction.md5.2 KB
  • references/xhs_hot_article_format.md4.5 KB
  • references/xhs_sectors.json7.8 KB
  • scripts/compare_sets.py14.1 KB
  • scripts/fetch_xhs_hot_articles.py22.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

小红书热点搜集(space-xhs-hotspot)

给创作者用的选题雷达。目标不是把数据倒出来,而是回答三个问题:这个赛道现在有没有流量?流量集中在哪几种内容形态上?我下一篇该写什么。

产出链路:本 skill 出选题 → space-xhs-title 起标题 → space-xhs-writer 写正文。所以最后一段必须是可以直接粘给下游的选题卡,不是一句"建议多观察"。


数据说明(展示任何数据之前必须先说明,逐字保留口径)

  • 收录门槛:红狐库只收录互动数 1000+ 的笔记。搜不到 ≠ 这个方向没人写,只等于这个方向没出过 1000+ 互动的爆款——这本身就是一条判断(小众/低天花板 or 蓝海)。
  • 更新节奏:每日早上 7 点更新昨日数据。当天数据永远查不到,用户说"今天"时按"昨天"处理并说明。
  • 数据快照:互动数是入库时刻的快照,不是实时值。入库后还会继续涨——所以"3 天前的 8000 互动"实际热度可能高于"昨天的 1.2w"。
  • 时间窗:库内只有昨天到 30 天前的数据。超过 30 天的请求要明确告知并降级到最近可用范围。
  • 链接口径:note_url / noteLink 必须原样输出,包含 xsec_token 查询参数。禁止截断、脱敏、重建,禁止只拿 note_id 自己拼 URL——拼出来的链接打不开。note_id 是 24 位小写十六进制,必须完整复制。

第 0 步:数据源探测与降级(每次执行前先做,不要假设 Key 存在)

env | grep -E '^(REDFOX_API_KEY|SOCIALDATAX_API_KEY|GUAIKEI_API_TOKEN)=' | sed 's/=.*/=<set>/'

按下表从上往下取第一条可用路线;某条路线报错(401/余额不足/网络失败)时继续往下降级,并在输出里注明"本次数据来自 X 路线"。

优先级环境变量路线强项短板
1REDFOX_API_KEY红狐 API(本 skill 自带脚本)唯一有热度/相关性/时效三维评分和 relatedSearches 拓词;天然只含 1000+ 爆款,信噪比最高只有近 30 天;T+1 更新;无评论
2SOCIALDATAX_API_KEYsocialdatax CLI(npx,见 xhs-content-research)近实时;有 --since-days、多种排序、图文/视频筛选无评分,需自己按互动排序;按量计费
3GUAIKEI_API_TOKEN怪壳 Node CLI(见 xiaohongshu-content-tools)能拿笔记详情 + 评论区 + 博主全部作品,做深挖唯一选择需 node,脚本在另一 skill 目录下
兜底无WebSearch 手动零配置无互动数,只能看到标题和大致方向

具体命令、参数、报错处理见 references/data_sources.md(执行前读它)。

三个 Key 都没有时,不要静默失败,按此模板回复:

未检测到小红书数据源,本次用公开搜索兜底(拿不到互动数,只能看内容方向)。

想要带互动数据的完整热点分析,配置任一即可(推荐第 1 个):
  export REDFOX_API_KEY=...        # https://redfox.hk/settings/api-keys  近30天爆款库,带热度评分
  export SOCIALDATAX_API_KEY=...   # https://socialdatax.com/ai          近实时搜索
  export GUAIKEI_API_TOKEN=...     # https://www.guaikei.com             详情+评论深挖
写进 ~/.zshrc 后重开终端即可。

然后继续用 WebSearch 兜底跑完流程(site:xiaohongshu.com <关键词> + 小红书热点类聚合站),只是把"互动数"列换成"来源"列,并在结论里标注"未经互动数据验证"。不要因为没 Key 就停在提示上。


第 1 步:把用户的话变成能查的词

核心判断:泛化词 vs 细分词。 拿泛化词去查,返回的是一堆彼此无关的爆款,看不出任何趋势;拿过细的词去查,返回 0 条。

类型特征例动作
泛化词上位概念、行业分类,无场景/人群/风格修饰美妆、穿搭、职场、AI、母婴先拓 6~10 个细分词,同时开跑,用结果对比出热度分布
细分词有一层修饰(场景/人群/风格/意图)通勤穿搭、减脂早餐、小个子显高、AI 做 PPT直接查,这是甜点区
过细词两层以上修饰或长尾组合微胖小个子秋冬通勤穿搭砍到一层修饰再查,同时保留原词做人工筛

与原版的差别:识别到泛化词时不要停下来等用户回复"拓展/不拓展"。直接说明"「穿搭」太宽,我按 8 个细分方向并行查了",然后一次跑完(红狐支持逗号分隔多词)。用户想改方向,看到结果再改效率更高。只有当拓展词方向存在多种明显不同的商业意图(如"保险"→ 买保险 / 卖保险 / 保险从业)时,才值得先问一句。

拓展词生成原则:

  • 大小适中——"中产穿搭"这种自造词查不到数据,"老钱风""通勤""松弛感"这种平台上真实存在的说法才查得到。
  • 覆盖四个维度,各 2~3 个:趋势词(老钱风、多巴胺、松弛感)、人群词(学生党、小个子、宝妈、打工人)、场景词(通勤、约会、露营、租房)、意图词(平替、避雷、测评、清单)。
  • 优先用用户自述里出现过的词。用户说"我平时写小众电影、书评、港台文化",就该查「小众电影/港台电影/书单推荐」,而不是查「电影」。

赛道词库:references/xhs_sectors.json

不要凭空想拓展词——先查词库。它按小红书官方 24 个一级赛道组织,每个赛道给 trend / audience / scene / intent 四个维度的可查询细分词,正好对应上面四个维度。

什么时候读它(三种场景,其余场景别浪费上下文):

场景用法
用户给的是泛化词("穿搭""职场""AI")找到对应一级赛道,四个维度各取 2~3 个凑 6~10 个词并行查,这就是赛道下切
用户给的是细分词("通勤穿搭")直接查该词,同时从同赛道同维度取 2~3 个邻近词做横向对比(见第 4 步),用来回答"这个词在赛道里算热还是算冷"
用户说不清方向、只说"我该写什么"先问定位,再从其人设匹配的 1~2 个赛道取词

词库是起点不是终点:跑完第一轮后,必须拿接口返回的 relatedSearches(红狐)或本轮高频标题词(其他路线)二次拓词——那才是平台当下的真实说法。词库里的趋势词会过期,查出来 0 条就说明它已经凉了,这本身是条结论,别硬凑。

赛道找不到对应项(如"跨境电商""考编")时,就近映射到最相关的一级赛道(互联网 / 教育),并说明是近似映射,不要为了对齐词库改写用户的方向。


第 2 步:查询与时间窗策略

默认窗口 7 天(startDate = 今天 - 7)。换算:今天→昨天,最近/近一周→7 天,近 N 天→今天-N,最多 30 天。

数据不足时只扩时间,不换词(换词会把两个不同赛道的数据混在一起,趋势判断就废了):

1 天 → 3 天 → 7 天 → 30 天

每次扩窗都要告知:"「XX」近 7 天只有 3 条 1000+ 笔记,已扩到近 30 天。"扩到 30 天仍 < 5 条,就停手,直接给结论:这是一个低产出赛道——要么受众太窄,要么平台不给这个方向流量,要么就是没人写的蓝海。这三种可能要在结论里替用户区分(看 relatedSearches 有没有词、看邻近词的数据量)。


第 3 步:读数据,做趋势判断(本 skill 的核心,不要跳过)

拿到笔记列表后,逐条不是重点,模式才是。按下面六个切口过一遍,前五个是赛道现状,第六个是爆款共性:

1. 形态分布

把 top 20 按内容形态归类,数出占比:清单/盘点|教程步骤|测评对比|个人经历叙事|避雷吐槽|数据结论|资源合集。占比最高的形态 = 平台当前在这个赛道给流量的形态,也是最安全的模仿对象。占比为 0 但用户擅长的形态 = 差异化机会(要标风险)。

2. 标题钩子分布

统计 top 20 标题里出现的钩子:数字("5 个""3 天")、人群标签("打工人""学生党")、痛点原话(带引号的吐槽)、反差("没想到""原来")、身份背书("三甲医生""HR")、时效("2026""最新")。哪种钩子重复出现最多,就是这个赛道读者当下吃的那一套——直接传给 space-xhs-title。

3. 账号量级

看 authorFans。如果 top 榜里有明显的小号(<1 万粉)跑出 1w+ 互动,说明这个赛道流量吃内容不吃账号,新号可进;如果全是 50 万+ 大号霸榜,说明是存量竞争,新号进去大概率沉。这条对用户的决策价值最高,务必写出来。

4. 时间分布

爆款集中在最近 3 天 = 上升期热点,抓紧写;均匀分散在 30 天 = 常青需求,什么时候写都行;集中在 3 周前后没有新的 = 热点已过,别追。

5. 互动结构

比较 likedCount / collectedCount / commentsCount:

  • 收藏 > 点赞 → 工具型/资料型内容,读者要留着用。适合做清单、模板、合集。
  • 评论 > 收藏且评论占比高 → 话题型/争议型,读者要表态。适合做观点、提问、对比。
  • 点赞压倒性高 → 情绪型/审美型,读者只是路过认同。转化弱,涨粉一般。

账号量级这一条只有红狐路线有 authorFans。怪壳路线实测拿不到粉丝数,此时写"粉丝字段缺失,本路线无法判断账号量级",不要估算,其余四个切口照常给。

6. 爆款共性提取(样本 ≥ 8 条时必做)

上面五个切口回答"这个赛道现在是什么样",共性提取回答**"这批爆款为什么爆,哪些我能抄,哪些抄不了"**——后者才是用户真正要的东西。

执行前读 references/pattern_extraction.md,按它做三件事:

  1. 逐条打两个标签:形态标签(清单/教程/测评/经历/避雷/数据/资源/身份背书)+ 爆款机制标签(新鲜感/结果感/场景感/身份感/情绪感/反差感/收藏动机/争议感),一条笔记取最强的 1~2 个机制。
  2. 数成分布:形态 X/20、机制 X/20、标题高频词 top 10~14。≥40% 才叫共性,20%40% 叫次主流,<20% 且只有 12 条支撑的只能叫个例,不许包装成趋势。
  3. 拆成三张清单:可复用 / 不可复用(身份壁垒、资源壁垒、账号壁垒)/ 空位。不可复用清单不能省——只给"可以抄的"等于把用户往坑里带。

样本 < 8 条时不做占比,只做定性描述,并写明"样本 N 条,结论仅供参考"。


第 4 步:对比(用户问"变没变""哪个更值得写"时做,否则跳过)

单次快照只能说"现在什么样",说不了"在变好还是变差""A 和 B 哪个能进"。这两类问题要靠两次以上查询的对比。

触发条件:用户问"最近还火吗""比上个月怎么样""哪个赛道更值得写""我该选 A 还是 B",或第 1 步做了赛道下切拿到多组数据。

做法:把每次查询的结果 JSON 各自落盘,再用 scripts/compare_sets.py 归一对齐(离线脚本,不联网、不需要 Key)。

S=~/.claude/skills/space-xhs-hotspot/scripts

# 多赛道横向:同一时间窗,谁的量级更高、形态和钩子有什么差别
python3 $S/compare_sets.py 通勤穿搭=a.json 老钱风=b.json 学生党穿搭=c.json --top 20

# 单赛道纵向:同一个词,本周 vs 上月
python3 $S/compare_sets.py 本周=this.json 上月=last.json --label-kind time

# 要结构化数据自己再加工时
python3 $S/compare_sets.py a.json b.json --json
  • 输入是已落盘的 JSON,两种格式自动识别:红狐脚本输出(items[])、怪壳 search-cli.js 的结果文件(results[])。怪壳 stdout 混着日志行不能直接解析,用它自动落盘的 xiaohongshu-content-tools/logs/*_search.json。
  • 标签就是查询词,脚本会用它剔除高频词里的查询词本身(不然 top 词永远是查询词自己)。
  • 输出:对比总表(样本/互动中位数/互动最高/藏赞比/评赞比/小号占比/主形态/主钩子)+ 每组的形态、钩子、标题高频词、最高互动笔记 + 词层交集与独有词。
  • 样本 < 8 条的组,脚本会自己打 ⚠️,转述时要带上这句警告。

怎么读对比结果:

观察结论
同词跨时间:互动中位数明显下滑、高频词换了一批热点在退潮,别追旧说法,跟着新高频词走
同词跨时间:中位数稳定、高频词几乎不变常青需求,什么时候写都行,拼的是执行
跨赛道:A 的中位数高但主形态是"身份背书"天花板高但你进不去,要在结论里说破
跨赛道:B 中位数中等但小号占比高、主形态是清单这才是新号的入口
词层"共有高频词"跨赛道通用钩子,可复用性最强
词层"独有词"该赛道的专属搜索入口,交给 space-xhs-title

红线:不同数据源的数字不能直接比大小(红狐是 1000+ 收录库的入库快照,怪壳是实时抓取的全量搜索)。跨路线对比时只比结构性指标(形态占比、藏赞比、高频词),并注明"两组数据来自不同路线,绝对量级不可比"。


输出格式

① 数据说明(一行)

数据源:红狐 API|收录门槛 互动 1000+|每日 7 点更新昨日数据|互动数为入库快照 📅 查询范围:X月X日 - X月X日|关键词:A、B、C

② 热点笔记表格

有关键词(红狐路线,带评分):

#笔记标题作者(粉丝)互动赞/藏/评发布相关性热度时效总分

无关键词全站热门 / 非红狐路线(无评分字段,按互动降序):

#笔记标题作者(粉丝)互动赞/藏/评发布
  • 标题和作者都做成 Markdown 链接。笔记链接原样使用返回值(含 xsec_token),作者链接 https://www.xiaohongshu.com/user/profile/{authorId}。
  • 默认展示前 10 条,多于 10 条时在表下写"共 X 条,已展示前 10,要全部就说一声"——说明即可,不要停下来等回复,直接继续往下做趋势判断。
  • 多关键词并行查询时,按关键词分组小标题,每组展示 top 5。

③ 赛道体检(对应第 3 步前五个切口)

形态分布:清单 45% | 测评 25% | 经历叙事 20% | 其他 10%
钩子分布:数字 12/20,人群标签 9/20,痛点原话 5/20
账号量级:top10 里 4 个 <1 万粉 → 内容驱动,新号可进
时间分布:8/10 集中在近 5 天 → 上升期
互动结构:收藏平均高于点赞 1.3 倍 → 工具型需求为主

每条后面跟一句话解读,不要只丢数字。

④ 爆款共性(样本 ≥ 8 条时必给,格式见 references/pattern_extraction.md)

共性:收藏动机 12/20(60%,主流)|身份感 9/20(45%,主流)|反差感 3/20(个例)
可复用:清单式收纳合集 —— 对标《XXX》1.2w(链接)—— 换到你的赛道就是「租房党的 X 件……」
不可复用:top3 有 2 条是三甲医生出镜科普(身份壁垒),你没这个身份照抄说服力归零
空位:教程形态占比 0,但该赛道读者藏赞比 1.3 明显偏工具型 —— 可能是机会,也可能是平台不给这个形态流量,先小成本试
选题公式:收藏动机 + 清单 + 打工人 →「打工人通勤的 5 件平价单品,闭眼买」

⑤ 对比结论(只在做了第 4 步时给)

贴 compare_sets.py 的对比总表,后面跟 2~3 句解读:量级在涨还是在跌、新号能进哪个、高频词换没换。跨路线数据要标注"绝对量级不可比"。

⑥ 拓词与邻近机会

relatedSearches 原样列出,并标注哪几个值得下一轮查(挑与用户人设匹配的),哪几个是无关噪音。非红狐路线用本轮标题高频词代替,并注明来源不同。

⑦ 选题建议(3~5 条,交付重点)

每条按这个卡片给,让用户能整条粘给 space-xhs-title / space-xhs-writer:

【选题 N】一句话选题
  形态:清单 / 教程 / 测评 / 叙事 / 避雷
  依据:对标笔记《XXX》互动 1.2w(链接),同类形态本轮出现 5 次
  钩子方向:数字 + 人群标签(如"打工人的 5 个 XX")
  预期互动结构:偏收藏 → 内容要有可保存的清单/模板
  风险:赛道已被 50w 粉大号占据 / 属于时效热点,7 天后失效

依据必须挂到具体笔记,不能写"因为这个方向很火"。没有对标笔记支撑的选题不要给。选题应当从 ④ 的选题公式长出来,公式和选题要能互相对上。


红线

  • 不编数据。互动数、粉丝数、发布时间一律来自接口返回;WebSearch 兜底时明确写"无互动数据",不要估算。
  • 链接不改写。丢了 xsec_token 的链接等于给了个 404,比不给更糟。
  • 不把"搜不到"说成"没人写"。收录门槛是互动 1000+,两者不是一回事,必须区分表述。
  • 不把相关说成因果。"top10 里 6 篇带数字标题"是观察,"用数字标题就能爆"是错误推论——写成"这个赛道读者对数字钩子响应更好"。
  • 不承诺结果。给的是概率更高的方向,不是"照这个写必爆"。
  • 不只给能抄的。共性提取必须同时给「不可复用」清单,指明是身份壁垒、资源壁垒还是账号壁垒。
  • 不跨源比绝对值。不同数据源的互动数口径不同,对比时只比结构性指标并注明。
  • 超窗口不糊弄。用户要 60 天,就说"库内只有 30 天,已按 30 天返回",不要默默改成 30 天当作满足了需求。
  • 不越权深挖。要评论区/博主全量作品时,走怪壳路线并说明需要 GUAIKEI_API_TOKEN,不要用搜索结果脑补评论区在说什么。

自检(输出前过一遍)

  • 顶部有数据源标注 + 收录口径 + 时间范围?
  • 所有笔记链接都保留了 xsec_token 原样?
  • 泛化词是否已查 xhs_sectors.json 做赛道下切并并行查询,而不是拿大词硬查?
  • 数据不足时是否扩了时间窗并告知,而不是偷偷换词?
  • 五个切口的赛道体检是否都给了,且每条有解读不只有数字?粉丝字段缺失时是否如实说明而不是估算?
  • 样本 ≥8 条时是否给了共性提取,且三张清单齐全(可复用 / 不可复用 / 空位)?占比是否按 40%/20% 阈值分级表述?
  • 做了多组查询时,是否跑了 compare_sets.py 而不是拿眼睛估?跨路线是否标了"绝对量级不可比"?
  • 选题建议是否 ≥3 条,每条都挂了具体对标笔记和链接?
  • 有没有出现接口没返回的数字?

目录结构

space-xhs-hotspot/
├── SKILL.md
├── scripts/
│   ├── fetch_xhs_hot_articles.py      # 红狐 API 查询脚本(需 REDFOX_API_KEY)
│   │                                  # 来源:creator-buddy/skills/xhs-hotnotes,原样复用未改动
│   └── compare_sets.py                # 第 4 步用:多组结果 JSON 归一对比(离线,不需要 Key)
│                                      # 吃红狐 items[] 和怪壳 results[] 两种格式,自动识别
└── references/
    ├── data_sources.md                # 三条路线的命令、参数、报错处理、字段映射、怪壳实测须知
    ├── xhs_hot_article_format.md      # 红狐接口字段说明(同样来自 xhs-hotnotes)
    ├── xhs_sectors.json               # 第 1 步用:24 个一级赛道 × 四维度细分词库
    └── pattern_extraction.md          # 第 3 步用:爆款共性提取方法(标签表、阈值、三张清单、选题公式)

按需读取:data_sources.md 每次执行前必读;xhs_sectors.json 只在需要赛道下切时读;pattern_extraction.md 只在样本 ≥8 条要做共性提取时读;xhs_hot_article_format.md 只在走红狐路线时读。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Fetch and analyze WeChat Official Account hot articles / 公众号爆款文章 by sector or keywords. Use when the user asks for 爆款文章分析, 赛道爆款, 公众号爆款数据, reading counts, likes, shares, comments, title patterns, writing style, 爆款原因分析, or writing references for content creation.

日本語の概要は準備中です。原文の説明を表示しています。

SpaceZephyr/creator-buddy1,6422026年8月26日 更新

科技/AI/互联网领域的公众号 10 万+ 爆款标题生成器。输入一篇文章、一段内容或一个主题,先建内容简报,再按多种方法产出多个候选标题,逐个评分、标风险、按用途分角色推荐,并给 A/B 测试建议。当用户说"起标题""想个爆款标题""这篇文章叫什么好""标题优化""标题改写""多组标题""标题评分""10万+标题"时触发。方法论提炼自 100 篇真实科技类爆文标题。

日本語の概要は準備中です。原文の説明を表示しています。

SpaceZephyr/creator-buddy1,6422026年8月26日 更新

创作者全域内容搜索总控 Skill。用户发送平台名+关键词、平台链接,或要求分析博主、文章风格、热度、点赞、收藏、评论、爆款原因、选题方向时触发;根据平台和任务自动路由到小红书热门笔记、全域内容搜索、公众号爆款搜索、公众号赛道分析等分支 Skill。

日本語の概要は準備中です。原文の説明を表示しています。

SpaceZephyr/creator-buddy1,6422026年8月26日 更新

全域内容搜索|当提到小红书/B站/抖音关键词搜索、笔记/视频详情、评论、博主/UP主作品监控时使用。优先基于 Agent Reach / OpenCLI / bili-cli / 公开只读接口访问;Agent Reach 不可用时,小红书可用 Guaikei API 作为最后兜底。

日本語の概要は準備中です。原文の説明を表示しています。

SpaceZephyr/creator-buddy1,6422026年8月26日 更新

为公众号文章创作打造的专业数据洞察工具。全网持续收录每日爆款文章,收录依据:低粉高阅读、阅读靠前、数据增长中、原创靠前,助力号主获取数据参考。

日本語の概要は準備中です。原文の説明を表示しています。

SpaceZephyr/creator-buddy1,6422026年8月26日 更新

公众号长文写作(1500–4000 字)。先诊断作者手上已有什么(一个念头 / 一堆素材 / 半篇草稿 / 一份大纲 / 一篇不满意的成稿),再路由到对应的六种写法之一,产出成稿并过公众号专属质检。当用户说"写篇公众号""帮我写文章""这个主题怎么写""我有一堆素材不知道怎么组织""帮我扩写""这篇改一下""写不下去了""长文""深度文"时触发。

日本語の概要は準備中です。原文の説明を表示しています。

SpaceZephyr/creator-buddy1,6422026年8月26日 更新

SpaceZephyr のスキルをすべて見る

このスキルの問題を報告する