
目录摘要1. 引言 - 为什么需要每日日志1.1 每日日志的作用1.2 每日日志 vs 长期记忆1.3 日志系统架构2. 日志文件结构2.1 标准日志模板2.2 日志内容分类2.3 日志写入时机3. 日志写入规范3.1 写入原则3.2 任务状态标记3.3 时间戳使用4. 日志读取与查询4.1 读取当天日志4.2 读取历史日志4.3 语义搜索日志4.4 日志查询场景5. 日志维护策略5.1 自动归档流程5.2 归档目录结构5.3 日志清理规则6. 实战案例6.1 案例一任务跟踪6.2 案例二问题追踪6.3 案例三决策追溯7. 日志与其他系统的协作7.1 日志 MEMORY.md7.2 日志 语义搜索7.3 日志 Heartbeat8. 自动化日志管理8.1 自动创建日志8.2 自动归档脚本8.3 日志摘要生成9. 常见问题与解决Q1日志文件太多怎么办Q2如何避免日志内容重复Q3日志内容太长怎么办Q4如何保护日志中的敏感信息10. 总结10.1 核心要点10.2 最佳实践清单10.3 下一步参考资料摘要本文详细介绍 OpenClaw 的每日日志系统 memory/YYYY-MM-DD.md。从日志文件结构、写入时机、内容规范到自动化管理全面解析如何通过每日日志实现 AI Agent 的短期记忆能力。通过实际案例演示日志的创建、更新、查询流程帮助开发者构建具有时间连续性的智能应用实现任务跟踪和上下文恢复。1. 引言 - 为什么需要每日日志1.1 每日日志的作用作用说明示例任务跟踪记录当天完成的任务完成第41篇文章上下文恢复帮助 AI 恢复之前的工作状态昨天写到哪了问题记录记录遇到的问题和解决方案编译错误已修复决策追溯记录临时决策的原因为什么选择这个方案进度监控追踪长期任务的进展项目完成度 40%1.2 每日日志 vs 长期记忆生命周期记忆层次提取重要信息归档定期清理当天7天内超过7天长期记忆MEMORY.md每日日志YYYY-MM-DD.md历史日志删除活跃使用可检索归档/删除1.3 日志系统架构memory/ ├── 2026-04-13.md # 今天的日志 ├── 2026-04-12.md # 昨天的日志 ├── 2026-04-11.md # 前天的日志 ├── ... └── 2026-03-01.md # 更早的日志2. 日志文件结构2.1 标准日志模板# 2026-04-13 工作记录 ## 完成的任务 ### 1. [任务名称] - 具体内容 - 完成状态 - 相关链接 ### 2. [任务名称] - 具体内容 - 完成状态 ## 进行中的任务 - 任务A进度 60% - 任务B进度 30% ## 重要决策 - 决策内容 - 决策原因 ## 遇到的问题 - 问题描述 - 解决方案 ## 明日计划 - [ ] 待办事项1 - [ ] 待办事项2 ## 备注 - 其他需要记录的信息2.2 日志内容分类分类内容示例完成的任务当天完成的工作写完第41篇文章进行中的任务未完成的任务进度文章写到一半重要决策临时决策及原因选择方案A而非B遇到的问题问题和解决方案编译错误已修复明日计划下一步工作安排继续写第42篇备注其他信息用户心情不错2.3 日志写入时机任务完成问题遇到决策做出会话结束用户要求事件发生事件类型写入完成任务写入问题和解决方案写入决策写入会话摘要写入指定内容更新日志文件3. 日志写入规范3.1 写入原则原则说明正确示例错误示例及时性事件发生后立即记录任务完成后马上写第二天才记录准确性信息准确无误“完成第41篇文章”“写了篇文章”简洁性提取关键信息“修复编译错误缺少依赖”“遇到了一个编译错误找了半天…”可追溯包含必要上下文“选择方案A性能更好”“选择方案A”3.2 任务状态标记## 任务状态标记规范 ✅ 已完成 进行中 ⏳ 待开始 ❌ 已取消 ⚠️ 有问题3.3 时间戳使用## 带时间戳的日志 ### 2026-04-13 09:00 - 开始撰写第41篇文章 ### 2026-04-13 11:30 - 完成文章摘要和引言 ### 2026-04-13 14:00 - 用户反馈需要调整结构 - 已按要求修改4. 日志读取与查询4.1 读取当天日志# AI 内部操作read(memory/2026-04-13.md)4.2 读取历史日志# 读取昨天的日志read(memory/2026-04-12.md)# 读取最近7天的日志foriinrange(7):datetoday-timedelta(daysi)read(fmemory/{date.strftime(%Y-%m-%d)}.md)4.3 语义搜索日志# 搜索特定内容memory_search(query用户反馈,maxResults5)4.4 日志查询场景场景查询方式今天做了什么读取当天日志昨天写到哪了读取昨天日志最近的任务进度读取最近7天日志某个问题的解决方案语义搜索某个决策的原因语义搜索5. 日志维护策略5.1 自动归档流程否是是否是否每日检查日志超过7天?保留有重要内容?提取到MEMORY.md归档到archive/超过30天?删除保留归档5.2 归档目录结构memory/ ├── 2026-04-13.md # 最近7天 ├── 2026-04-12.md ├── ... ├── archive/ # 归档目录 │ ├── 2026-03/ │ │ ├── 2026-03-01.md │ │ ├── 2026-03-02.md │ │ └── ... │ └── 2026-02/ │ └── ...5.3 日志清理规则规则时间操作活跃期0-7天保留原位置归档期7-30天移动到archive/清理期超过30天删除重要内容已提取6. 实战案例6.1 案例一任务跟踪场景用户正在撰写系列文章需要跟踪进度日志记录# 2026-04-13 工作记录 ## 完成的任务 ### 1. 撰写第41篇文章记忆系统 - ✅ 完成摘要和引言 - ✅ 完成 MEMORY.md 章节 - ✅ 完成语义搜索章节 - ✅ 完成实战案例 - 文章下载链接https://... ## 进行中的任务 - 第42篇文章日志记忆系统 - 进度0% - 预计明天开始 ## 项目进度 - 总目标100篇文章 - 已完成41篇 - 完成率41%第二天恢复用户昨天写到哪了 AI读取 memory/2026-04-12.md 昨天你完成了第41篇文章记忆系统 当前项目进度是41/100完成率41%。 今天应该继续写第42篇日志记忆系统。6.2 案例二问题追踪场景用户遇到问题需要记录解决方案日志记录# 2026-04-13 工作记录 ## 遇到的问题 ### 问题Gateway 启动失败 - **现象**openclaw gateway start 报错 - **原因**端口 18800 被占用 - **解决方案** 1. 检查端口占用lsof -i :18800 2. 终止占用进程kill -9 PID 3. 重新启动openclaw gateway start - **状态**✅ 已解决 ## 参考资料 - Gateway 文档https://docs.openclaw.ai/gateway后续查询用户之前 Gateway 启动失败是怎么解决的 AI搜索 memory/ 根据 2026-04-13 的日志问题是端口 18800 被占用。 解决方案是 1. 检查端口占用lsof -i :18800 2. 终止占用进程kill -9 PID 3. 重新启动openclaw gateway start6.3 案例三决策追溯场景用户需要回顾之前的决策日志记录# 2026-04-10 工作记录 ## 重要决策 ### 决策文章采用 5 阶段结构 - **背景**需要规划 100 篇技术文章 - **选项** - A按主题分类10个主题各10篇 - B按难度递进5个阶段各20篇 - C按功能模块20个模块各5篇 - **选择**方案 B - **原因** 1. 由浅入深更符合学习曲线 2. 读者可以按阶段学习 3. 便于后续扩展 - **时间**2026-04-10 14:30后续追溯用户我们为什么选择 5 阶段结构 AI搜索 memory/ 根据 2026-04-10 的决策记录选择 5 阶段结构的原因是 1. 由浅入深更符合学习曲线 2. 读者可以按阶段学习 3. 便于后续扩展 当时考虑了 3 个方案最终选择了方案 B。7. 日志与其他系统的协作7.1 日志 MEMORY.md提取规则提取重要信息提供长期记忆每日日志MEMORY.md用户偏好重要决策项目上下文7.2 日志 语义搜索# 搜索日志中的特定内容resultsmemory_search(queryGateway 启动失败,maxResults3)# 结果可能来自多个日志文件# memory/2026-04-13.md# memory/2026-04-10.md# memory/2026-04-05.md7.3 日志 Heartbeat# HEARTBEAT.md # 心跳检查时更新日志 ## 检查项 - [ ] 更新今日日志 - [ ] 检查是否有遗漏的任务 - [ ] 记录当前进度8. 自动化日志管理8.1 自动创建日志# 每日自动创建日志文件importdatetimedefcreate_daily_log():todaydatetime.date.today()log_pathfmemory/{today.strftime(%Y-%m-%d)}.mdtemplatef#{today.strftime(%Y-%m-%d)}工作记录 ## 完成的任务 待记录 ## 进行中的任务 待记录 ## 明日计划 待记录 write(log_path,template)8.2 自动归档脚本#!/bin/bash# archive_old_logs.sh# 将超过7天的日志移动到归档目录findmemory/-name*.md-mtime7-execmv{}memory/archive/\;# 删除超过30天的归档findmemory/archive/-name*.md-mtime30-delete8.3 日志摘要生成# 从日志中提取摘要defgenerate_summary(log_content):从日志内容中提取关键信息summary{completed_tasks:extract_tasks(log_content,完成的任务),in_progress:extract_tasks(log_content,进行中的任务),decisions:extract_decisions(log_content),problems:extract_problems(log_content)}returnsummary9. 常见问题与解决Q1日志文件太多怎么办解决方案启用自动归档定期清理旧日志只保留重要内容的摘要Q2如何避免日志内容重复解决方案使用时间戳区分同类任务合并记录定期整理和去重Q3日志内容太长怎么办解决方案只记录关键信息使用链接引用详细内容定期提取摘要到 MEMORY.mdQ4如何保护日志中的敏感信息解决方案不记录敏感个人信息使用占位符替代敏感数据限制日志文件访问权限10. 总结10.1 核心要点要点说明及时记录事件发生后立即写入日志结构清晰使用标准模板组织内容定期维护归档旧日志提取重要信息语义检索使用 memory_search 快速定位10.2 最佳实践清单每天创建新的日志文件及时记录完成的任务记录问题和解决方案记录重要决策及原因定期归档旧日志提取重要信息到 MEMORY.md10.3 下一步第43篇OpenClaw memory_search语义搜索实战第44篇OpenClaw 记忆维护自动整理与归档第45篇OpenClaw 上下文管理Token 优化策略参考资料OpenClaw 官方文档OpenClaw GitHubAGENTS.md 日志系统说明