Memory 自动化——让它在你睡觉的时候,替你整理今天|卷卷养虾记 · 第八篇

张开发
2026/4/21 21:51:57 15 分钟阅读

分享文章

Memory 自动化——让它在你睡觉的时候,替你整理今天|卷卷养虾记 · 第八篇
有一天早上我醒来发现它已经工作了六个小时那是配好卷卷大概第一个月。我前一天晚上十一点睡的。第二天早上七点手机上有一条消息「早报已生成。昨日处理事项 12 条其中 3 条已完成2 条需要今日跟进。今日日历有 2 个会议第一个 10:00建议 9:45 前准备好材料。昨日风控数据已整理漏放率环比持平无异常。」我盯着这条消息看了一会儿。它在我睡觉的时候把昨天发生的事整理了一遍。把需要跟进的事标出来了。把今天的日程提前提醒了。把风控数据自动跑了一遍。我什么都没做。这就是自动化记忆系统的价值。不是让它更聪明是让它在你不在的时候也在认真工作。Cron 定时任务让 Agent 按时自己动OpenClaw 支持 Cron 表达式来触发定时任务。如果你没用过 Cron先看这张速查表表达式含义适合做什么0 7 * * *每天早上 7:00发送早报0 23 * * *每天晚上 23:00整理当日记忆0 9 * * 1每周一早上 9:00生成周报摘要0 */4 * * *每 4 小时一次异常监控巡检0 0 1 * *每月 1 日零点月度记忆压缩在 OpenClaw 里定时任务写在~/.openclaw/cron.yaml里# ~/.openclaw/cron.yaml schedules: # 每天早上 7:00 发送早报 - name: morning-briefing cron: 0 7 * * * task: 生成并发送今日早报 skill: morning-briefing channel: imessage # 发到哪个渠道 # 每天晚上 23:00 整理当日记忆 - name: daily-memory-consolidation cron: 0 23 * * * task: 整理今日所有对话和事项更新记忆文件 skill: memory-consolidator silent: true # 静默执行不发通知 # 每 4 小时巡检一次风控异常 - name: risk-monitor cron: 0 */4 * * * task: 检查风控指标是否有异常有异常立即通知 skill: risk-monitor alert_on_anomaly: true # 发现异常才通知 # 每周一早上生成周报摘要 - name: weekly-summary cron: 0 9 * * 1 task: 整理上周记忆生成周报摘要 skill: weekly-summarizer channel: feishu-group配置完之后这些任务就在后台自动跑了。你不需要做任何事。自动记忆整理的触发机制定时触发只是一种方式。还有两种触发机制同样重要触发机制一事件触发某些事情发生时自动触发记忆整理。event_triggers: # 对话结束后自动提取关键信息 - event: conversation_end condition: 对话时长超过 10 分钟 task: 提取本次对话的关键决策和待办事项 # 收到重要邮件时自动记录 - event: email_received condition: 发件人在重要联系人列表中 task: 摘要邮件内容记录到今日事项 # 文件被修改时自动更新相关记忆 - event: file_modified condition: 文件在 ~/work/projects/ 目录下 task: 记录文件变更更新项目进度触发机制二条件触发满足某个条件时自动触发。condition_triggers: # 记忆文件超过 50KB自动压缩 - condition: memory/today.md 文件大小 50KB task: 压缩今日记忆保留关键信息 # 待办事项超过 20 条自动整理优先级 - condition: 待办事项数量 20 task: 按紧急程度重新排列待办事项归档已完成项三种触发机制组合使用记忆系统才能真正「活」起来。「早报」系统每天醒来就收到昨日摘要这是我用得最频繁的自动化功能。早报 Skill 的逻辑不复杂但细节很重要。早报应该包含什么昨日摘要完成了什么、决定了什么、遗留了什么。不超过 5 条每条一句话。今日必做从昨日遗留 今日新增里筛出今天必须完成的事。不超过 3 条。今日日程今天的会议和约定按时间顺序列出标注需要提前准备的。数据快照昨日核心指标只看有没有异常。正常就一句话带过异常才展开说。早报 Skill 的关键配置# Skillmorning-briefing 触发每天 07:00Cron 触发 ## 执行流程 ### 第一步读取昨日记忆 读取 memory/daily/[昨日].md 提取完成事项、决策记录、遗留待办 ### 第二步读取今日日历 通过日历 API 读取今日日程 标注需要提前准备材料的会议 ### 第三步读取昨日数据 读取风控日报数据如果昨日已生成 判断是否有需要今日跟进的异常 ### 第四步生成早报 按模板生成早报字数控制在 200 字以内 原则能一眼扫完不需要仔细阅读 ### 第五步发送 发送到 iMessage 发送时间07:00 整不早不晚 ## 输出原则 - 没有废话每条信息都有用 - 异常信息用 ⚠️ 标注让我一眼看到 - 如果昨天什么都没发生就说「昨日无特殊事项」 - 不要为了显得有内容而凑字数最后一条原则是我加的。早期版本的早报每天都洋洋洒洒写一大段我反而不看了。现在的早报平均 150 字30 秒看完每天都看。记忆压缩怎么让长期记忆不失真这是整个记忆系统里技术含量最高的部分。问题是这样的每天的记忆文件会越来越大。一个月之后memory/daily/目录里有 30 个文件每个文件几十 KB。如果每次对话都要读这些文件上下文会撑爆。但如果不读Agent 就「忘了」一个月前发生的事。解决方案是分层记忆memory/ ├── today.md ← 今日实时记忆最详细 ├── daily/ │ ├── 2026-02-15.md ← 每日归档保留关键信息 │ └── ... ├── weekly/ │ ├── 2026-W08.md ← 每周压缩更精简 │ └── ... ├── monthly/ │ ├── 2026-02.md ← 每月压缩只保留重要结论 │ └── ... └── permanent.md ← 永久记忆核心偏好和重要决策压缩规则每天晚上把today.md压缩成daily/[今日].md保留做出的重要决策附简短背景、发现的重要问题附是否已解决、明确的待办事项附截止日期、对我偏好/习惯的新发现丢弃过程性的对话记录、已完成且无后续影响的小事、重复出现的日常信息、任何超过 3 句话才能说清楚的细节压缩比目标原文件的 20% 以内每周日晚上把七天的daily/压缩成weekly/保留本周的核心主题不超过 3 个、本周做出的重要决策、本周发现的重要问题及处理结果、下周需要跟进的事项丢弃单日的具体细节、已经完全解决的问题、没有后续影响的事件压缩比目标七天 daily 文件总量的 10% 以内防止失真的关键压缩时有一类信息绝对不能丢——数字和日期。「漏放率下降了」可以压缩成这一句。但「漏放率从 1.45% 下降到 1.12%发生在 2 月 15 日策略上线之后」这些数字和日期必须保留。模糊的描述会随着时间越压越失真。数字不会。异常监控让它在发现问题时主动叫醒你这是我作为风控人最在意的功能。正常情况下Agent 静默工作不打扰我。但如果发现了异常它要立刻告诉我。异常监控 Skill 的设计# Skillrisk-monitor 触发每 4 小时Cron 触发 ## 监控项目 ### 风控指标监控 检查以下指标是否超出正常范围 - 漏放率正常范围 [0.8%, 1.5%] - 误伤率正常范围 [0.5%, 2.0%] - 拦截量环比变化不超过 ±30% ### 系统健康监控 - 飞书 API 连接是否正常 - 记忆文件大小是否超过阈值 - 定时任务是否按时执行 ## 判断逻辑 正常所有指标在范围内 → 静默不发通知记录到巡检日志 轻微异常某项指标接近边界超出范围 20% 以内 → 记录到异常日志下次早报时提及 严重异常某项指标明显超出范围 → 立即发送通知说明 - 哪个指标异常 - 当前数值 vs 正常范围 - 可能的原因参考历史异常记录 - 建议的处理步骤 ## 通知格式 风控异常提醒 指标漏放率 当前值2.31%正常范围0.8%-1.5% 超出幅度54% 发现时间14:00 可能原因 1. 今日有新商户类别上线参考 1 月 8 日类似情况 2. 策略规则有变更 建议 → 检查今日是否有策略变更 → 查看新增商户类别的拦截情况关键设计原则不是所有异常都要叫醒你。轻微的波动记录下来早报里提一句就够了。只有真正需要人工介入的情况才发即时通知。通知太多你就开始忽略通知。通知太少真正的问题来了你不知道。这个阈值需要根据你的实际情况调整。我的经验是宁可漏报一次轻微异常也不要让严重异常的通知被淹没在噪音里。我的全自动化记忆维护系统完整配置把所有东西组合起来这是我现在实际在跑的配置# ~/.openclaw/cron.yaml完整版 schedules: # ── 每日任务 ────────────────────────── # 07:00 早报 - name: morning-briefing cron: 0 7 * * * skill: morning-briefing channel: imessage description: 生成并发送今日早报 # 12:00 午间巡检静默 - name: midday-check cron: 0 12 * * * skill: risk-monitor silent: true description: 午间风控指标巡检 # 18:00 下班前提醒 - name: eod-reminder cron: 0 18 * * 1-5 # 仅工作日 skill: eod-reminder channel: imessage description: 提醒今日未完成事项 # 23:00 记忆整理 - name: daily-consolidation cron: 0 23 * * * skill: memory-consolidator silent: true description: 整理今日记忆归档到 daily/ # ── 每周任务 ────────────────────────── # 周日 23:30 周记忆压缩 - name: weekly-compression cron: 30 23 * * 0 skill: weekly-compressor silent: true description: 压缩本周 daily/ 到 weekly/ # 周一 09:00 周报摘要 - name: weekly-briefing cron: 0 9 * * 1 skill: weekly-briefing channel: feishu-group description: 发送上周摘要和本周重点 # ── 每月任务 ────────────────────────── # 每月 1 日 00:30 月记忆压缩 - name: monthly-compression cron: 30 0 1 * * skill: monthly-compressor silent: true description: 压缩上月 weekly/ 到 monthly/ # ── 持续监控 ────────────────────────── # 每 4 小时风控巡检 - name: risk-monitor cron: 0 */4 * * * skill: risk-monitor alert_channel: imessage alert_on_anomaly: true description: 风控指标异常监控这套配置跑了三个月基本稳定。偶尔会有任务执行失败的情况通常是 API 连接问题。我在cron.yaml里加了一个全局配置global: on_failure: notify: true channel: imessage message: 定时任务 {task_name} 执行失败原因{error} retry: max_attempts: 3 interval: 5m # 失败后 5 分钟重试任务失败了会告诉我重试三次还不行才放弃。最好的助理是在你不在的时候也在认真工作的那种配好这套系统之后我的工作节奏变了。以前每天早上要花二十分钟「找状态」翻昨天的消息回忆昨天做了什么整理今天要做什么。现在早报已经帮我做完了。我醒来看一眼知道昨天发生了什么今天要做什么有没有需要立刻处理的事。然后开始工作。这二十分钟不是省下来了。是用在了真正需要我思考的事上。自动化不是偷懒。是把那些「本来就不需要人来做」的事交给不需要休息的那个。本篇小结→ Cron 定时任务是自动化的基础三种触发机制定时、事件、条件组合使用→ 早报要短200 字以内30 秒看完有用才发不凑字数→ 分层记忆今日→每日→每周→每月→永久每层压缩比约 20%→ 压缩时数字和日期绝对不能丢模糊描述会失真数字不会→ 异常监控要分级轻微异常记录即可严重异常才即时通知→ 任务失败要有兜底通知 自动重试不能静默失败下一篇渠道配置完全指南——WhatsApp、Telegram、Discord、iMessage哪个适合你卷卷养虾记 · 持续更新中

更多文章