1782 字
9 分钟
- 次浏览
信息流工具最该抓住的是截止事项
读前导览

日报除了告诉我今天有什么,还要把报名、申报、考试、答辩这类会过期的事项提出来。

正文
1782 字
阅读
9 分钟
结构
9 节
来源线索
GitLaughs/daily-open-source-brief
daily-open-source-brief:deadline-extractor daily-open-source-brief:deadline-enricher daily-open-source-brief:deadline-events

做每日简报时,我最容易低估的一类信息是截止事项。它不像热门项目或长文章那么显眼,但错过以后很难补。

它们不一定最有趣,但最容易过期。

学校通知、报名公告、申报入口、答辩安排、考试时间,看起来都只是信息流里的普通条目。不过它们和普通资讯不一样:错过了就直接失效。

所以 daily-open-source-brief 里后来加了一个很朴素的能力:从公开网页和 RSS 条目里抽取截止日期,把它们从“可读信息”提升成“需要处理的事项”。

公开仓库在这里:

https://github.com/GitLaughs/daily-open-source-brief

日报不是另一个收件箱#

如果日报只是把 GitHub、RSS、公开网页通知聚合到一起,它很容易变成另一个收件箱。

收件箱的问题通常不是没有信息,而是所有信息看起来都在同一层。一个有趣的开源项目、一条课程通知、一篇行业新闻、一个明天截止的报名入口,混在一起时,人会自然先看标题更吸引人的那几条。

但从行动价值看,截止事项应该被提前。

这也是我不想只靠摘要模型“顺便提一下”的原因。截止日期要先被结构化识别出来,再交给摘要、渲染、周报和后续提醒使用。

先用规则抓强信号#

截止日期抽取没有一上来就做复杂 NLP。第一版更接近确定性规则:

报名截止 2026年6月5日
答辩时间:6月10日
2026-06-05 前完成确认

这些模式并不覆盖所有自然语言,但它们覆盖了最值得优先处理的强信号。

代码里把标题、摘要和详情正文分成不同字段扫描。标题命中的置信度最高,摘要次之,详情正文再低一些。没有年份的 6月10日 会用当前年份补齐,但置信度会被压到较低水平。

这个取舍很实际:越靠近标题,越可能是通知的主时间点;越靠近正文,越可能是辅助说明。系统不需要假装它百分百理解,只要把置信度表达出来。

过期事项不能继续吓人#

截止事项还有一个特殊状态:过期。

如果今天是 2026-05-25,一条“报名截止 2026年5月1日”的内容即使被规则命中,也不该再作为高优先级提醒出现。它可以保留为历史记录,但不能继续占据日报最前面。

所以抽取结果会标记状态:

pending -> 还没过期,可以提醒
expired -> 已经过期,只保留证据

过期事项的置信度也会被压低。这样做不追求数学上精确,主要是让排序和展示更符合人的直觉:已经错过的事情应该进入回看,不该继续像待办一样催促。

抽取结果要进数据库#

只在当次日报里插入几行文字还不够。

截止事项应该进入独立的 deadline_events 表,至少保存这些字段:

  • 关联的原始 item。
  • 标题。
  • 事件类型。
  • 截止日期。
  • 置信度。
  • 来源链接。
  • 当前状态。

这样它才可以被后续流程复用。今天的日报可以置顶它,HTML 归档可以展示它,周报可以列出未来 7 天内的截止事项,后续也可以把高置信度事项同步到任务或日历。

如果只把它写进一段摘要文本,信息就死在当天了。结构化保存之后,它才变成可以查询、去重、提醒和回看的资产。

放在 enricher 阶段更合适#

在插件流水线里,deadline 不属于 collector。

collector 的职责是把外部来源抓回来,变成统一 item。截止日期抽取发生在 item 已经存在之后,它是对内容的派生增强,所以更适合放在 enricher 阶段。

大致流程是:

web/RSS item -> deadline enricher -> deadline_events -> digest/render/weekly

这个范围让系统更好维护。以后如果要换抽取规则、加地点识别、加日历同步,不需要改网页采集器,也不需要让摘要器承担结构化解析职责。

摘要要优先看行动项#

确定性模板摘要里,如果存在未过期的截止事项,会先生成“今日优先处理”。

这点很关键。很多信息流工具会把时间敏感内容和普通资讯混排,最后用户还是要自己扫一遍标题找重点。日报系统既然已经识别出了截止事项,就应该明确改变输出结构。

我希望打开日报时,第一眼看到的是:

哪件事有截止日期
什么时候截止
原始链接在哪里

而不是先看一堆“今日值得阅读”的内容,再从中猜哪些需要行动。

HTML 和周报也要复用同一份数据#

同一份 deadline_events 不只服务文本摘要。

HTML 归档里有单独的“截止事项”区域,展示事件类型、日期、标题、链接和置信度。周报则会拉取未来 7 天内的截止事项,放进“未来 7 天截止事项”。

这样每日和每周两个视角不会割裂:

今天:先处理当前看到的强时点事项
本周:回看未来 7 天还有哪些事项临近

它不是完整 GTD 系统,但已经比“我记得日报里好像看过”可靠很多。

测试覆盖的是行为边界#

这类功能最怕悄悄误抽取,所以测试除了函数能不能运行,还要覆盖几个范围:

  • 完整日期能抽取出正确 ISO 日期。
  • 只有月日时使用当前年份,并降低置信度。
  • 已经过期的事项会标记为 expired。
  • deadline 插件会把事件写入数据库。

这些测试不保证规则覆盖所有语言表达,但保证最重点的行为不会被后续重构破坏。

对个人自动化工具来说,这种测试尤其重要。因为它每天跑,很多错误不会立刻炸掉,只会悄悄把重点漏掉。

最后形成的经验#

做信息流工具时,“帮我总结”只是第一层需求。

更深一层是:

帮我判断哪些东西会过期
帮我把它们放到更靠前的位置
帮我保留原始链接和结构化记录
帮我在周报里再次提醒

这也是我越来越喜欢把个人工具做成小而确定的流水线。模型可以负责表达,但行动字段最好先被明确抽出来。

一个日报系统如果只会讲今天发生了什么,它只是阅读工具。

能把截止事项提出来,它才开始像一个日常助手。

信息流工具最该抓住的是截止事项
https://blog.sunmmyapi.xyz/posts/daily-brief-deadline-action-loop/
作者
Sun
发布于
2026-05-29
许可协议
CC BY-NC-SA 4.0

继续读

相关内容