tech-news-brief

Polar Sponsor
爱发电 赞助
.NET 9.0

按时效筛选最新5天AI、大模型、半导体、前沿技术等中英文科技新闻,生成摘要并制作DOCX报告,邮件发送。

科技新闻简报

功能概述

科技新闻简报是一项面向实际任务的技能,主要用于将中文或其他外文科技新闻整理为符合"xx班"规范的原文稿、中文摘要和 DOCX 格式文件,发送至指定邮箱;单次对话内完成从发现到交付的全流程;

核心要点

  • "开始今天的科技新闻整理" / "最近有什么AI新闻" / "今天全球有什么科技动态";
  • "排序1-3下载整理" / "前3条下载整理" / "把第4条的摘要整理一下";
  • 全流程概览;

使用与执行

Phase 1:多维度分层搜索;核心原则:时效。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

结果检查与注意事项

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

科技新闻简报

将中文或其他外文科技新闻整理为符合"xx班"规范的原文稿、中文摘要和 DOCX 格式文件,发送至指定邮箱。单次对话内完成从发现到交付的全流程。

触发方式

"开始今天的科技新闻整理" / "最近有什么AI新闻" / "今天全球有什么科技动态"

"排序1-3下载整理" / "前3条下载整理" / "把第4条的摘要整理一下"

全流程概览

┌────────────────────────────────────────────────────────────────────────┐
│  Phase 1:       发现(多维度分层搜索 → 时效过滤 → AI 评估筛选 → 排序表)│
│  Phase 2–9:    下载 → 清洗 → 摘要 → DOCX → 打包 → 发送             │
│  输出:当日目录(md/docx) + zip 包(已发送至邮箱)                     │
└────────────────────────────────────────────────────────────────────────┘

Phase 1:多维度分层搜索

核心原则:时效性第一

本 skill 专为每日上报设计。新闻只有在时效期内才有上报价值,过期新闻不上报。

  1. 时效性是最高准入门槛:仅收录 5 天以内发布的新闻,超出此范围一律不收录(除非事件在近 5 天内有重大新进展)
  2. 时效性是最优先排序维度:同等重要性下,越新的新闻排位越靠前
  3. 搜索词强制包含时效锚点:"今日""近3天""近5天"等,确保搜索结果命中近期内容
  4. 新闻合并时保留最新时间节点:同一事件的多条报道,合并后以最新一条的发布时间为准

新闻源优先级(时效性优先视角)

时效性优先的场景下,来源的更新速度与命中率同等重要:

优先级 来源类型 时效性 用途
一级(时效首选) AI/科技商业媒体 ⭐⭐⭐⭐⭐ 最高 小时级更新,突发新闻第一落点
二级 官方权威 中高 政策、声明、官方动态
三级 综合门户科技版 ⭐⭐⭐ 高 补充覆盖、突发事件跟进
观点类 评论来源 ⭐⭐⭐ 中 理解背景,不作事实来源

搜索时优先命中一级来源,小时级更新的核心来源每次搜索都应优先使用。

多维度分层搜索(最少 8 次,建议 10-12 次)

时效性锚点必须出现在每次搜索中。每个搜索词末尾追加时效锚点,确保只命中 5 天以内的新闻。

时效锚点选择:今日 / 近3天 / 近5天 ——每日上报场景下任选其一,轮换使用效果更佳。

按以下 7 个维度 依次执行搜索,每个维度至少 1 次:

⚠️ 新闻筛选核心原则:仅收录与 AI/大模型/半导体/中国科技战略直接相关的科技动态。

  • ✅ AI 大模型发布与技术突破(GPT-5、Claude 4、Gemini 2、Llama 4、开源模型等)
  • ✅ 半导体/芯片动态(出口管制、产能突破、先进制程进展)
  • ✅ 中国科技产业政策(补贴、监管、扶持措施)
  • ✅ 中美科技博弈(芯片禁令、TikTok、数据安全、AI 竞争)
  • ✅ AI 安全与治理(AI 伦理、监管框架、安全事件)
  • ❌ 纯娱乐/游戏/消费电子新闻(非前沿技术)——不收录
  • ❌ 纯股市行情/纯商业并购新闻(无科技战略意义)

维度 A:中文最新 AI 与科技动态(时效优先 🔑)

这是时效性最强的版块,第一时间捕捉所有新发生的 AI 和科技事件。

搜索词:
- site:jiqizhixin.com 今日 AI OR 大模型
- site:qubitchina.com 今日 AI OR 模型
- site:huxiu.com 今日 AI OR 科技
- site:36kr.com 今日 人工智能 OR 大模型
- site:thepaper.cn 今日 AI OR 科技 最新

发现最新报道后,用 web_fetch 获取全文,提取所有事件线索。

维度 B:芯片与半导体(时效优先 🔑)

捕捉半导体产业动态——这是最需要时效性的维度。

搜索词:
- site:jiqizhixin.com 近3天 芯片 OR 半导体 OR 出口管制
- site:qubitchina.com 今日 芯片 OR 半导体
- site:huxiu.com 近3天 芯片 OR 算力
- site:36kr.com 今日 半导体 OR 芯片出口
- site:eeworld.com.cn 今日 芯片 OR 半导体
- site:chinadaily.com.cn 芯片 OR 半导体 [近3天]

维度 C:前沿技术(时效优先 🔥)

本维度为本项目重点关注方向,优先级靠前,与维度 B 同等重要。 涵盖:量子计算、脑机接口、合成生物、新能源技术、机器人、自动驾驶等前沿科技动态。

搜索词:
- site:jiqizhixin.com 今日 量子计算 OR 脑机接口 OR 机器人
- site:qubitchina.com 近3天 前沿技术 OR 量子 OR 生物计算
- site:huxiu.com 今日 量子 OR 新能源 OR 机器人
- site:36kr.com 近3天 自动驾驶 OR 人形机器人 OR 量子
- site:thepaper.cn 今日 前沿技术 OR 量子计算
- "量子计算" 最新 OR 突破 [近3天]
- "脑机接口" 最新 OR 进展 [近3天]
- "人形机器人" 最新 OR 发布 [今日]
- "自动驾驶" 最新 OR 进展 [近3天]

维度 D:AI 大模型发布与技术进展(时效优先)

搜索词:
- site:jiqizhixin.com 今日 大模型 OR GPT OR Claude OR Gemini
- site:qubitchina.com 近3天 大模型 OR AI 发布
- site:huxiu.com 今日 模型发布 OR AI 进展
- site:36kr.com 今日 AI 模型 OR 发布
- site:thepaper.cn 今日 AI 大模型 最新
- "GPT" 最新 OR 发布 [今日]
- "Claude" 最新 OR 模型 [近3天]
- "Llama" 最新 OR 开源 [今日]
- site:deepmind.com blog [近3天]
- site:openai.com blog [近3天]

维度 E:产业政策与监管(时效优先)

搜索词:
- site:36kr.com 今日 科技政策 OR 监管 OR 补贴
- site:huxiu.com 近3天 监管 OR AI 法规 OR 数据安全
- site:gov.cn 今日 科技 OR AI 政策
- site:sastind.gov.cn 最新 科技政策 [近3天]
- "AI 监管" 最新 OR 政策 [近3天]
- "数据安全" 最新 OR 规定 [今日]

维度 F:国际科技博弈(时效优先)

搜索词:
- site:jiqizhixin.com 近3天 中美科技 OR 芯片禁令 OR TikTok
- site:qubitchina.com 今日 中美 AI OR 科技竞争
- site:huxiu.com 近3天 华为 OR 芯片限制 OR 出口管制
- site:36kr.com 今日 科技博弈 OR 中美竞争
- "芯片禁令" 最新 OR 进展 [近3天]
- "华为" 最新 OR 芯片 [今日]
- site:reuters.com AI China OR chip [近3天]

维度 G:学术与开源(时效优先)

搜索词:
- site:jiqizhixin.com 近3天 论文 OR arXiv OR 开源模型
- site:qubitchina.com 今日 顶会论文 OR 开源
- site:huxiu.com 近3天 GitHub OR 开源 OR 代码
- "arXiv" 最新 论文 AI [近3天]
- "开源模型" 最新 OR 发布 [今日]

交叉验证与时效过滤

初轮搜索完成后,立即执行时效过滤,然后检查是否有遗漏:

第一步:时效过滤(必须先做)

  • 所有搜索结果,逐一核实发布时间
  • 仅保留 **5 天以内(今日 + 近 3 天)**发布的报道
  • 超时报道一律不收录,除非该事件在 5 天内有重大新进展

第二步:交叉验证

  • 如果同一事件被 3+ 个不同来源提及 → 大概率是热点,深入搜索获取更多细节
  • 如果官方媒体(如新华社科技版)和商业媒体(如机器之心、量子位)的热点不同 → 两边都要覆盖,互相印证
  • 如果维度 C(前沿技术)有新进展 → 深入搜索,核实技术细节和战略影响

搜索关键词设计原则(反模式清单)

❌ 不要这样搜 ✅ 应该这样搜 原因
"AI 新闻 今天"(无来源限定) site:jiqizhixin.com 今日 AI 前者返回 SEO 聚合页,后者命中实时新闻
"大模型"(无时效锚点) "大模型" 最新 OR 发布 近3天 无时效锚点会混入历史报道
"科技新闻"(无来源+无时效) site:jiqizhixin.com 近3天 科技 二者缺一不可
搜索词中加具体年月日 用"今日""近3天""近5天" 日期限定过死会漏掉临近时间的稿
只用英文关键词搜 优先中文关键词 + site 限定 确保中文媒体来源优先
只搜新闻源首页 用 site 限定搜具体栏目 首页被 SEO 污染严重,栏目更精准
只搜 3 次就开始写 至少 8 次,覆盖 7 个维度,其中维度 C 前沿技术为重点 3 次搜索覆盖率不到 30%
收录超过 5 天的"老新闻" 一律过滤,仅收录时效期内的报道 过时新闻对每日上报无价值

时效性 + 重要性双重排序准则

两条铁律:

  1. 时效性是入场券:超出 5 天一律不收录
  2. 时效性是第一排序维度:同等重要性下,越新的新闻越靠前

第一步:时效过滤(入场门槛)

时间范围 是否收录 说明
今日(0-24 小时) ✅ 必录 最新报道,直接引用
近 3 天(24-72 小时) ✅ 录 有价值的近期报道,引用时标注发布时间
近 5 天(3-5 天) ⚠️ 慎录 仅当事件在此期间有重大新进展时才收录,标注"后续报道"
超过 5 天 ❌ 不录 一律不收录,不出现在报告中

第二步:重要性分级(时效过滤后,在时效期内按重要性排序)

信号 重要性等级 说明 示例
大模型发布 / AI 技术重大突破 ⭐⭐⭐⭐ 最高级 顶级模型发布,技术里程碑 GPT-5 发布、Gemini 2 超越人类基准
半导体/芯片重大突破(国产替代) ⭐⭐⭐⭐ 最高级 国产芯片突破性进展,绕过出口管制 中芯国际 7nm 量产、国产 GPU 发布
官方权威来源首发 + 多源确认 ⭐⭐⭐⭐ 最高级 政府官网/权威媒体首发 + 3+ 来源交叉 工信部政策文件、官方 AI 治理框架
芯片出口管制重大升级 ⭐⭐⭐ 高级 美对华芯片禁令重大升级,影响产业格局 新增实体清单、ASML 禁运扩大
AI 安全重大事件 ⭐⭐⭐ 高级 AI 系统导致重大事故或安全漏洞披露 LLM 严重越狱事故、AI 武器化争议
中美科技博弈实质性进展 ⭐⭐⭐ 高级 科技战关键节点 TikTok 法案、华为新限制、数据安全博弈
前沿技术突破(量子/机器人/新能源) ⭐⭐⭐ 高级 前沿技术首次公开或实用化进展 量子计算超越经典基准、人形机器人量产
AI 监管政策正式出台 ⭐⭐ 中级 正式法规/监管文件发布 AI 生成内容标识规定、数据跨境流动规则
产业合作与投资 ⭐⭐ 中级 重大并购、合作、投资 AI 芯片公司获数十亿美元融资
开源模型发布 / 学术顶会成果 ⭐⭐ 中级 开源生态重要事件 Llama 4 发布、GPT-4 架构论文发表
常规产品发布 / 公司动态 ⭐ 一般 常规更新,无重大技术事件性 普通版本更新、例行发布会
股市行情 / 纯商业报道 ⭐ 一般 无科技战略意义 股价涨跌、公司财报

第三步:时效性打破重要性(同等级内排序)

当同一重要性等级内有多条新闻时,按时效性排序:

今日 > 昨日 > 前日 > 近3天
(同重要性等级内,越新越靠前)

降权规则

情况 降级幅度 操作
自媒体/无署名报道 降 1 级 需交叉验证,标注"来源待核实"
仅有单一来源 降 1 级 标注"单源,待证实"
来自立场鲜明来源的独家报道 降 1 级 注意核实反方声音
预测性/前瞻性文章(非事件报道) 降 2 级 归入"值得关注"而非"重要事件"
来源网站打开失败/内容不可读 直接过滤 不收录,无法核实的不呈现

输出格式

按时效性优先 + 重要性分级双重排序,输出当日最新科技动态:

## 🔥 科技新闻日报(YYYY-MM-DD)

> 📌 时效说明:仅收录 **5 天以内**发布的新闻 | 搜索覆盖:维度 A/B/C/D/E/F/G

---

### 📍 今日最新(今日发布)

> ⭐⭐⭐⭐ 最高级 ——大模型发布 / 半导体突破 / 官方政策首发

1. **[新闻标题]**
   > 一句话摘要(不超过 50 字)
   > ⏰ 今日 HH:MM | 🔗 [来源名称](URL)
   > 📌 多家媒体报道:来源 A / 来源 B

> ⭐⭐⭐ 高级 ——AI 安全 / 中美博弈 / 前沿技术突破

2. ...

> ⭐⭐ 中级 ——监管政策 / 产业合作 / 开源模型

3. ...

> ⭐ 一般 ——常规动态

4. ...

---

### 📍 近期跟进(近3天发布)

> 5 天内有重大新进展的后续报道

5. **[新闻标题]**(后续报道)
   > 最新进展摘要
   > ⏰ X月X日 HH:MM(首次报道)→ 今日最新进展 | 🔗 [来源](URL)

---

### 📌 值得持续关注(可酌情收录)

> 智库报告、前瞻分析、5 天内出现新动态的重大事件后续

6. **[标题]**(值得关注)
   > 简要说明
   > 🔗 [来源](URL)

---
📊 本次共收录 XX 条新闻 | 搜索 XX 次 | 覆盖维度:A/B/C/D/E/F/G
📅 报道时间窗口:YYYY-MM-DD HH:MM 至 YYYY-MM-DD HH:MM(近 5 天)
⏰ 生成时间:HH:MM

去重与时效合并

  • 时效优先去重:同一事件被多家报道时,以最新一条的发布时间为准,合并为一条,引用最权威/最详细的来源
  • 在同一重要性等级内:越新的报道越靠前
  • 跨等级不合并:最高级和高级之间的新闻不因时效合并,保持重要性排序为主
  • 后续报道覆盖旧闻:若最新报道推翻或修正了早期报道,以最新为准,旧闻不出现在报告中
  • 优先引用中文媒体原文:中文媒体未报道时引用英文权威媒体并翻译
  • 来自立场鲜明来源的独家报道:注明来源立场,供用户判断,同时标注"单源,待进一步核实"

用户确认后进入 Phase 2。 数量控制:默认处理前3条,用户可指定不同数量。

Phase 2:下载原文

两条下载路径

路径 A(browser MCP)为主,路径 B(Firecrawl)为 fallback。 每条新闻从 URL 开始,先走路径 A,失败才走路径 B。成功即停,不继续尝试后续路径。

路径 A:browser MCP(主路径,所有来源均用此方案)

中文站大量使用 Vue/React 动态渲染,直接请求正文仅能获取 20-30%;browser MCP 返回完整 DOM,是唯一可靠的下载方案。

操作流程:

browser_tabs(action="list")           # 1. 检查当前 tab 状态,避免重复开 tab
browser_navigate(url="")          # 2. 导航到目标页(自动等待页面 load)
browser_cdp(method="Runtime.evaluate", # 3. 提取正文文本
    params={
        "expression": "document.body.innerText",
        "returnByValue": true
    })

操作规范:

  1. browser_navigate 会自动等待页面 load 事件,无需额外 wait
  2. 正文文本从 Runtime.evaluate 的 result.result.value 字段获取
  3. 若正文不足 300 字,用 browser_scroll(direction="down") 滚动后重新提取(最多滚 3 次)
  4. 若正文仍不足 300 字,用 browser_take_screenshot(fullPage=true) 辅助人工判读
  5. 提取标题、发布时间、正文文本后,关闭 tab 或复用 tab 继续下一条

正文质量判断:

  • 300 字以上 → 质量合格,进入 Phase 3
  • 不足 300 字 → 滚动重试,仍不足则换路径 B

重试机制: 每个 URL 最多尝试 2 次路径 A,第 2 次间隔 10 秒后重试,仍失败则切换路径 B。

注意: browser_snapshot 返回 accessibility tree,不用于提取正文。正文提取必须用 browser_cdp + Runtime.evaluate。

路径 B:download.py(Firecrawl,仅 fallback)

Firecrawl API 额度有限,非必要不调用。 仅当路径 A 连续失败 2 次时才使用。

python3 scripts/download.py  <输出文件路径>

输出文件为 *-temp.md,内容已初步清洗,但仍需经过 Phase 3 字数门槛检查。

API Key 从环境变量 FIRECRAWL_API_KEY 读取。import json 必须在脚本顶层,不得放在函数内部。

download.py 输出格式(stdout):

  • 第一行:字数统计: XXXX 字
  • 第二行:下载成功: <路径>

英文源仅用于交叉验证,不进入最终输出。

Phase 3:字数门槛检查

读取 Phase 2 获取的正文(路径 A 为 Runtime.evaluate 返回的文本,路径 B 为 *-temp.md),Agent 统计正文字数:

  • 不足 300 字:跳过,不生成摘要,告知用户原因。被跳过的文章若存在残留摘要文件,必须主动删除。
  • 满足 300 字以上:进入 Phase 4。

Phase 4:清洗正文

去除干扰内容,保留干净正文:

  • 页头导航、页脚、侧边栏
  • 图片说明(除非包含实质性文字信息)
  • 相关文章推荐、"Also on X" 推荐块
  • 广告、赞助内容
  • 原文中的外部链接(非本文 URL)

清洗后逐项确认清单:

  • 无页头导航 / 面包屑
  • 无页脚版权信息
  • 无 "Related Articles" / "Also on X" 推荐块
  • 无广告 / 赞助内容
  • 无图片说明文字(除非含实质性信息)
  • 无原文中的外部链接
  • 正文开头是事件内容,不是导语式铺垫

清洗结果不得包含 # 标题、## 正文 等 markdown 标题结构——正文直接写,不加任何节标题。

Phase 5:写入原文稿

第一步:创建当日目录

mkdir -p {REPORTS_DIR}/{YYYYMMDD}/

路径变量 REPORTS_DIR 来自环境变量(默认 /home/sml/workspace/InternetInformation)。

第二步:写入正式原文文件

{YYYYMMDD}xx班-科技新闻原文{序号}-{排序ID}.md

格式模板:

原文稿{序号}:
{中文标题}

{YYYY}年{M}月{D}日 【文/{作者},{来源}】

{清洗后正文段落}

原文链接:{URL}
  • 第一行:原文稿{序号}:(无其他标题符号)
  • 第二行:中文标题(保留原文)
  • 空一行
  • 第三行:{YYYY}年{M}月{D}日 【文/{作者},{来源}】(年全四位,月日均为实际数字)
  • 空一行
  • 正文段落(清洗后,无 markdown 标题结构)
  • 空一行
  • 末尾:原文链接:{URL}

排序ID 固定为 sml(xx班客户编号)。 序号 从 1 开始,按用户给出的排序依次递增。 路径 B(Firecrawl)场景:写入后删除 *-temp.md,不留中间文件。

Phase 6:整理摘要

读取 Phase 5 写入的原文稿,自主撰写中文摘要,写入:

{YYYYMMDD}xx班-科技新闻摘要{序号}-{排序ID}.md

格式模板

拟投栏目:{栏目名}
事件时间:{YYYY}年{M}月{D}日
价值点:{约80字,五段式:[who]在[背景]下,仍[action],此举[judge本质],旨在[目的]}

{标题(≤30字,单行,不含换行符)}

{正文(一段,≤400字,含事件概述/关键论据/批判性分析/我方立场,不含换行符)}

{尾注:xx院系,xxx,15888888888(来源:{来源},{M}月{D}日)(xx学院,{YYYY}年{M}月{D}日)}

头部元数据

字段 规范
拟投栏目 5选1(找适合的):热点舆情/ 重要信息 / 建言献策 / 观点评论 / 战略博弈
核心筛选原则:仅收录与 AI/大模型/半导体/中国科技战略直接相关的新闻
- ✅ AI 大模型发布与技术突破
- ✅ 半导体/芯片动态(出口管制、国产替代)
- ✅ 中国科技产业政策(补贴、监管、扶持)
- ✅ 中美科技博弈(芯片禁令、TikTok、数据安全)
- ✅ AI 安全与治理
- ❌ 纯娱乐/消费电子新闻(非前沿技术)
- ❌ 纯股市行情/无战略意义的商业新闻
事件时间 新闻事件发生的具体日期(全位数字)
价值点 约80字,五段式结构

主标题(铁律 1)

  • 必须是纯文本单行,不得包含换行符 n
  • 字数(不含空格)严格控制在 30 字以内
  • 不要照抄原文,截断或改写均可

正文一段成文(铁律 2)

  • 正文(不含头部和尾注)不得包含任何换行符 n
  • 四层逻辑:
层次 内容 字数
① 事件概述 谁 + 何时 + 说了/做了什么 ~50字
② 关键论据 原文核心引述/报道细节 ~100字
③ 批判性分析 揭露本质/战略意图/内在矛盾 ~150字
④ 我方立场+总结 预测中国官方/产业反应 + 对中国科技战略环境影响 + 定调性总结 ~100字

涉华科技新闻摘要特别要求

若原文涉及以下情形,摘要正文必须将中国立场/中国应对作为独立信息点展开:

  • 中美芯片/AI 博弈相关事件
  • 国产替代重大突破或受阻
  • 中国科技政策调整
  • 中国大模型/AI 进展

尾注格式(单独成段)

固定格式,不得添加单位、联系人、电话等信息。 xx院系,xxx,15888888888(来源:{来源},{M}月{D}日)(xx学院,{YYYY}年{M}月{D}日)

铁律自检(写入前必须执行)

在写入摘要文件前,执行三项检查:

  1. 铁律 1 检查:主标题是否包含 n、字数是否 ≤30 字
  2. 铁律 2 检查:正文(不含头部和尾注)是否包含 n
  3. 字数检查:正文(不含头部和尾注)中文字数是否 ≤400 字

自检通过后才可写入文件。自检失败不得跳过,须修改至达标。

Phase 7:转换为 DOCX 格式

使用 scripts/md2doc.py,MD 文件在 {REPORTS_DIR}/{YYYYMMDD}/:

python3 scripts/md2doc.py {REPORTS_DIR}/{YYYYMMDD}/{文件名}.md

脚本根据文件名路由:

  • 含"摘要"→ parse_summary_md() + template-summary.docx
  • 含"原文"→ parse_original_md() + template-original.docx

模板文件 template-original.docx 和 template-summary.docx 必须存在于 scripts/ 目录。 依赖:pip install python-docx lxml。

Phase 8:打包并发送

8.1 打包

cd {REPORTS_DIR} && zip -j {YYYYMMDD}.zip {YYYYMMDD}/*.md {YYYYMMDD}/*.docx

8.2 发送

import smtplib, os
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

date_str = "{YYYYMMDD}"
zip_path = f"{REPORTS_DIR}/{date_str}.zip"
sender = os.environ.get("SMTP_SENDER")
passwd  = os.environ.get("SMTP_PASSWD")

msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = os.environ.get("SMTP_TO")
msg['Subject'] = f"科技新闻简报-{date_str}"
msg.attach(MIMEText("见附件,请查收。", 'plain', 'utf-8'))

with open(zip_path, 'rb') as f:
    part = MIMEBase('application', 'octet-stream')
    part.set_payload(f.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', f'attachment; filename="{date_str}.zip"')
msg.attach(part)

with smtplib.SMTP_SSL('smtp.qq.com', 465) as server:
    server.login(sender, passwd)
    server.send_message(msg)
print("邮件发送成功")

8.3 清理

发送成功后立即删除 zip 包:

rm {REPORTS_DIR}/{YYYYMMDD}.zip

仅删除 zip 包,保留 {YYYYMMDD}/ 目录下的原始 md/docx 文件。

文件命名规范

文件类型 命名格式
原文稿 {YYYYMMDD}xx班-科技新闻原文{序号}-{排序ID}.md
原文稿(DOCX) {YYYYMMDD}xx班-科技新闻原文{序号}-{排序ID}.docx
摘要文件 {YYYYMMDD}xx班-科技新闻摘要{序号}-{排序ID}.md
摘要(DOCX) {YYYYMMDD}xx班-科技新闻摘要{序号}-{排序ID}.docx

日期格式:YYYYMMDD,例如 20250624。 序号:用户给出的排序号(1=第1条,依次类推),前无横杠:科技新闻原文1-sml。 排序ID:固定 sml。 路径 B(Firecrawl)产生的 *-temp.md 在写入正式文件后立即删除,不保留。

执行规范

合并自原"注意事项"与"Pitfalls",去重后保留所有有效规则。

下载规范

  • browser MCP 为下载第一优先:所有来源均先用路径 A,成功即停。Firecrawl 仅作 fallback(额度有限)。
  • browser 重试:每个 URL 最多 2 次,第 2 次间隔 10 秒,仍失败则切换路径 B。
  • download.py 输出格式:stdout 第一行 字数统计: XXXX 字,第二行 下载成功: <路径>。
  • 下载文件体积:单篇 10KB-50KB 常见,读取时建议 limit 200-500 行。
  • 跳过的文章:字数不足 300 字时跳过,必须主动删除该序号对应的残留摘要文件。
  • 每次下载前:检查 scripts/download.py 是否存在,缺失则重建。

DOCX 规范

  • lxml 兼容性:Element._parent 已改为 .getparent(),需修改脚本两处。
  • 命令行参数:python3 md2doc.py ,MD 文件在 {YYYYMMDD}/,须用绝对路径。
  • 尾注误判正文:增加长度门槛(≤50字)+ 手机号强制尾注。

文件与工作流规范

  • ~ 路径展开:cron job 和脚本中 ~ 解析为 /home/sml/.hermes/profiles/scienlot/home/。必须用绝对路径。
  • Agent 中途中断:检查时只有 *-temp.md 没有正式文件,说明未跑完,须补跑。
  • 文件写入:摘要稿和原文稿的写入一律使用 write_file 工具,不要在 execute_code 中用 Python f-string 拼接中文正文。

Cron 规范

  • 已知问题:cron 任务经常只完成 Phase 2 就中断,不执行 Phase 3-8。修复方式:手动补跑。
  • .tick.lock 残留:上次超时中断未释放锁,rm ~/.hermes/profiles/scienlot/cron/.tick.lock。
  • 日志未保存:cron output 目录无日志文件时,检查 {REPORTS_DIR}/ 是否有生成文件。

推荐新闻源

详见 references/sources.md。

摘要写作规范

详见 references/writing-guide.md。

Linked Scripts

  • scripts/download.py — Firecrawl 网页抓取(额度有限,仅 fallback)
  • scripts/md2doc.py — MD 转 DOCX
  • scripts/smtp_send.py — 邮件发送(备用)
  • scripts/template-original.docx — 原文稿 DOCX 模板
  • scripts/template-summary.docx — 摘要稿 DOCX 模板

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习