用途:在每次 sweep 开始时运行,从公开来源抓取最新新闻与社区讨论,并维护跨运行的去重状态。
主要能力:查询 Google News RSS(每个主题一个搜索源,每个类别一个头条源,类别含 WORLD、NATION、BUSINESS、TECHNOLOGY、ENTERTAINMENT、SCIENCE、SPORTS、HEALTH);通过 Algolia 搜索 API 查询 Hacker News 的故事与评论;通过 Medium RSS 按 interests.json 中的 medium_tags 抓取长文。无需账号、凭证或 API 密钥。
使用方式:运行 python3 skills/fetch-news/scripts/fetch_news.py。主题、类别与每主题上限均来自 .agents/workspace/interests.json,应修改该文件而非脚本。脚本读取兴趣配置,抓取全部主题与类别;单个来源失败时继续并记录到 source_errors;丢弃 id 已存在于 .agents/workspace/seen_items.json 的条目,并把新 id 写入该文件(首次运行自动初始化);将新条目写入 .agents/workspace/new_items.json 并打印到 stdout,stderr 输出一行摘要。
输出:new_items.json 含 topics、genres、fetched_at、source_errors、new_count 与 items。source 为 news(Google News)、community(Hacker News)或 longform(Medium,id 前缀 md:,topic 为 medium:<tag>);engagement 仅社区条目有;类别条目 topic 为 genre:<name>。
限制与注意:每次 sweep 只运行一次,运行两次会把未整理的条目标记为已见;条目视为该次 sweep 的完整候选池,new_count 为 0 表示安静时段但仍需写简报;source_errors 非空时应在简报中说明降级来源,计数仅覆盖有响应的来源。