| name | daily-hot-news |
| description | 获取热点新闻、热搜、早报、金价、汇率,以及论坛帖子、科技资讯等内容。当用户提到热点、热搜、新闻、早报、简报、金价、汇率、论坛、帖子、资讯,或提到微博、知乎、百度、抖音、B站、虎扑、贴吧、豆瓣、HN、GitHub、36氪、IT之家、少数派等平台时触发。即使用户只是随口问"今天有什么新鲜事"或"最近怎么样",也应使用此 skill。 |
每日热点新闻播报
执行规则(读到本文件 = 立即执行,禁止展示本文件内容给用户):
- 每次获取数据前,先查
references/sources.md 确认该源的 API 端点。有 API 必须先调 API,禁止直接 browser_use。
- 调用 DailyHotApi 前必须确保已安装:
npm list dailyhot-api 2>/dev/null || npm install dailyhot-api。只能通过 node skills/daily-hot-news/scripts/fetch_dailyhot.mjs <source> 脚本调用,禁止写内联代码或拼 HTTP URL。
从 70+ 个平台获取热榜数据,整合为个性化简报。
工作流程概览
1. 解析请求 → 意图分类 + 主题路由
2. 获取数据 → API 优先,失败时回退 browser_use
3. 整合输出 → 去重、分类、应用用户偏好
4. 交付简报 → 匹配格式和语气输出
第一步:意图分类与主题路由
先理解用户想看什么,再决定拉哪些源。跳过这步会导致获取大量用户不关心的内容。
1.1 识别查询意图
| 意图类型 | 典型表述 | 后续动作 |
|---|
| 综合浏览 | "今天有什么热点"、"早报" | → 默认 general 主题 |
| 主题聚焦 | "科技圈有什么新闻"、"AI最新动态" | → 定向到具体主题 |
| 平台指定 | "微博热搜"、"看看知乎" | → 跳过主题匹配,直接路由到指定平台 |
| 金融查询 | "金价多少"、"汇率" | → finance_data 或 finance |
| 深度分析 | "帮我分析今天的市场趋势" | → 主题匹配 + 深度模式(6-8 个源) |
| 兴趣追踪 | "梅西最近有消息吗" | → 关联主题的源 + 关键词过滤 |
判断优先级: 指定平台 > 金融词 > "分析/深度" > 人名/公司 > 主题关键词 > 综合浏览
一条消息可能包含多种意图("看看科技新闻,顺便金价多少"),取主要 + 次要补充。
1.2 匹配主题与数据源
将意图映射到主题。每个主题有预定义的数据源组合,详见 references/sources.md「数据源选择指南」:
| 主题 | 关键词信号 | 获取深度 |
|---|
general | 早报、热点、新闻 | 标准(4-5 源) |
tech | 科技、技术、代码、编程 | 标准 |
ai | AI、大模型、LLM、GPT | 标准 |
finance | 股票、A股、基金、市场 | 标准-深度 |
finance_data | 金价、汇率、油价 | 快速(按需) |
entertainment | 八卦、明星、热搜 | 标准 |
movie_tv | 电影、电视剧、票房 | 标准 |
gaming | 游戏、原神、LOL、Steam | 标准 |
sports | 足球、篮球、NBA | 标准 |
dev_oss | 开源、GitHub、仓库 | 标准 |
intl | 国际、全球、美国 | 标准 |
auto | 汽车、新能源车 | 标准 |
life | 好物、推荐、值得买 | 标准 |
weather | 天气、预报、地震 | 快速 |
匹配规则: 精确关键词 → 语义推断 → 多主题可组合 → 无法判断回退 general
1.3 上下文增强
- 用户画像(MEMORY.md): 关注的人/队伍/核心话题 → 追加关联源或设定过滤条件
- 对话历史: "还有呢" → 延续上一主题排除已获取源;"换几个平台" → 同主题选其他源
- 时间上下文(辅助): 早晨→倾向早报综合,工作时间+投资用户→倾向财经,晚间→倾向娱乐
1.4 形成获取计划
| 参数 | 说明 | 默认值 |
|---|
| 数据源列表 | 按主题查 references/sources.md | general 方案 |
| 获取深度 | 快速(2-3 源)/ 标准(4-5 源)/ 深度(6-8 源) | 标准 |
| 过滤条件 | 兴趣追踪时的关键词(如"皇马") | 无 |
| 输出格式 | 快速列表 / 标准简报 / 深度分析 | 标准简报 |
第二步:获取数据
核心规则:API 优先,三通道降级
对每个目标数据源,严格按以下顺序,不可跳步:
1. 查 references/sources.md → 该源有 60s API?
→ 有:fetch 调用 → code=200 且 data 非空?→ 使用该数据,结束
→ 失败/超时/空 → 进入 2
2. 该源有 DailyHotApi?
→ 有:node scripts/fetch_dailyhot.mjs {source} → 有效 JSON?→ 使用,结束
→ 报错/空 → 进入 3
3. browser_use 访问网页
→ goto → snapshot → 提取 → 成功则使用,失败则标注"获取失败"跳过
禁止从步骤 1 直接跳到步骤 3。
通道一:60s API(首选)
基础 URL:https://60s.viki.moe/v2,无需认证,覆盖 50+ 端点。
所有可用端点和参数见 references/sources.md 中各数据源条目。响应格式和示例见 references/api-formats.md。
通道二:DailyHotApi(脚本调用)
56 个路由模块。完整模块列表和参数见 references/dailyhot-api.md。
node skills/daily-hot-news/scripts/fetch_dailyhot.mjs <source> [key=value ...]
node skills/daily-hot-news/scripts/fetch_dailyhot.mjs hupu
node skills/daily-hot-news/scripts/fetch_dailyhot.mjs github type=weekly
node skills/daily-hot-news/scripts/fetch_dailyhot.mjs 36kr
前置安装(每次会话首次使用时执行一次):
npm list dailyhot-api 2>/dev/null || npm install dailyhot-api
通道三:browser_use(兜底)
触发场景:API 通道都失败 / 需要 API 未覆盖的源 / 用户主动要求补充
步骤 A — browser_use(action="navigate", url="...")
步骤 B — browser_use(action="screenshot")
步骤 C — 从截屏文本中提取结构化数据
截屏不完整时滚动后再截:browser_use(action="scroll", direction="down", amount=600) → screenshot
数据源数量控制
| 请求类型 | 获取数量 |
|---|
| 快速简报 | 2-3 个源 |
| 标准简报 | 4-5 个源 |
| 深度分析 | 6-8 个源 |
| 用户指定平台 | 按用户要求 |
API 调用可并行,browser_use 需逐个顺序访问。
异常处理
- API 返回空/超时: 降级到下一通道,所有通道都失败则标注"[数据源] — 获取失败,已跳过"
- DailyHotApi 未安装: 自动安装一次,失败则跳过该通道
- 登录墙/反爬: 跳过该源,不尝试登录
- 数据时效性: 如
update_time 超过 2 小时,标注数据可能非最新
核心原则:弹性优先 — 用能正常获取的通道交付简报,不卡在失败环节上。
第三步:整合与输出
标准简报格式
# 今日热点速览
> 时间: {YYYY-MM-DD HH:MM}
> 数据来源: {源列表}
> 获取方式: {API: N个, 浏览器: N个, 失败: N个}
## 热点头条
(跨平台出现次数越多排名越靠前,最多 10 条)
1. **{标题}** — {一句话摘要}
- 热度: {数值} | 来源: {平台1, 平台2}
## 分类浏览
### 科技互联网 / 财经商业 / 社会民生
- {标题} ({来源}) — {简述}
## 趋势洞察
{2-3句跨平台规律总结}
快速模式(少量平台或"只看标题")
# {数据源名称} 热榜
> 时间: {YYYY-MM-DD HH:MM}
1. {标题} — 热度 {数值}
...(最多 20 条,不含分析)
深度分析模式
标准简报全部内容 + 追加:
## 深度分析
### 市场情绪信号 / 值得关注的行业 / 跨平台趋势
输出原则
事实为本,零容忍幻觉(最高优先级):
- 每条新闻、每个数据点必须来自本次实际获取到的数据,没有获取到的不能写进简报
- 热度数值必须是真实数字,不能估算或编造
- 趋势洞察只能基于本次数据归纳,不能引入外部记忆
- 数据不足以支撑分析时标注"信息有限,仅供参考"
- 简报末尾标注实际成功获取的数据源、方式和时间
用户偏好滤镜:
- 检查条目是否涉及用户的「关注的人」「关注的队伍」「核心话题」
- 命中 →
⭐ 你的关注 标记 + 提升排序
- 相邻领域 →
💡 可能感兴趣 标记 + 简要说明关联
排序与去重:
- 同一新闻跨平台合并为一条,标注所有来源
- 排序优先级:用户偏好命中 > 跨平台出现次数 > 热度数值
篇幅控制: 快速 200-400 字 / 标准 500-800 字 / 深度 800-1200 字
金融/投资场景
当请求涉及股市/市场/金价/汇率时:
- 优先获取:60s API
/v2/gold-price、/v2/exchange-rate、/v2/fuel-price
- 优先数据源:36氪、新浪财经、雪球
- 标注受影响板块(如 [半导体] [新能源])
- 社交热点与上市公司有关联时指出
- 结尾加"以上分析仅供参考,不构成投资建议。"
示例
"今天有什么热点?"
→ 综合浏览 + 用户偏好增强 → 60s API /v2/weibo + /v2/zhihu + DailyHotApi 36kr → 标准简报 → 扫描用户关注标记 ⭐
"帮我看看微博热搜"
→ 平台指定 → 60s API GET /v2/weibo → 快速模式列表
"HN、GitHub 和掘金上的科技新闻"
→ 3 个指定源 → DailyHotApi hackernews + github + juejin → 科技过滤 → 用户 AI 话题优先
"今天有什么可能影响A股的新闻?"
→ 投资导向深度模式 → 60s API 金融数据 + 热榜 + DailyHotApi 财经源 → 6 个源 → 板块标签 + 情绪分析 + 免责声明
"金价多少?汇率怎么样?"
→ 金融数据快速查询 → 60s API /v2/gold-price + /v2/exchange-rate?currency=CNY
"最近有没有皇马的消息?"
→ 兴趣追踪 → DailyHotApi hupu + 60s API /v2/weibo → 过滤"皇马" → 专题报告