Skill: paudyyin/daily-news-cn (version 2.1.0)

--- name: daily-news version: 2.1.0 description: 每日新闻自动采集与报告生成。使用 web_search (freshness=oneDay) 替代旧版 Bing/Tavily 方案，确保新闻均为24小时内真实最新。 metadata: author: OpenClaw category: automation triggers: - 每日新闻 - 新闻日报 - yesterday news - daily news --- # 每日新闻自动采集 v2.1 ## 架构变更 ### v1.0 旧方案（已废弃） | 组件 | 方式 | 致命问题 | |------|------|---------| | `daily_news_query.py` | Bing 爬虫 (requests+bs4) | ❌ 无法可靠过滤旧闻，混入2023/2024年旧内容 | | `daily_news_query.py` | Bing 爬虫 | ❌ 大量网页噪声（"网站地图"、"无障碍链接"等） | | `daily_news_tavily.py` | Tavily API | ❌ 完全无时间过滤，可能返回任何时间的内容 | ### v2.0 新方案 | 组件 | 方式 | 优势 | |------|------|------| | Agent + `web_search` | OpenClaw 内置工具 | ✅ `freshness=oneDay` 严格24小时过滤 | | | | ✅ 权威媒体源（新华社/央视/澎湃等） | | ✅ 零外部依赖，无需额外配置 | ### v2.1 格式硬约束（2026-05-27 新增） - ✅ 强制编号列表输出，禁止段落式摘要 - ✅ 强制来源标注 + 可信度标记 - ✅ 固定 8 个类别（白色家电独立） --- ## 触发方式 1. **用户手动触发**: 用户说"每日新闻"、"新闻日报"、"daily news"等 2. **定时触发**: OpenClaw cron 任务，每日工作日 08:30 自动执行（任务名：`每日新闻日报 (v2.0)`） --- ## 执行流程 ### 步骤 1: 确定日期 ```python from datetime import datetime, timedelta yesterday = datetime.now() - timedelta(days=1) yesterday_str = yesterday.strftime('%Y年%m月%d日（周X）') yesterday_short = f"{yesterday.month}月{yesterday.day}日" ``` ### 步骤 2: 8轮 web_search 查询 对以下每个类别，**依次**调用 `web_search`，每轮必须带 `freshness: "oneDay"`： | # | Emoji | 类别 | 搜索关键词 | |---|-------|------|-----------| | 1 | 🌍 | 全球政治军事 | `{yesterday_short} 全球 政治 军事 国际 冲突 外交` | | 2 | 🇨🇳 | 中国政治军事 | `{yesterday_short} 中国 政治 军事 政策 官方` | | 3 | 💰 | 全球财经 | `{yesterday_short} 全球 财经 股市 美股 原油 黄金 汇率` | | 4 | 📈 | 中国财经 | `{yesterday_short} 中国 A股 宏观经济 政策 LPR` | | 5 | 🤖 | AI/人工智能 | `{yesterday_short} AI 人工智能 大模型 技术突破` | | 6 | 🔭 | 科技领域 | `{yesterday_short} 科技 半导体 新能源 航天 机器人` | | 7 | 📱 | 消费电子 | `{yesterday_short} 消费电子 手机 智能穿戴 PC` | | 8 | 🏠 | 白色家电 | `{yesterday_short} 白色家电 空调 冰箱 洗衣机 美的 海尔 格力` | > ⚠️ **重要**：必须严格执行 8 轮搜索，每轮一个类别，不得合并或跳过。 调用示例： ``` web_search: query: "5月20日 全球 政治 军事 国际 冲突 外交" freshness: "oneDay" ← 必须！严格24小时过滤 count: 10 channel: "bocha" ``` ### 步骤 3: 内容筛选与清洗 **排除规则：** - ❌ 排除娱乐/体育/游戏/电竞内容 - ❌ 排除往年旧闻（描述中出现 2025年、2024年等往年日期） - ❌ 排除网页噪声（"网站地图"、"无障碍"、"首页"等） **保留规则：** - ✅ 优先权威媒体源：新华社、央视新闻、澎湃新闻、上海证券报、财新网、中国证券报、每日经济新闻、界面新闻等 - ✅ 保留包含具体数据、人物、事件的条目 - ✅ 跨类别去重 ### 步骤 4: 生成报告（⚠️ 严格遵循格式） #### ⚠️ 格式铁律（违反 = 输出不合格） 1. **每条新闻必须独立成行**，使用 `1. 2. 3.` 编号，**禁止**用分号/逗号将多条新闻拼接成一段 2. **每条必须标注来源和可信度**，格式为：`| 媒体名 🔴/🟡/⚪` 3. **固定 8 个类别**，不得增删合并 4. **每条结构**：`**标题** — 一句话摘要。| 来源 🔴/🟡` 5. **每个类别 8-12 条**，不足时如实标注"较少" #### 可信度标记规则 | 标记 | 含义 | 来源举例 | |------|------|---------| | 🔴 | 官方确认 | 新华社、央视、澎湃、证监会、央行、政府官网、公司官网/公告 | | 🟡 | 工业媒体/专业媒体 | 36氪、界面、财新、证券时报、IT之家、电子发烧友 | | ⚪ | 第三方整合（仅作参考） | 论坛、博客、经销商页、自媒体 | > ⚠️ **绝不**把 ⚪ 级别数据当作事实直接输出，必须标注来源。 #### 报告模板（必须严格按此格式） ```markdown # 📰 每日新闻日报 {yesterday_str} ## 📌 今日一句话总结 **[用一句话概括当天最重要的 2-3 条新闻，40 字以内]** --- ## 🌍 一、全球政治军事（X 条） 1. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 2. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 3. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 ... ## 🇨🇳 二、中国政治军事（X 条） 1. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 2. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 ... ## 💰 三、全球财经股市（X 条） 1. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 2. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 ... ## 📈 四、中国财经股市（X 条） 1. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 2. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 ... ## 🤖 五、AI 人工智能（X 条） 1. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 2. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 ... ## 🔭 六、科技领域（X 条） 1. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 2. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 ... ## 📱 七、消费电子（X 条） 1. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 2. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 ... ## 🏠 八、白色家电（X 条） 1. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 2. **新闻标题** — 一句话摘要。| 来源 🔴/🟡 ... --- *完整报告已保存至 memory/daily_news_{YYYY-MM-DD}.md* ``` #### ✅ 正确示例 vs ❌ 错误示例 **✅ 正确写法：** ```markdown ## 💰 三、全球财经股市（11 条） 1. **SpaceX 提交 S-1 上市申请** — 估值 1.75-2 万亿美元，代码 SPCX，募资 700-750 亿美元，6月12日纳斯达克挂牌。| 36氪 🔴 2. **日经225首次突破 65000 点** — 中东局势缓和 + 科技股带动。| 上证报 🔴 3. **国际油价大跌超 5%** — WTI 跌至 91.36 美元/桶，布伦特跌至 98.12 美元/桶。| 路透 🟡 ``` **❌ 错误写法（禁止）：** ```markdown ## 💰 三、全球财经股市 SpaceX 提交 S-1 上市申请，估值 1.75-2 万亿美元；日经 225 首次突破 65000 点；国际油价大跌超 5%，WTI 跌至 91.36 美元/桶，布伦特跌至 98.12 美元/桶；高盛警告原油库存以创纪录速度下降。 ``` > ❌ 上面这种"电报式一段话"是严重格式错误！ ### 步骤 5: 保存 报告保存到: `memory/daily_news_{YYYY-MM-DD}.md` --- ## 相关文件 | 文件 | 状态 | 说明 | |------|------|------| | `skills/daily-news/SKILL.md` | ✅ 当前 | 本技能文档 | | `daily_news_query.py` | ⚠️ 已废弃 | 旧版 Bing 爬虫方案 | | `daily_news_tavily.py` | ⚠️ 已废弃 | 旧版 Tavily API 方案 | | `memory/daily_news_*.md` | ✅ 历史存档 | 每日报告存档 | --- ## 版本历史 | 版本 | 日期 | 变更 | |------|------|------| | v2.1 | 2026-05-27 | 格式硬约束：强制编号列表、来源标注、可信度标记；类别增至 8 个（白色家电独立） | | v2.0 | 2026-05-21 | 改用 web_search(freshness=oneDay)，废弃 Bing/Tavily 方案 | | v1.0 | 2026-04-21 | 初始版本：Bing 爬虫 + Tavily API 双方案 |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)