| name | chanmama-search |
| description | 蝉妈妈达人搜索与筛选 skill。在蝉妈妈达人库中按条件搜索达人,通过两轮 LLM 筛选(初筛名称 + 精筛三级分类),输出合格达人列表。 触发场景:搜索达人、筛选达人、蝉妈妈查询、达人数据提取、每日达人发现。 |
chanmama-search — 蝉妈妈达人搜索与筛选
前置条件
- anyreach CDP Proxy 运行中:
node "<anyreach_dir>/scripts/check-deps.mjs"
- 用户已在 Chrome 中登录蝉妈妈
<anyreach_dir> 默认为本 skill 同级的 anyreach/ 目录,可通过 ANYREACH_DIR 环境变量覆盖。
完整工作流
Step 1: 搜索达人列表
node run.mjs --preset default --max-pages 10 --output /tmp/bloggers.json
Step 2: LLM 初筛(过滤品牌号/专场号/工厂号等)
读取 prompts/screen-stage1.md 作为 system prompt
将 /tmp/bloggers.json 中的达人数据作为 user message 发给 LLM
LLM 返回 pass/reject 判断
保留 pass 的达人
Step 3: 详情页三级分类提取
将初筛通过的达人传入 detail.mjs
node detail.mjs --input /tmp/passed-stage1.json --output /tmp/details.json
Step 4: LLM 精筛(根据三级分类判断品类匹配度)
读取 prompts/screen-stage2.md 作为 system prompt
将 /tmp/details.json 中的三级分类数据作为 user message 发给 LLM
LLM 返回 pass/reject 判断
保留 pass 的达人 → 最终合格列表
Step 1: 搜索达人列表
node "<skill_dir>/run.mjs" --preset default --max-pages 10 --output /tmp/bloggers.json
node "<skill_dir>/run.mjs" --filters '{"category":"日用百货","subCategory":"个人护理","bloggerGender":"女","fanGender":"女性居多","checkDaren":true,"levels":["LV1","LV2","LV3","LV4"],"sellMode":"直播带货为主","liveHourlyOutput":"1000-1万"}' --max-pages 10
node "<skill_dir>/run.mjs" --condition "阿周" --max-pages 10
预设 default 的筛选条件:
| 筛选项 | 值 |
|---|
| 带货分类 | 日用百货 → 个人护理 |
| 达人画像 | 女 |
| 粉丝画像 | 女性居多 |
| 达人信息 | 勾选达人号 |
| 带货等级 | LV1、LV2、LV3、LV4 |
| 带货方式 | 直播带货为主 |
| 直播场均小时产出 | 1000-1万 |
输出格式:
{
"action": "extractAll",
"totalBloggers": 100,
"bloggers": [
{
"name": "达人昵称",
"douyinId": "抖音号",
"hasLevel": true,
"profileLink": "https://www.chanmama.com/bloggerRank/XXX.html",
"followers": "10.2万",
"liveSales": "50.3万",
"liveHourlyOutput": "8.2万",
"avgSessionSales": "4.2万"
}
]
}
Step 2: LLM 初筛
提示词文件:prompts/screen-stage1.md
将提示词作为 system prompt,达人列表作为 user message,发给你的 LLM。
LLM 会基于达人名称判断是否为品牌号、专场号、工厂号、明星号等,返回 pass/reject。
原则:宁可放过,不要错杀。 拿不准的保留进入下一轮。
将 pass 的达人(保留 profileLink 字段)保存为 /tmp/passed-stage1.json。
Step 3: 详情页三级分类提取
node "<skill_dir>/detail.mjs" --input /tmp/passed-stage1.json --output /tmp/details.json
参数:
| 参数 | 说明 | 默认 |
|---|
--input, -i | 初筛结果 JSON(需含 profileLink) | — |
--urls | 逗号分隔的详情页 URL 列表(替代 --input) | — |
--output, -o | 输出文件路径 | stdout |
--delay | 每个达人之间的间隔毫秒 | 2000 |
输出格式(每个达人):
{
"url": "https://www.chanmama.com/bloggerRank/XXX.html",
"name": "椰尼Ya",
"douyinId": "6susu61228",
"headerTags": ["达人号", "日用百货-个人护理96.24%"],
"byProducts": [{"name": "面部护肤", "percent": "35.59%"}],
"bySales": [{"name": "口腔护理", "percent": "66.25%"}],
"byRevenue": [{"name": "口腔护理", "percent":
三个维度:
byProducts:上架商品最多品类 TOP5
bySales:销量最佳品类 TOP5
byRevenue:销售额最佳品类 TOP5(最重要)
Step 4: LLM 精筛
提示词文件:prompts/screen-stage2.md
将提示词作为 system prompt,三级分类数据作为 user message,发给你的 LLM。
LLM 会判断每个达人的品类是否匹配目标方向(女性向日用个护),返回 pass/reject + 关键品类标签。
最终通过精筛的达人即为合格列表,可进入后续流程(如写入飞书多维表格)。
退出码
环境变量
| 变量 | 说明 | 默认 |
|---|
ANYREACH_DIR | anyreach 安装路径 | ../anyreach |
CDP_PROXY_PORT | CDP Proxy 端口 | 3456 |
文件结构
run.mjs → Step 1: 搜索达人列表
detail.mjs → Step 3: 详情页三级分类提取
prompts/screen-stage1.md → Step 2: 初筛提示词(过滤品牌号等)
prompts/screen-stage2.md → Step 4: 精筛提示词(三级分类匹配)
SKILL.md → 本文件(agent 使用指南)