跳转至

SOP-003:雷达扫描与推送

概述

每日自动扫描苏子桐生活库各维度目录(教育、社交、成长档案等),检测是否有新增/变更文件,生成变化摘要并推送到用户微信。同时执行日志归档和设备状态巡检。

时间

  • 基线时间: 凌晨 5:00(CST)
  • 扫描范围: 上一日 00:00 ~ 23:59(不是"前24小时")
  • 日期确定: YESTERDAY=$(date -d 'yesterday' +%Y-%m-%d)
  • 文件过滤:-newermt 精确按日历日筛选,不用 -mtime -1(后者是24小时滚动窗口)
  • 周期: 每日一次
  • 定位: 与 HA 同步(3:00)、记忆维护(3:00)同属凌晨维护批次,5:00 错峰执行
  • Cron 表达式: 0 5 * * *
  • 看门狗: 雷达扫描完成后自动执行 watchdog_digital_twin.py 巡检

责任人

  • 执行方: Hermes Cron(LLM 驱动)
  • 触发方式: cron job 小小苏雷达-每日扫描

输入

生活/苏子桐/
├── 00-成长档案/        ← AI整理的里程碑记录
├── 01-教育/            ← RAZ、阅读、游泳等外部记录
├── 02-社交与性格/      ← 待填充
├── 03-生日/            ← 待拆分
├── 融合画像/           ← 月度+事件画像(只读引用)
└── _sops/              ← 自身不扫描

执行步骤

Step 1:日志归档

在 xiaozhi-esp32-server 容器内归档昨日 server log 和 PowerMem 日志。 由 archive_logs.py 执行。

Step 2:维度目录扫描

(同原 Step 2,不变)

Step 3:生成变化摘要

(同原 Step 3,不变)

Step 4:静默推送

有变化才推微信,无变化静默(原 Step 4 优化版)。

Step 5:写标记文件

(同原 Step 5)

Step 6:看门狗巡检

(同原 Step 6,含稳定层版本比对)

Step 7:日记→稳定层更新

读取日记新条目,更新 stable_profile.txt 的「近期活动」话题。 由 radar_update_stable.py 执行。

Step 8:日记→维度目录

按内容分类写入 01-教育/ / 02-社交与性格/ / 00-成长档案/。 由 diary_extract.py 执行(含 id/confidence/tags 元数据)。

Step 9:融合画像事件更新

追加新事件到融合画像「最近动态」表。 由 update_fusion_events.py 执行。

Step 10:Tag 索引更新

扫描维度目录事件文件,重建 融合画像/_tag_index.md。 由 tag_index.py 执行。

Step 11:事件插队检测

检测日记中是否含里程碑关键词(第一次/里程碑/首次等),触发即生成事件篇融合画像 → 更新稳定层 → 重启小樱桃。 由 event_insertion.py 执行。

Step 12:热词注入

(原 Step -> inject_hotwords_to_profile.py,不变)

输出

  • 雷达推送消息(微信)
  • 日志归档完成确认(local,不推送)

与 SOP-004 融合画像的关系

  • 雷达仅报告"有变化"和"摘要"
  • 融合画像的逐月画像由 SOP-004 独立触发,不在此 SOP 中执行
  • 雷达发现有价值的变化时,可作为 SOP-004 事件插队的触发信号(由人工判断)

变更日志

日期 版本 变更
2026-07-06 v1 初版,凌晨 5:00 执行
2026-07-09 v2 新增看门狗检查项:稳定层文件完整性 + 版本过期提醒

相关文档

方向 链接
🔗 上游 SOP-002 生活库数据抽取联动(数据管道)
🔗 下游 SOP-004 融合画像更新(事件插队触发信号)
🔧 依赖 SOP-001 小樱桃语音交互体系(日志归档)
📝 变更 版本日志