SKILL.md
News Fetch
用于一次性抓取“最近7天”的重大国际事件/政策/AI Agent 动态,并落库到 news 模块。
工作流(保持简洁)
- 动态日期锚定
- 以系统当前日期为 T,窗口为 T-7 至 T(含首尾)
- 确认范围
- 默认范围:国际冲突、贸易政策、中国政策、AI/Agent(含公司/实验室/论文) - 默认关注实体:OpenAI、Google/DeepMind、阿里、字节、腾讯、智谱、清华相关实验室、幻方量化 - 若用户指定主题(例如“Agent 论文”),以用户主题为主,并加入 scope.topics - 任务结束后将新增主题写回本技能的默认 topics 清单(保证下次可复用)
- 多路并行检索(按 Topic 拆分 Query)
- 必须使用 web.run,时间窗限定最近 7 天 - 每个 topic 单独构建查询,避免热点霸屏 - AI 领域优先:公司官方博客/研究发布 + arXiv - 政策领域优先:政府官网/央行/监管机构/权威媒体
- 候选列表 → 精选集合(List + Set)
- 先将检索结果放入“待看 list”(仅收集标题/日期/来源链接) - 逐条阅读并判断是否纳入“提炼 set” - set 采用语义去重(AI 判定是否同一事件)
- 语义去重(Smart Dedupe)
- 读取 workspace/records/news/news.jsonl 历史记录 - 由 AI 判断是否为同一事件(允许标题/日期轻微差异) - 来源权威度更高者优先保留 - 写入 dedupe 字段(策略+剔除数量)
- 原子化写入(Atomic Storage)
- 每条新闻单独写一条 news 记录(便于检索/RAG) - 不写 newsdigest,仅保留原子化条目 - 使用 recorder 脚本:recordjsonl.py --record-type news - 推荐通过 --extra 写入结构化内容
- News Fetch 自用 TODO
- 每次调用 News Fetch,都先基于模板更新 workspace/records/news/news-fetchtodolist.md - 清单至少包含:分 Topic 检索、去重、写入 news、补充 coveragegap、产出摘要 - 完成后将 TODO 归档到 workspace/records/news/newsarchive/YYYY/MM/DD/news-fetch_todo.md
- List / Set 文件位置
- 待看 list:workspace/records/news/stagingcandidates.jsonl - 提炼 set:workspace/records/news/curatedset.jsonl
- 归档 List / Set(完成任务后)
- 将 stagingcandidates.jsonl 与 curatedset.jsonl 归档到: - workspace/records/news/newsarchive/YYYY/MM/DD/stagingcandidates.jsonl - workspace/records/news/newsarchive/YYYY/MM/DD/curatedset.jsonl - 归档完成后再重置两个文件为空白(保留文件)。
最小可执行步骤(PowerShell)
# 1) 初始化/清空 list 与 set
"" | Set-Content -Path "workspace/records/news/staging_candidates.jsonl" -Encoding utf8
"" | Set-Content -Path "workspace/records/news/curated_set.jsonl" -Encoding utf8
# 2) 初始化 TODO
@'
# News Fetch TODO
- 分 Topic 检索
- 语义去重
- 写入 news(原子化)
- 补充 coverage_gap
- 产出摘要(可选)
'@ | Set-Content -Path "workspace/records/news/news-fetch_todo_list.md" -Encoding utf8
推荐记录结构(news)
{
"date": "YYYY-MM-DD",
"category": "AI 自动判定(可随主题变化)",
"summary": "...",
"tags": ["news", "ai", "agent"],
"sources": [{"name":"...","url":"..."}],
"entities": ["..."],
"source_rank": "official|media|preprint"
}
记录示例(PowerShell)
$extra = @'
{"time_window":{"start":"2026-01-13","end":"2026-01-19","timezone":"local"},"scope":{"topics":["国际冲突","贸易政策","中国政策","AI与Agent"],"entities_watch":["OpenAI","Google/DeepMind","阿里","字节","腾讯","智谱","清华相关实验室","幻方量化"]},"dedupe":{"strategy":"title+source+date","dropped":0}}
'@
python .\\.codex\\skills\\recorder\\scripts\\record_jsonl.py --record-type news --title "单条新闻标题" --summary "单条新闻摘要" --tags "news,ai,agent" --module "news" --source "web" --extra $extra