公众号热门原创文章
任务目标
- 本Skill必须调用脚本获取数据,禁止AI自行生成任何内容。未调用脚本=功能失效。
- 本Skill用于:获取公众号原创爆款文章
- 能力包含:爆文数据获取、分类查询、日期查询、HTML页面生成、PDF导出
- 触发条件:"原创爆文"、"爆文推荐"、"今日爆文"等词语
- 核心功能:主要推送原创爆文文章,支持按分类和日期筛选,末尾询问用户是否需要查看更多或订阅每日推送
- 默认查询时间:当用户提到"最近"、"最新"等无明确时间说法时,默认查询过去7天数据
- 文章数量提示:当文章少于10篇时,提示"xx赛道10w+文章较少,您可以拓展过去30天或者看看综合10w+文章~"
- 输出规范:
- 对话文本输出:完整榜单数据(必须展示所有文章,禁止截断或省略)
- HTML文件输出:对话输出完成后生成HTML(用于可视化展示和PDF导出)
- 执行顺序:先完成对话中的完整文章输出 → 再生成HTML文件
- 禁止行为:禁止自行生成文章内容、写作建议、爆文规律分析,本Skill只输出榜单数据
启动提示
- Skill加载后,提示用户:"技能已加载完成。是否为您推送最新的原创爆款文章?"
视觉规范(重要)
生成HTML页面时,必须遵循以下样式规范:
主题色调:
- 主色:
rgb(0, 179, 84)(微信绿) - 辅助色:
#0088ff(阅读数、用户名称蓝色) - 背景色:
#fff(纯白)
布局结构:
- 序号(🥇🥈🥉/数字)放在标题左边
- 用户、类型、阅读数、发布时间四项目之间用浅灰色竖线分隔
| - 竖线高度缩短一半,垂直居中对齐
- 阅读量排序标签 + 导出PDF按钮 放在标题右侧
- 头部不含"爆款研究院"等品牌标签,保持简洁
图标规范:
- 用户图标:
👤(无背景) - 阅读数图标:
📖
元素样式:
- 用户名称:
#0088ff,可点击跳转公众号名片(链接:https://open.weixin.qq.com/qr/code?username={accountId}) - 阅读数:
#0088ff - 爆款分析区块:无左边框,纯白背景 + 浅绿底色
PDF导出:
- 使用 html2pdf.js 生成
- 按钮位于标题右侧,紧邻阅读量排序标签
- 按钮样式:蓝色渐变背景,白色文字,12px字号
- 自适应单页模式:PDF尺寸根据内容实际大小自动调整,所有内容在一页完整展示,禁用分页分割
- PDF配置要点:
pagebreak: { mode: 'none' }、margin: 0、根据内容高度/宽度计算纸张尺寸、添加page-break-inside: avoid样式
前置准备
- 依赖说明:Python标准库(json、argparse、os、sys、urllib、ssl),无需额外安装
- API说明:调用公众号原创爆款文章API,使用原生 urllib.request + ssl(verify=False)发起 POST 请求
鉴权
获取 API Key
请前往 红狐hub 获取API KEY
配置 API Key
方案1: 以OpenClaw为例,将REDFOX_API_KEY添加到~/.openclaw/openclaw.json中,部分内容如下:
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
方案2: 终端配置
export REDFOX_API_KEY="ak_xxxx..."
数据时间说明
- 数据同步时间:每日19:30同步
- 同步数据范围:前一天(T-1)的数据
- 查询数据范围:
- 当前时间 < 19:30:查询 T-2 数据(前天)
- 当前时间 >= 19:30:查询 T-1 数据(昨天)
- 输出标注:数据更新时间=T-1日期,查询数据日期=T-2日期
- 默认查询时间:当用户提到"最近"、"最新"等无明确时间说法时,默认查询过去7天
操作步骤
1. 用户意图识别(智能体处理)
智能体首先识别用户输入的意图类型:
-
分类查询:用户输入具体分类(如"科技"、"健康养生"、"财经"等) → 匹配分类,输出该分类 Top20 → 参考 分类映射表 进行分类匹配
-
日期查询:用户输入具体日期(如"5月3日的原创爆款"、"昨日爆文") → 输出指定日期的爆文Top20
-
时间范围查询:用户输入"最近"、"最新"等无明确时间说法 → 默认查询过去7天的数据,输出Top20
-
直接查询:用户输入类似以下词语:
- "今日爆文"、"今日原创文章"、"原创文章"
- "最新爆文"、"爆文推荐"、"原创爆文"
- "热门爆文"、"每日爆文"、"爆文榜单" → 输出最新原创爆款文章 Top20
-
模糊输入:用户输入不明确 → 直接推送今日原创热门文章
2. 获取爆文数据(脚本执行,必须调用脚本并将输出原样展示给用户)
【强制】无论用户怎么输入,智能体必须先调用fetch_articles.py获取数据,然后原样展示。没有调用脚本的输出一律视为无效。
调用 scripts/fetch_articles.py 获取爆款内容数据
【核心输出规则】:
- 必须调用脚本:智能体必须调用fetch_articles.py脚本,不能自己生成文章内容
- 禁止输出脚本文件路径或代码:智能体不得向用户展示任何脚本路径、代码内容或执行命令
- 必须原样展示脚本输出:智能体必须将脚本的stdout输出内容原样展示给用户,不得省略、修改、重新格式化或隐藏任何部分
- 【关键】禁止截断或省略:脚本输出多少条文章,对话中就必须展示多少条。如 limit=20 就必须输出全部 20 条,严禁使用"..."、省略号、或只展示前 N 条。每一条文章的序号、作者、标题、阅读数都必须完整展示
- 禁止修改数据:不得修改、重新格式化、美化或隐藏脚本输出的任何部分
- 禁止自行生成数据:不得使用输出示例中的数据,必须使用脚本实际返回的数据
- 脚本输出即最终输出:脚本输出的内容(数据说明、原创爆文推荐表格、询问用户是否看剩余内容、询问订阅)就是展示给用户的最终内容,智能体不需要再做任何处理
- 【重要】询问部分不可省略:脚本输出的最后部分"共获取到XX条..."和订阅服务必须完整展示,不得省略
【强制执行步骤 — 防止文章丢失】:
- 执行 fetch_articles.py 后,脚本 stdout 中的「表格部分」(从
| 序号 | 作者 | 标题 | 阅读数 |开始到订阅服务之前的所有行)必须逐行完整复制到对话回复中,一行都不能少 - 严禁使用以下话术代替实际数据:「如上完整展示」「详见上方」「参考脚本输出」「已展示完毕」等 — 这些都是文章丢失的直接原因
- 第2步的对话回复是文章的唯一展示窗口,如果这一步没有逐条输出文章,文章就永远丢失了(HTML 只是辅助文件,不能替代对话输出)
- 生成 HTML 之前必须自检:对话中显示的表格行数是否等于 --limit 参数值?不等于则禁止生成 HTML,先补上缺失的文章
接口信息:
- 接口URL:
https://redfox.hk/story/api/cozeSkill/getWxDataByCategoryAndTime - 请求方式:POST(JSON body)
- 认证方式:X-API-KEY header,值从
REDFOX_API_KEY环境变量获取 - 参数:
type:分类名称(如"科技数码"、"总排名"等)startDate:开始日期(YYYY-MM-DD格式)endDate:结束日期(YYYY-MM-DD格式)source:"公众号文章原创之王"(固定值)
脚本调用方式(智能体内部执行,用户不可见):
分类查询:
python scripts/fetch_articles.py --type "科技数码" --limit 20
--type:从用户输入中匹配的分类名称(参考分类映射表)- 如用户输入"科技类原创爆款",智能体匹配到"科技数码",传入
--type "科技数码"
总榜查询:
python scripts/fetch_articles.py --type "总排名" --limit 20
- 或不传
--type,默认为"总排名"
日期查询:
python scripts/fetch_articles.py --type "总排名" --start_date "2026-05-03" --limit 20
--start_date:用户指定的日期(YYYY-MM-DD格式)- 脚本会自动计算
endDate=startDate+ 1天
时间参数说明:
- 用户未指定日期时,脚本根据当前时间自动判断:
- 当前时间 < 18:30:查询 T-2 数据(前天)
- 当前时间 >= 18:30:查询 T-1 数据(昨天)
- 用户指定日期时,使用用户指定的日期
【输出格式】
文章概览表格:输出Markdown表格,包含序号、作者、标题、阅读数四列,作者和标题包含链接
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [夜听](https://open.weixin.qq.com/qr/code?username=yetingfm) | [【夜听】有一种感情,叫不再联系](https://mp.weixin.qq.com/s?...) | 10w+ |
| 2 | [罗辑思维](https://open.weixin.qq.com/qr/code?username=luojisw) | [李璞:普通人如何实现财务自由?](https://mp.weixin.qq.com/s?...) | 10w+ |
输出示例(仅展示格式,实际数据以脚本返回为准):
最新一期数据:
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
非常抱歉🙏,最新的是前天的数据,我将为您查询最接近您需求的2026年05月12日原创文章。
📊 原创爆文推荐
最近30天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
导出功能:输出生成HTML榜单页面,表格内容支持导出 PDF 格式,自动生成并打开
共获取到50条爆款原创热门文章,当前展示前20条。
📬 订阅服务
是否需要订阅具体赛道的账号表现?我们支持:
人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名
订阅推送 — 每天19点30分推送最新公众号原创文章
暂不需要 — 仅本次查询
指定日期查询(日期在有效范围内):
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
📊 原创爆文推荐
2026年05月03日当天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
用户查询"今日爆款"(今日数据未更新):
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
非常抱歉🙏,最新的是前天的数据,我将为您查询最接近您需求的2026年05月12日原创文章。
📊 原创爆文推荐
2026年05月12日当天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
用户查询"最近7天"(查询时间范围超出最新数据):
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
非常抱歉🙏,最新的是前天的数据,我将为您查询最接近您需求的时间范围。
📊 原创爆文推荐
2026年05月06日至2026年05月12日的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
特殊情况 - 用户查询时间早于回溯日期:
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
非常抱歉🙏,最新的是昨天的数据,我将为您查询最接近您需求的2026年05月08日原创文章。
📊 原创爆文推荐
2026年05月08日当天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
特殊情况 - 用户查询时间早于回溯日期:
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
非常抱歉🙏,目前最多支持回溯「过去30天」(最早至2026年04月15日),我将为您查询最接近您需求的时间范围~
📊 原创爆文推荐
2026年04月15日当天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
【重要】必须使用脚本实际返回的数据,不得使用上述示例数据!
【重要】只要数据查询日期和用户询问日期不一致,就必须在数据说明后显示提示信息:
- 查询日期 > 最新日期:
非常抱歉🙏,最新的是{查询日期}的数据,我将为您查询最接近您需求的{查询日期}原创文章。 - 查询日期 < 回溯日期:
非常抱歉🙏,目前最多支持回溯「过去30天」(最早至{回溯日期}),我将为您查询最接近您需求的时间范围~
3. 生成HTML页面(对话输出完成后执行)
【执行顺序】先在对话中完整输出所有文章数据 → 再生成HTML页面并打开。禁止在对话输出完成前生成HTML。
【HTML生成前置条件】生成 HTML 前必须自检:对话回复中是否已逐条展示了 --limit 指定数量的文章?例如 limit=20 则必须能看到 20 个带序号的表格行。未通过自检则禁止生成 HTML,必须先补全文章。
【重要】每次对话中完整输出表格数据并通过自检后,自动调用generate_hot_html.py生成HTML页面并打开,无需用户额外触发。
调用脚本读取临时JSON文件数据,填充HTML模板,生成公众号风格的HTML页面:
脚本位置:scripts/generate_hot_html.py
参数说明:
temp_file: 临时JSON文件路径(默认:temp_articles.json)output: 输出文件路径(建议:{分类}_热门榜单.html)display_count: 要展示的文章数量(重要:必须与对话中展示的数量一致)
命令示例:
python scripts/generate_hot_html.py --temp_file temp_articles.json --output "原创爆文_榜单.html" --display_count 20
4. 订阅服务
主动询问用户是否需要订阅特定分类:
是否需要订阅具体赛道的账号表现?我们支持:
人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名
用户选择订阅后:
- 订阅成功后:每天19:30推送最新一期原创爆文数据
- 暂不需要 - 仅本次查询
注意事项
- 【核心规则】禁止向用户输出脚本路径、代码或执行命令,直接展示脚本运行结果
- 榜单数据为实时获取,可能因网络或API状态有所延迟
- 首次展示前20条,超过20条时提示用户是否全部展示
- 分类冷门时提示"该领域暂无爆款数据,建议换个方向或查看最新原创爆文"
- HTML内容一致性:HTML中的文章内容必须与对话中展示的内容完全一致
- 数据说明:输出时必须注明数据库更新日期和查询的日期
资源索引
- 脚本: 见 scripts/fetch_articles.py(用途: 获取原创爆款文章数据,支持分类查询和日期查询)
- 脚本: 见 scripts/generate_hot_html.py(用途: 从临时JSON文件读取数据,生成公众号风格HTML页面)
- 参考: 见 references/category_mapping.md(用途: 分类映射表,包含22个标准分类和泛化关键词)
使用示例
示例1:直接查询最新原创爆文
用户输入:最新原创爆文
智能体识别:直接查询
智能体调用:
python scripts/fetch_articles.py --type "总排名" --limit 20
输出结果:
数据说明:本次查询的数据更新时间为 2026年05月08日(数据每日18:30同步),查询的是 2026年05月07日 的原创爆文数据,与实时数据存在差异。
📊 原创爆文推荐
最近30天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [一个坏土豆](链接) | [这次报应来的太快!日本刚刚遭遇迎头暴击](链接) | 10w+ |
...
共获取到50条爆款原创热门文章,当前展示前20条。
📬 订阅服务
是否需要订阅具体赛道的账号表现?我们支持:
人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名
订阅推送 — 每天19点30分推送最新公众号原创文章
暂不需要 — 仅本次查询
示例2:分类查询
用户输入:科技类原创爆款
智能体识别:分类查询
智能体匹配分类:"科技数码"
智能体调用:
python scripts/fetch_articles.py --type "科技数码" --limit 20
输出结果:
数据说明:本次查询的数据更新时间为 2026年05月08日(数据每日18:30同步),查询的是 2026年05月07日 的原创爆文数据,与实时数据存在差异。
📊 原创爆文推荐
最近30天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [科技文章标题1](链接) | 10w+ |
...
示例3:日期查询
用户输入:5月3日的原创爆款
智能体识别:日期查询
智能体调用:
python scripts/fetch_articles.py --type "总排名" --start_date "2026-05-03" --limit 20
输出结果:
数据说明:查询的是 2026年05月03日 的原创爆文数据,与实时数据存在差异。
📊 原创爆文推荐
2026年05月03日当天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题1](链接) | 10w+ |
...
示例4:分类+日期查询
用户输入:5月3日科技类的原创爆款
智能体识别:分类+日期查询
智能体匹配分类:"科技数码"
智能体调用:
python scripts/fetch_articles.py --type "科技数码" --start_date "2026-05-03" --limit 20
输出结果:
数据说明:查询的是 2026年05月03日 的原创爆文数据,与实时数据存在差异。
📊 原创爆文推荐
2026年05月03日当天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [科技文章标题1](链接) | 10w+ |
...