关于 memory-curator
memory-curator 为 Agent 提供记录日常工作、保存会话和整理长期记忆的脚本与工作流,支持在 OpenClaw 工作区中记录、搜索和回顾记忆。
主要功能
- 01追加并查看每日记录
- 02搜索记忆文件和近期日志
- 03汇总会话 JSONL 文件
- 04将可复用知识整理到 MEMORY.md
适用场景
- 01记录工作中的决策与经验
- 02在会话重置前保存上下文
- 03回顾近期日志并查找重复模式
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ irangareddy/ openclaw-essentials --skill memory-curator安装后在 Claude Code 中输入/memory-curator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/templates/daily-log.mdMEMORY-template.mdreferences/extraction.mdorganization.mdpatterns.mdscripts/daily_log.pyextract_session.pysearch_memory.py详细介绍
Memory Curator
通过每日记录、会话保存和知识提取,为 Agent 系统化管理记忆。
快速开始
记录今天的工作
# Append to today's log
python scripts/daily_log.py \
--workspace ~/.openclaw/workspace \
--entry "Implemented user authentication with JWT" \
--category "Key Activities"
# Show today's log
python scripts/daily_log.py --workspace ~/.openclaw/workspace --show
搜索记忆
# Search all memory files
python scripts/search_memory.py \
--workspace ~/.openclaw/workspace \
--query "GraphQL"
# Search recent logs only (last 7 days)
python scripts/search_memory.py \
--workspace ~/.openclaw/workspace \
--query "authentication" \
--days 7
# Show recent logs
python scripts/search_memory.py \
--workspace ~/.openclaw/workspace \
--recent 5
提取会话摘要
# Generate summary from current session
python scripts/extract_session.py \
--session ~/.openclaw/agents/<agent-id>/sessions/<session-id>.jsonl \
--output session-summary.md
核心工作流
日终:记录活动
时间: 结束工作会话或切换上下文之前
步骤:
-
回顾已完成的工作:
- 实现的功能
- 修复的 Bug
- 做出的决策
- 总结的经验
-
追加到每日日志:
python scripts/daily_log.py \ --workspace ~/.openclaw/workspace \ --entry "Fixed race condition in payment processing - added mutex lock" -
为重要工作添加结构化条目:
## Key Activities - [14:30] Implemented user profile dashboard with GraphQL - [16:00] Fixed infinite re-render in UserContext - memoized provider value ## Decisions Made - Chose Apollo Client over React Query - better caching + type generation - Decided to use JWT in httpOnly cookies instead of localStorage ## Learnings - Apollo requires `__typename` field for cache normalization - React.memo doesn't prevent re-renders from context changes
参见: patterns.md,了解不同场景下应记录的内容
切换上下文前:保存会话
时间: 运行 /new、/reset 或结束对话之前
步骤:
-
提取会话摘要:
# Get current session ID from system prompt or openclaw status python scripts/extract_session.py \ --session ~/.openclaw/agents/<agent-id>/sessions/<session-id>.jsonl \ --output ~/session-summary.md -
检查摘要并编辑“关键经验”部分
-
保存到每日日志:
# Append key points to today's log cat ~/session-summary.md >> ~/.openclaw/workspace/memory/$(date +%Y-%m-%d).md -
如有需要,将关键上下文提取到 MEMORY.md:
- 不明显的解决方案
- 重要决策
- 值得记住的模式
每周回顾:提取知识
时间: 每周末(周五/周日)或每月
步骤:
-
搜索近期日志中的模式:
python scripts/search_memory.py \ --workspace ~/.openclaw/workspace \ --recent 7 -
寻找提取信号:
- 重复出现的问题(3 次以上)
- 代价高昂的经验(解决耗时超过 1 小时)
- 不明显的解决方案
- 值得复用的成功模式
-
提取到 MEMORY.md:
- 添加新章节或更新现有章节
- 采用问题—解决方案的格式
- 包含代码示例
- 补充适用场景
-
清理 MEMORY.md:
- 删除过时信息
- 合并重复条目
- 更新代码示例
- 必要时优化组织结构
参见: extraction.md,了解详细的提取模式
每日:快速记录
在工作期间快速捕捉上下文:
# Quick note
python scripts/daily_log.py \
--workspace ~/.openclaw/workspace \
--entry "TIL: DataLoader batches requests into single query"
# Decision
python scripts/daily_log.py \
--workspace ~/.openclaw/workspace \
--entry "Using Zustand for client state - simpler than Redux" \
--category "Decisions Made"
# Problem solved
python scripts/daily_log.py \
--workspace ~/.openclaw/workspace \
--entry "CORS + cookies: Enable credentials on client + server, Allow-Origin can't be *"
记忆结构
每日日志(memory/YYYY-MM-DD.md)
用途: 按时间顺序跟踪活动
内容:
- 已完成的工作(带时间戳)
- 做出的决策
- 解决的问题
- 总结的经验
保留方式: 确保近期日志可访问,可选择归档超过 90 天的日志
适用场景:
- “我在 [date] 做了什么?”
- “我什么时候实现了 X?”
- 会话历史
- 活动跟踪
MEMORY.md
用途: 精选的长期知识
内容:
- 模式和最佳实践
- 常见解决方案
- 应避免的错误
- 实用参考资料
组织方式: 按主题组织,而非按时间顺序
适用场景:
- “如何解决 X?”
- “Y 的模式是什么?”
- 最佳实践
- 可复用的解决方案
参见: organization.md,了解结构模式
记忆记录模式
记录哪些内容
始终记录:
- 关键实现决策(为何选择方案 X 而非 Y)
- 不明显的解决方案
- Bug 的根本原因
- 有理由说明的架构决策
- 发现的模式
- 错误及其修复方法
不要记录:
- 每个变更过的文件(git 会记录)
- 明显的实现细节
- 常规提交
- 特定于项目的临时变通方案
参见: patterns.md,了解完整的记录指南
何时记录
工作期间:
- 使用
daily_log.py --entry快速记录 - 做出决策时及时记录
- 问题解决后记录
日终:
- 回顾已完成的工作
- 整理重要条目
- 为明天补充上下文
周末:
- 将模式提取到 MEMORY.md
- 汇总经验
- 清理过时信息
知识提取
提取标准
符合以下条件时提取到 MEMORY.md:
- 某个模式出现 3 次以上
- 查找解决方案耗时超过 1 小时
- 解决方案不明显
- 未来可节省大量时间
- 适用于多个项目
- 调试某个错误的代价高昂
不要提取:
- 一次性修复
- 特定于项目的临时变通方案
- 显而易见的解决方案
- 变化迅速的 API
提取格式
问题-解决方案结构:
## [Technology/Domain]
### [Problem Title]
**Problem:** [Clear description]
**Cause:** [Root cause]
**Solution:** [How to fix]
**Code:**
```js
// Example implementation
预防:[如何避免] 上下文:[适用场景]
**See:** [extraction.md](references/extraction.md) for detailed extraction workflow
## Scripts Reference
### daily_log.py
Create or append to today's daily log.
```bash
# Append entry
python scripts/daily_log.py \
--workspace ~/.openclaw/workspace \
--entry "Your log entry" \
[--category "Section Name"]
# Create from template
python scripts/daily_log.py \
--workspace ~/.openclaw/workspace \
--template
# Show today's log
python scripts/daily_log.py \
--workspace ~/.openclaw/workspace \
--show
extract_session.py
从会话 JSONL 中提取摘要。
python scripts/extract_session.py \
--session ~/.openclaw/agents/<id>/sessions/<session>.jsonl \
[--output summary.md]
输出:
- 用户请求摘要
- 使用的工具
- 涉及的文件
- 关键经验模板
search_memory.py
搜索所有记忆文件。
# Search with query
python scripts/search_memory.py \
--workspace ~/.openclaw/workspace \
--query "search term" \
[--days 30]
# Show recent logs
python scripts/search_memory.py \
--workspace ~/.openclaw/workspace \
--recent 5
最佳实践
每日规范
- **开始一天:**回顾昨天的日志,规划今天的工作
- **工作期间:**快速记录决策和经验
- **结束一天:**整理重要条目,补充上下文
- **周末:**提取规律,清理 MEMORY.md
保留上下文
使用 /new 或 /reset 之前:
- 提取会话摘要
- 添加到每日日志
- 在 MEMORY.md 中保留关键上下文
完成重要工作后:
- 记录完成的工作
- 记录关键经验
- 记录后续步骤
知识整理
- 按主题组织——按领域分组,而非按日期
- 标题突出问题——以要解决的问题开头
- 使用便于搜索的语言——使用具体、易查找的术语
- 保持层级扁平——最多 2 层
- 提供代码示例——包含可运行的示例
参见:organization.md,了解详细的结构指南
故障排除
找不到过去的决策
-
先搜索每日日志:
python scripts/search_memory.py --workspace ~/.openclaw/workspace --query "decision keyword" -
搜索 MEMORY.md:
grep -i "keyword" ~/.openclaw/workspace/MEMORY.md -
搜索会话日志:
rg "keyword" ~/.openclaw/agents/<id>/sessions/*.jsonl
记忆文件越来越大
-
归档旧的每日日志(>90 天):
mkdir -p memory/archive/2025-Q1 mv memory/2025-01-*.md memory/archive/2025-Q1/ -
如果超过 1000 行,按领域拆分 MEMORY.md:
memory/domains/ ├── react.md ├── graphql.md └── database.md -
从主 MEMORY.md 添加链接:
## Domain Knowledge - [React Patterns](memory/domains/react.md) - [GraphQL Patterns](memory/domains/graphql.md)
不确定要记录什么
参见:patterns.md,了解全面的记录模式
**快速规则:**如果某件事花了你超过 15 分钟,或让你学到了不显而易见的东西,就把它记录下来。
模板
每日日志模板
位置:assets/templates/daily-log.md
结构:
- 关键活动
- 做出的决策
- 经验
- 挑战与解决方案
- 明日上下文
- 参考资料
MEMORY.md 模板
位置:assets/templates/MEMORY-template.md
结构:
- 规律与最佳实践
- 常见解决方案
- 经验
- 应避免的错误
- 有用的参考资料
提示
- 保持一致——每天记录,每周提取
- 简明扼要——未来的你需要的是事实,而不是故事
- 具体明确——“Apollo 缓存规范化” > “缓存问题”
- 使用代码——示例胜过解释
- 先搜索——提问前先搜索自己的记忆
- 果断提取——如果某种情况重复出现 3 次,就把它提取出来
- 定期清理——每月删除过时信息
- 版本控制——提交 MEMORY.md 的更改
与 OpenClaw 集成
使用钩子自动记录
创建一个钩子,自动记录重要事件:
// ~/.openclaw/hooks/memory-logger/index.js
export default {
name: 'memory-logger',
async onToolCall({ tool, agent }) {
if (tool === 'write' || tool === 'edit') {
// Log file modifications
await exec(`python scripts/daily_log.py --workspace ${agent.workspace} --entry "Modified ${tool.input.file_path}"`)
}
}
}
保留会话
添加到 AGENTS.md:
## Before /new or /reset
Always preserve context:
1. Extract session summary
2. Add to daily log
3. Save critical decisions to MEMORY.md
每周审查 Cron
openclaw cron add \
--name "weekly-memory-review" \
--at "Sunday 18:00" \
--system-event "Time for weekly memory review and knowledge extraction"