Mzu News Briefing · 每日科技简报
多源新闻聚合与智能简报生成工具。覆盖 AI / 科技 / 财经 / 世界大事,按热度分级输出。
双搜索后端可选:Twitter/X(需 cookies 配置)或 Grok API(需 API Key)。两者至少配一个,以 Twitter 为优先。
快速开始
第一步:安装依赖
# 1. 安装 agent-reach(bird CLI + RSS 读取)
python -m venv ~/.agent-reach-venv
source ~/.agent-reach-venv/bin/activate # Windows: .\.agent-reach-venv\Scripts\activate
pip install agent-reach
# 2. 配置搜索后端(二选一)
# 选项 A:Twitter/X 搜索(优先,免费,需 cookies)
# → 见"配置 Twitter/X" 章节
# 选项 B:Grok API 搜索(需 xAI API Key)
# → 见"配置 Grok API" 章节
第二步:生成简报
# 告诉你的 AI 助手:
"帮我生成今天的新闻简报"
第三步:设置定时推送(可选)
# 每天 08:00 自动推送
openclaw cron add "0 8 * * *" "请按 mzu-news-briefing 技能生成简报并发送给我" --announce
# 每天 22:00 自动推送
openclaw cron add "0 22 * * *" "请按 mzu-news-briefing 技能生成简报并发送给我" --announce
配置指南
配置 Twitter/X(选项 A)
安装 bird CLI
npm install -g @steipete/bird
导出 Twitter Cookies
- 在 Chrome 中登录 x.com
- 按 F12 → Application → Cookies → x.com
- 复制
auth_token和ct0的完整值
保存认证信息
# 创建认证文件
echo "AUTH_TOKEN=你的auth_token值" > ~/.agent-reach-twitter.env
echo "CT0=你的ct0值" >> ~/.agent-reach-twitter.env
验证连接
bird --auth-token 你的auth_token --ct0 你的ct0 whoami
# 应返回你的 Twitter 用户名
加载认证(每次新 session 前)
# PowerShell(Windows)
Get-Content "~\.agent-reach-twitter.env" | ForEach-Object { $kvp = $_.Split('=',2); [Environment]::SetEnvironmentVariable($kvp[0], $kvp[1], 'Process') }
# Linux/macOS
export $(cat ~/.agent-reach-twitter.env | xargs)
配置 Grok API(选项 B)
获取 API Key
- 访问 https://x.ai/api 免费注册
- 免费额度含实时搜索
- 将 API Key 保存到
~/.grok-api-key
验证连接
curl https://api.x.ai/v1/models \
-H "Authorization: Bearer $(cat ~/.grok-api-key)"
使用方式
Grok API 集成在搜索工作流里,无需额外工具调用——在维度 C 直接用 Grok 模型搜索即可:
使用 Grok 模型,工具:web_search,搜索:
"OpenAI announcement" OR "Anthropic Claude" this week
内容优先级
| 层次 | 比重 | 覆盖范围 |
|---|---|---|
| 🥇 核心 | 50% | AI / 大模型 / Agent / 工具 / 研究 / 融资 |
| 🥈 延伸 | 30% | 科技行业 · 大厂动态 · 产品发布 · 平台新闻 |
| 🥉 补充 | 20% | 财经市场 · 股市 · 大宗商品 · 货币政策 |
| 🌍 背景 | 10% | 世界大事 · 地缘冲突 · 重大突发事件 |
军事新闻:少报,仅当事件对科技/财经/AI领域产生实质影响时入选。重大例外:若军事事件直接冲击科技供应链、能源市场或AI行业格局,可突破比重限制。
环境准备(Windows PowerShell)
每次执行简报前,必须设置 UTF-8 编码,否则 HTTP API 响应中文乱码:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
执行纪律(必须遵守)
⚠️ 本 skill 强制要求以下纪律,不遵守则简报质量不合格:
-
AIHOT + 维度 A-G 必须全部执行完毕,不得跳过、缩减或合并
- 第零步(AIHOT):必须调用
- 第一步(日期窗口):必须确认
- 第二步(维度 A-G):每个维度至少 1 次搜索,不得以"时间不够""差不多了"等理由跳过
- 总搜索次数:不得少于 8 次(不含 AIHOT 调用)
-
AIHOT 并行链路和维度 A-G 独立并行执行,互不依赖,不交叉引用直到第四步合并
-
搜索次数不足 8 次,不得输出简报
-
所有进入简报的条目,必须验证原文(AIHOT 摘要 ≠ 原文)
工作流程
第零步(并行):AIHOT 快速覆盖
与维度 A-G 并行执行,不等待,不依赖。
调用 AIHOT 公开 API(匿名免费,无需 key):
UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
# 拉当天精选(按发布时间倒序,take=50)
curl -sH "User-Agent: $UA" \
"https://aihot.virxact.com/api/public/items?mode=selected&take=50" \
| jq '.items[] | {title, source, publishedAt, url, category, summary}'
同时按 5 个分类拉当天日报(可选,作为补充参考):
# 当天日报(UTC 0点切片,北京时间 08:00 后才生成)
curl -sH "User-Agent: $UA" \
"https://aihot.virxact.com/api/public/daily" \
| jq '{date, lead: .lead.title, sections: [.sections[] | {label, n: (.items | length)}]}'
输出要求:
- 将 AIHOT 返回的条目按 category 分组整理
- 标注每条的
publishedAt(转换为北京时间) - 保留
url原文链接(供后续验证) - 不输出原始 API 参数名、端点路径、限流数字等基础设施细节
并行逻辑: AIHOT 结果与维度 A-G 的搜索结果平行收集,在第四步(合并)之前不交叉。AIHOT 负责广度,维度 A-G 负责验证和置信度。
第一步(必须优先执行):锁定日期窗口
⚠️ 本步不可跳过。未锁定日期就直接开始搜索是导致旧闻污染的主要原因。
在开始任何搜索之前,立即确认:
- 今天日期(YYYY-MM-DD)
- date_after 参数 = 今天日期的前一天(YYYY-MM-DD)
- 例如:今天是 2026-03-27 →
date_after: "2026-03-26"
- 例如:今天是 2026-03-27 →
- 每条搜索都必须携带
date_after,所有维度统一
错误做法:搜索词里写 "this week" / "March 2026" 而不带 date_after → 搜索引擎返回整月 SEO 聚合旧文
正确做法:搜索词 + date_after: "2026-03-26" → 强制只取昨天之后的新内容
第二步:多维度分层搜索
⚠️ Brave 并发限制:Brave Free Plan 同时只接受 1 个请求。
调用规则:
- 逐一串行执行,禁止并行调用 Brave
- 每次调用后等待 3 秒再继续(留 1 秒 buffer)
- 连续调用 4 次后,等待 10 秒再继续
- 触发 429 后,等待 30 秒再重试
- 如果需要超过 4 次 Brave 搜索,将其余搜索任务分配给 x_search(Grok)
维度 A:周报 / Newsletter 聚合(最优先)
信息密度最高,一篇覆盖 10+ 条新闻。
搜索词(均需携带 date_after 参数):
web_search("AI weekly roundup today", date_after="YYYY-MM-DD")
web_search("site:substack.com AI news", date_after="YYYY-MM-DD")
发现周报后,用 web_fetch 抓取全文,提取所有新闻线索。
实测有效周报源:
维度 B:社区热度信号(关键)
自下而上的社区爆款,泛搜索几乎无法触达。
搜索词(均需携带 date_after 参数):
web_search("site:news.ycombinator.com AI", date_after="YYYY-MM-DD")
web_search("site:reddit.com/r/MachineLearning AI today", date_after="YYYY-MM-DD")
web_search("site:github.com/trending AI", date_after="YYYY-MM-DD")
维度 C:AI 模型 / 大厂动态(重点)
搜索后端优先级:Twitter bird > Grok API > Brave 搜索引擎
# Twitter bird(已配置时)
bird search "@OpenAI OR @AnthropicAI OR @GoogleAI" -n 10
bird search "OpenAI announcement today" -n 5
# Grok API(无 Twitter 时)
使用 Grok 模型搜索:"OpenAI OR Anthropic OR Google DeepMind today"
# Brave(最后备用,所有搜索必须带 date_after)
web_search("GPT-5 OR Claude 4 OR Gemini 3 announcement", date_after="YYYY-MM-DD")
web_search("DeepSeek OR MiniMo OR Llama model release", date_after="YYYY-MM-DD")
固定页面抓取(web_fetch,每次都要当天日期过滤):
- https://releasebot.io/updates/openai — OpenAI 官方发布记录
- https://llm-stats.com/llm-updates — AI 模型发布追踪(GPT/Claude/Gemini)
维度 D:中文专业媒体
搜索词(均需携带 date_after 参数):
web_search("site:36kr.com AI 大模型", date_after="YYYY-MM-DD")
web_search("site:jiqizhixin.com AI", date_after="YYYY-MM-DD")
web_search("量子位 OR 机器之心 AI", date_after="YYYY-MM-DD")
实测有效固定信源:
- 36氪(36kr.com)
- 机器之心(jiqizhixin.com)
- 量子位(1baijia.com)
维度 E:财经 / 市场信号
搜索词(均需携带 date_after 参数):
web_search("AI startup funding today", date_after="YYYY-MM-DD")
web_search("AI IPO OR AI acquisition today", date_after="YYYY-MM-DD")
web_search("AI 融资 OR 人工智能投资 今天", date_after="YYYY-MM-DD")
推荐固定信源:
- https://aifundingtracker.com — AI 融资追踪
- Bloomberg AI 融资报道
- TechCrunch 融资板块
维度 F:监管 / 政策
搜索词(均需携带 date_after 参数):
web_search("AI regulation policy", date_after="YYYY-MM-DD")
web_search("AI law government today", date_after="YYYY-MM-DD")
实测有效固定信源:
- Reuters AI 政策报道
- Politico / Nextgov(美国政策)
- NYT AI 政策报道
维度 G:财经市场(补充)
当本日有重大市场事件时补充:
搜索词(均需携带 date_after 参数):
web_search("AI stocks market today", date_after="YYYY-MM-DD")
web_search("Nasdaq OR S&P 500 AI stocks", date_after="YYYY-MM-DD")
第三步:内容验证(关键,必须执行)
⚠️ 本步不可跳过。搜索摘要 ≠ 真实内容。SEO 聚合页会显示丰富摘要,但页面正文可能为空或无关。
每条拟进入简报的新闻,必须完成以下验证之一:
规则 A:官方/权威来源
- 来源为官方公告(OpenAI Blog、Anthropic 官网、Google Blog)、Reuters、BBC、36氪、机器之心等
- → 用
web_fetch抓取正文,确认摘要内容与正文一致
规则 B:SEO 聚合页降级为线索,不作主链
- 来源为未验证的 News 聚合站、AI 内容站(如 crescendo.ai 等)
- → 用
web_fetch抓取- 正文有实质内容且与摘要吻合 → 降级为线索,搜索该事件找更权威来源确认
- 正文为空/极少(如低于 500 字)/ 与摘要不符 → 丢弃该来源,不进入简报
规则 C:无法验证的高热度话题
- 若某事件仅有不可靠来源,但热度信号极强(3+ 个低质量源同时提及)
- → 搜索该事件找官方或权威媒体确认
- → 确认不了 → 降低热度等级或丢弃
规则 D:模型发布/版本升级类新闻 — 必须确认实际发布日期(新增,v1.1.2)
- 若某模型版本号(如 GPT-5.4)出现在媒体报道中,必须追溯到官方发布渠道确认实际发布时间
- 媒体报道日期 ≠ 模型发布日期(典型错误:今天媒体报道"GPT-5.4 发布",但模型已发布约两周)
- 验证方式:访问
releasebot.io/updates/openai或llm-stats.com/llm-updates确认实际版本发布日期 - 结论判断:
- 媒体报道日期 == 官方发布时间 → 当天新闻,可信
- 媒体报道日期 > 官方发布时间(模型已发布多日)→ 降级为"跟进讨论"或"行业动态",不列入当天高热度新闻
- 确认不了 → 降级或丢弃
验证失败的标准(满足任一即丢弃)
web_fetch返回正文低于 500 字- 页面内容与搜索摘要描述明显不符
- 来源域名无实质内容团队(可通过域名判断:纯聚合/SEO 农场特征)
- 属于已知的假新闻/谣言模式(如:凭空出现的"神秘模型发布")
- 模型发布类新闻无法追溯官方发布日期 → 丢弃
第四步:合并 — AIHOT 与维度 A-G 结果整合
AIHOT 精选和维度 A-G 搜索是两条独立链路,在合并前不做交叉引用。
合并步骤:
- 去重:AIHOT 的条目和维度 A-G 的条目做标题/URL 去重,保留最早或最权威来源
- 补漏:检查维度 A-G 中是否有 AIHOT 未覆盖的重大事件(如 AIHOT 精选中没有但维度 C 搜到的官方发布)
- 置信度标注:AIHOT 有但维度 A-G 没有独立验证的事件 → 降低热度等级;两者都有 → 提高热度等级
- 最终条目数:合并后总条目 10-15 条,高热 3-5 条
第五步:内容验证与交叉确认
⚠️ 所有进入简报的条目必须验证。AIHOT 的摘要 ≠ 原文,引用前请用 url 字段回原站核对。
- Newsletter 提到但初轮未覆盖 → 专项搜索
- 同一事件被 3+ 个不同来源提及 → 确认热点,深入挖掘
- 中文源与英文源热点完全不同 → 两边各保留最有代表性条目
- 搜索不足 8 次不开始输出(AIHOT 不计入搜索次数)
第六步:置信度标注与最终确认
- AIHOT 有但维度 A-G 没有独立验证的事件 → 降低热度等级
- 两者都有交叉验证 → 提高热度等级
- 更名项目视为同一事件(已在第四步处理)
- 最终确认进入简报的条目清单(10-15 条,高热 3-5 条)
第七步:热度分级
| 等级 | 信号 | 输出 |
|---|---|---|
| 🔥 高 | 3+ 来源确认 / 社区病毒传播 / 大厂官方公告 / 重大政策 | 深度分析段落(3-5 条) |
| ⚡ 中 | 2 个来源 / 有数据支撑 / 行业影响明确 | 标准摘要(5-8 条) |
| 💤 低 | 单来源 / 泛泛报道 / PR稿 | 仅标题或简短标注(3-5 条) |
第八步:输出语言
- 中文为主
- 专业术语首次出现:英文原词(中文翻译)
- 例:Large Language Model(大语言模型)
输出格式
📰 Mzu 每日简报 YYYY-MM-DD HH:MM
本班共收录 XX 条 | 搜索 XX 次 | 覆盖维度:A/B/C/D/E/F
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔥 高热度
1. [新闻标题](https://...)
来源:媒体名 | 时间:YYYY-MM-DD | 标签:#AI #Agent
摘要:(50字以内)
▶ 深度:为什么这条重要
· (分析点1)
· (分析点2)
⚡ 中热度
2. [新闻标题](https://...)
来源:媒体名 | 时间:YYYY-MM-DD | 标签:#大厂 #产品
摘要:(含关键数据)
💤 低热度(如有)
3. [新闻标题](https://...)
来源:... | 标签:...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AIHOT 覆盖:模型(X) 产品(X) 行业(X) 论文(X) 技巧(X)
维度覆盖:A(X) B(X) C(X) D(X) E(X) F(X)
搜索次数:X 次(不含 AIHOT 调用)
信息源质量分级
| 等级 | 来源 | 说明 |
|---|---|---|
| 🟢 权威/官方 | OpenAI Blog、Anthropic 官网、Google Blog、Reuters、BBC | 官方公告,直接使用 |
| 🟡 专业媒体 | TechCrunch、Ars Technica、36氪、机器之心、The Verge | 记者核实,可信 |
| 🔵 社区/UGC | Hacker News、Reddit/r/ML、GitHub Trending | 反映真实热度,需交叉验证 |
| 🟠 投资分析 | Motley Fool、The Fool、Seeking Alpha、Business Insider | 观点/预测为主,不是新闻事实,降级处理 |
| 🔴 聚合/SEO | 未具名的 News 聚合站、内容农场 | 摘要≠正文,不作主链 |
反模式清单
❌ "AI news today" → SEO 聚合页噪音
❌ 加具体年月日 → 偏向预测文章
❌ 搜索时不带 date_after 参数 → 搜索引擎返回整月旧闻合集
❌ 只根据搜索摘要就进入简报 → 未验证内容导致今日 GPT-5.4 假新闻事故
❌ 只搜 3 次 → 覆盖率不到 30%
❌ 信任 SEO 聚合页/内容农场的摘要 → 页面可能为空,摘要≠正文
❌ 把投资分析网站当新闻源 → Motley Fool、The Fool、Seeking Alpha 等网站的标题常含观点性表述("Huge News"、"Why X Matters"、"Is X Good?"),这类内容是分析观点而非新闻事实 → 降级处理或丢弃
❌ 把预期/预测当新闻 → "即将发布"、"预计"、"目标 Q2" 等表述不是已发生的事实,需标注为"行业动态"或"跟进"而非高热度新闻
✅ AIHOT 精选的摘要由 LLM 生成,引用前必须回原文 url 核对
✅ 每条搜索都必须携带 date_after: "YYYY-MM-DD"(今天的前一天)
✅ 至少 8 次搜索(AIHOT 不计入搜索次数)
✅ 用 date_after 约束时间窗口,而非依赖 "today"/"this week" 等模糊词
✅ 进入简报前,必须用 web_fetch 验证正文;正文不足 500 字或与摘要不符 → 丢弃
✅ 优先以官方来源/权威媒体为主链;SEO 聚合页只作线索,不作主链
注意事项
- 优先 HTTPS 链接
- 付费墙标注「需订阅」
- 不做主观评价
- 总条数 15-20 条,高热度占 3-5 条,中热度占 5-8 条,低热度占 3-5 条
- 全程保留来源标注,每条均可溯源
- 所有维度 A-G 必须全部执行完毕,不得以任何理由缩减或跳过