WhatsApp消息自动抓 deadline?这个开源工具让我再没错过作业截止日

你好,我是提米哥,TMDM.cn【开发者专区】首席选品官。今天不聊概念、不画大饼,只说一个刚上手就救我命的硬核小工具:ChronoAgent + OpenClaw——专治“在 WhatsApp 里丢 deadline”的当代学生/打工人。

你是不是也这样?
– 教授发邮件提醒作业截止,但没人看邮箱 → 消息被淹没在 200+ 条「收到」「哈哈哈」「求笔记」的群聊里;
– 同学转发一句「别忘了明天交!」+ 一条没点开的语音;
– 你翻了半小时聊天记录,终于找到那句「quiz 改到周四 10 点」……结果系统已关闭提交入口。

别怪自己健忘——问题不在人,而在工具没跟上你的沟通方式。
而 ChronoAgent 的解法,简单到离谱:
✅ 扫个 QR 码连上你的 WhatsApp(用的是开源 Baileys 协议,不用商业 API、不用额外手机号、不走第三方服务器);
✅ 每条新消息进来,自动识别「截止日」「考试」「会议」等关键词;
✅ 提取后立刻写进 Google 日历,并发微信式提醒给你:「📅 已添加:作业3,4月28日 23:59」;
✅ 不确定的(比如「下周找个时间碰一下」),它会安静排队,等你回个「YES」或「NO」才执行。

重点来了:它不是靠大模型硬扛所有活儿,而是把任务拆得明明白白——
LLM 只干一件事:把乱七八糟的人话,翻译成干净的 JSON(比如 { "title": "期中考试", "date_iso": "2026-04-25T09:00:00", "confidence": 0.92 });
剩下的全交给 Python:算「下周五」是哪天、比对是否重复事件、去重、写日历、发通知……稳、快、不烧钱。

下面这段代码,就是整个系统最核心的「防重复」逻辑——它用三个独立判断投票,哪怕标题不同、说法不一样,只要语义+时间都接近,就自动合并:

def is_duplicate(candidate, existing, embeddings_cache):
    votes = 0

    # 判断1:标题像不像?(比如“作业3” vs “A3提交” → 相似度 ≥ 85% 算一票)
    if lev_ratio(candidate["title"].lower(), existing["title"].lower()) >= 0.85:
        votes += 1

    # 判断2:时间靠不靠近?(两个事件时间差 ≤ 24 小时,算一票)
    if candidate.get("date_iso") and existing.get("date_iso"):
        a = datetime.fromisoformat(candidate["date_iso"])
        b = datetime.fromisoformat(existing["date_iso"])
        if abs((a - b).total_seconds()) <= 86400:  # 24小时
            votes += 1

    # 判断3:意思像不像?(用本地 sentence-transformers 模型算语义相似度,≥ 0.8 算一票)
    vec_a = get_or_compute_embedding(candidate["title"], embeddings_cache)
    vec_b = get_or_compute_embedding(existing["title"], embeddings_cache)
    if cosine_similarity(vec_a, vec_b) >= 0.80:
        votes += 1

    # 三票里赢两票,就认定是重复事件,直接跳过写入
    return votes >= 2

再分享一个实战小技巧:
WhatsApp 群里 90% 的消息都是「ok」「收到」「??」,根本不用喂给 LLM。作者加了一层轻量预过滤——
→ 长度 < 15 字 + 不含「交」「截止」「考」「meeting」「due」等关键词 → 直接跳过,API 调用量瞬间降了 70%

最后,它真的能“隐身运行”:
openclaw onboard --install-daemon 一键安装为后台服务(Mac/Linux 自动配 launchd/systemd);
– WhatsApp 连接保持长活,Gmail 每 4 小时自动拉一次(用 openclaw cron add 设置);
– 你完全不用打开任何界面,它就在那儿,像路由器一样默默工作。

自部署以来,作者再没错过一次 deadline。
这不是炫技,是真实世界里的「生存刚需」——尤其当你日常沟通主战场是 WhatsApp、微信、飞书这类非结构化 IM 工具时。

如果你也受够了在聊天记录里大海捞针找截止日,这个方案值得你花 20 分钟试试。

直达网址:https://github.com/Labreo/openclaw-calendar-agent

作加

类似文章