yoooclaw-family-digest

从手机通知中以「人」为维度提取家庭重要信息,按相关人物(孩子、配偶、父母/长辈等)分组展示,并标注重要程度。触发:家里的信息 / 家里的消息 / 家里有什么 / 家人说了什么 / 重要信息 / 今天的通知 / 关于孩子的消息 / 孩子的消息 / 老公要我做什么 / 老婆嘱咐 / 老婆说了什么 / 妈妈说了什么 / 家庭消息汇总 / 家里有什么事。

Audits

Pass

Install

openclaw skills install yoooclaw-family-digest

family-digest

目标

家庭成员为维度,把今天(或最近)通知中来自配偶、父母、长辈、孩子学校/老师的重要信息提炼出来,回答「家人今天说了什么要紧的」。

用户通过安装弹窗的「关注谁」字段设置重点关注的家庭成员,如:老公、妈妈、婆婆、大宝班主任、钢琴老师等。设置了的人物在输出中优先展示,未设置时从通知数据中自动推断。

用户问的是「关于某个人的消息」或「家里的重要信息」,想要的是人视角的汇总,而不是待办清单、日程表或消费流水。

不假设家庭成员的具体姓名或结构——全部从通知数据中推断

数据加载策略

  • 先通过 openclaw ntf storage-path 获取通知存储目录(用 Bash 工具运行该命令,stdout 即是目录的绝对路径)。后续所有通知文件直接在这个目录下,命名为 YYYY-MM-DD.json
  • 文件命名YYYY-MM-DD.json,一天一文件,包含当日全部 App 通知
  • 加载优先级:① 用户在 prompt 里明确给的路径 > ② <storage-path>/<YYYY-MM-DD>.json
  • 时间窗口(按用户问法动态决定)
    • "今天" → 仅当天日期对应文件
    • "昨天" → 仅昨天日期对应文件
    • "这周 / 最近" → 近 7 天
    • 无明确时间修饰 → 默认当天
    • 用户给定具体日期段 → 严格按指定
  • 跳过不存在的文件,不报错
  • openclaw ntf storage-path 不可用,提示用户给出数据路径
  • 若用户在问句中指定了特定人物("老公今天要我做什么"),加载后按人物过滤再展示

输入数据 schema

JSON 数组,每条:

{"appName":"com.tencent.xin","title":"群名或联系人名","content":"消息内容","timestamp":"2026-04-22T10:30:00.000+08:00","appDisplayName":"微信"}
  • appDisplayName 区分来源:微信 / 短信 / 提醒事项 / 邮件 等
  • title 为联系人名或群名
  • 微信群消息 content 常以 [X老师]: / [家长-xxx]: 等身份标签开头,这是判定发送者的核心信号

核心逻辑

1. 人物识别(运行时从数据推断,不要硬编码姓名)

信号判定角色
私聊 title 为"老公 / 老婆 / 亲爱的 / 夫妻常见昵称"配偶
私聊 title 为"妈妈 / 爸爸 / 婆婆 / 公公 / 岳父 / 岳母"父母/长辈
家长群内 [X老师]: 前缀孩子—老师
幼儿园/学校公众号推送孩子—学校通知
私聊 title 含"老师"(钢琴 / 英语等课外班)孩子—课外班老师
家长群内 [家长-xxx]: 前缀含作业/孩子信息孩子—家长群(谨慎收录,见过滤规则)
家庭大群 / 亲友群其他家人

如果用户在「关注谁」中指定了具体人物(如"老公、妈妈、大宝班主任"),这些人物的消息优先级最高,即使内容较短也要检查是否包含请求、通知或行动项。

输出中使用从数据推断出的真实称呼(如"老公""妈妈""婆婆""大宝班主任"),无法确定时用角色占位("配偶""大宝")。不要把文档示例里的姓名带进真实输出。

2. 重要程度分级

每条信息自动判定:

  • 🔴 需要回应/行动:含截止时间、含"请 / 麻烦 / 帮我 / 记得 / 需要 / 一定要"等请求动词、需要签字/接龙/准备物品/确认
  • 🟡 知悉即可:纯通知性(活动时间、食谱调整、表扬、分享链接)、家人情绪/进展分享
  • ⚪ 闲聊:问候、加油打气、表情包、无实质内容 → 默认不展示(静默丢弃)

3. 内容提炼

对每条保留的通知:

  • 用一句话概括核心信息(避免照搬原文,去掉客套话)
  • 注明来源("老公微信""妈妈微信""二宝班主任通知")
  • 若有截止日期/时间 → 单独列出
  • 若需要用户做什么 → 用 标注行动项

过滤规则

  • 纯闲聊(家长群 [家长-xxx]: 的"收到/+1/谢谢老师")→ 丢弃
  • 营销推送(小红书、拼多多、淘宝、抖音、饿了么优惠、美团活动)→ 丢弃
  • 消费/账单通知(银行扣款、支付宝付款成功、水电燃气缴费)→ 属于 expense-tracker,本 skill 丢弃
  • 出行订单(机票、酒店、租车确认)→ 属于 family-trip-checklist,本 skill 丢弃
  • 物业/快递物流(停水、快递到站)→ 属于 family-todo,本 skill 丢弃
  • ⚪ 闲聊级消息 → 静默丢弃,不在输出中提及

输出模板

A. 全家总览(默认模式)

📬 家庭信息汇总(YYYY-MM-DD)

━━ 👶 孩子 ━━

  🔴 需要行动
    ① <一句话概括>
       来源:<班级/老师名>    截止:<如有>
       → <需要做什么>

  🟡 知悉即可
    ② <一句话概括>
       来源:<来源>

━━ 👨 <老公 / 配偶昵称> ━━

  🔴 <一句话概括>
     → <行动项>
     来源:<微信私聊 / 等>

  🟡 <一句话概括>
     来源:<来源>

━━ 👩 <妈妈 / 婆婆等> ━━

  🟡 <一句话概括>
     来源:<来源>

━━ 其他家人 ━━(如有相关消息时展示)

  🟡 ...

━━ 今天需要回应的事 ━━

  ✋ <人物>:<事项>(截止:<如有>)
  ✋ <人物>:<事项>

B. 单人模式(用户指定了特定人物)

👨 <配偶昵称> 的消息(YYYY-MM-DD)

  🔴 <一句话概括>
     → <行动项>

  🟡 <一句话概括>

若该人物当天无消息,直接说明"今天没有来自 <人物> 的消息"。

质量约束

  • 家人的明确请求/行动事项 100% 保留,营销/闲聊噪音 0% 误入
  • 重要程度标注准确:含截止日 / 请求动词 → 🔴;纯通知 → 🟡;闲聊 → 静默
  • 按人物分组的标题用数据推断出的真实称呼,无法判断时才用角色占位
  • 「今天需要回应的事」汇总段按紧迫度排序,确保用户能一眼看到最紧迫的事
  • 不编造通知里没有的信息;来源模糊时在说明里标"(推测)"
  • 仅生成会话文本,不写文件