MemOptimizer (记忆优化器) 🧠
记忆压缩与统计工具 - 整合 Self-Improving 机制
自动扫描工作区的 memory 文件,统计 tokens 使用情况,执行压缩优化,并结合自我反思机制持续改进优化策略。
触发方式
手动触发
当用户说出以下关键词时自动激活:
- - 优化记忆
- 记忆优化
- 总结你自己
- MemOptimizer
- memopt
自动触发
- - 每日定时:每天上午 8:00 自动执行(UTC 时间)
- 执行后自动发送每日总结报告
核心功能
1. Token 统计与压缩
- - 扫描
memory/ 目录下所有 .md 文件 - 估算每个文件的 token 消耗(中文 2 字符/token,英文 4 字符/token)
- 自动识别冗长的记忆条目(>50 行)
- 生成摘要,保留关键信息
2. Self-Improving 整合 🆕
结合自我反思机制,持续优化记忆策略:
反思触发条件
| 触发场景 | 置信度 | 动作 |
|---|
| 用户指出"这个压缩太过了" | 高 | 记录到 INLINECODE2 |
| 用户说"保留更多细节" |
高 | 调整压缩阈值 |
| 多次压缩后用户要求恢复 | 中 | 标记为"过度压缩"模式 |
| 用户确认"这样压缩很好" | 中 | 推广为全局偏好 |
反思日志格式
CODEBLOCK0
学习演化路径
- 1. Tentative — 单次优化后观察用户反馈
- Emerging — 2 次相似反馈,可能模式
- Pending — 3 次反馈,请求确认
- Confirmed — 用户确认,永久偏好
- Archived — 90 天未使用,保留但停用
3. 每日总结报告(自动)
每天上午 8 点自动执行,包含:
报告内容
- 释放的 tokens 数量
- 总结的 tokens 数量
- 处理的文件列表
- CPU/内存使用率
- 磁盘空间
- 网络状态
- 活跃子 agent 列表
- 各 agent 任务进度
- 异常或警告
- 过去 24 小时执行的任务
- 成功/失败统计
- 耗时最长的任务
发送方式
- - 通过 Feishu 发送给用户
- 包含可交互的卡片(如平台支持)
- 附带详细日志文件链接
工具使用
mem_optimize - 执行记忆优化
CODEBLOCK1
返回格式:
CODEBLOCK2
mem_stats - 统计记忆使用情况
CODEBLOCK3
返回格式:
CODEBLOCK4
memoptimizedaily - 每日自动执行(内部工具)
由 cron 自动调用,执行完整优化并发送报告。
每日总结报告模板
CODEBLOCK5
优化策略
压缩阈值
- - 默认:50 行以上开始压缩
- 可调整:根据用户反馈动态调整
- 安全边界:保留标题和前 20 行
安全机制
- - 默认 dryRun:仅预览不修改
- 用户确认:执行实际压缩需确认
- 备份建议:重要文件建议先备份
- 可恢复:压缩内容可手动恢复
Self-Improving 循环
CODEBLOCK6
与 memory-qdrant 的协同
- - memory-qdrant:向量数据库,用于语义搜索和长期记忆存储
- MemOptimizer:文件压缩工具,减少 memory 文件的 token 消耗
两者互补:
- - qdrant 处理语义记忆
- MemOptimizer 处理文件存储优化
- 优化结果同步到 qdrant 用于长期学习
配置选项
可通过环境变量或配置文件自定义:
CODEBLOCK7
定时任务配置
自动执行时间
- - 时间:每天上午 8:00(UTC)
- 时区:UTC(可根据需要调整)
配置位置
CODEBLOCK8
禁用方法
如功能带来负担,可:
- 1. 编辑配置,设置 INLINECODE3
- 或删除 cron 配置项
- 或删除整个 skill 目录
未来扩展
- - [ ] 支持智能去重(语义相似度检测)
- [ ] 支持自动归档(30 天前的文件)
- [ ] 支持记忆导出/导入
- [ ] 支持记忆分类标签
- [ ] 支持多时区报告时间
- [ ] 支持报告模板自定义
MemOptimizer (记忆优化器) 🧠
记忆压缩与统计工具 - 整合 Self-Improving 机制
自动扫描工作区的 memory 文件,统计 tokens 使用情况,执行压缩优化,并结合自我反思机制持续改进优化策略。
触发方式
手动触发
当用户说出以下关键词时自动激活:
- - 优化记忆
- 记忆优化
- 总结你自己
- MemOptimizer
- memopt
自动触发
- - 每日定时:每天上午 8:00 自动执行(UTC 时间)
- 执行后自动发送每日总结报告
核心功能
1. Token 统计与压缩
- - 扫描 memory/ 目录下所有 .md 文件
- 估算每个文件的 token 消耗(中文 2 字符/token,英文 4 字符/token)
- 自动识别冗长的记忆条目(>50 行)
- 生成摘要,保留关键信息
2. Self-Improving 整合 🆕
结合自我反思机制,持续优化记忆策略:
反思触发条件
| 触发场景 | 置信度 | 动作 |
|---|
| 用户指出这个压缩太过了 | 高 | 记录到 corrections.md |
| 用户说保留更多细节 |
高 | 调整压缩阈值 |
| 多次压缩后用户要求恢复 | 中 | 标记为过度压缩模式 |
| 用户确认这样压缩很好 | 中 | 推广为全局偏好 |
反思日志格式
markdown
[日期] — 记忆优化
我的操作: 压缩了 3 个记忆文件,释放了 2500 tokens
结果: 用户批准了压缩
反思: 40% 的压缩率获得了良好反馈
经验: 40-50% 的压缩率对日常笔记是安全的
状态: ✅ 已推广为全局偏好
学习演化路径
- 1. 试探阶段 — 单次优化后观察用户反馈
- 浮现阶段 — 2 次相似反馈,可能模式
- 待确认阶段 — 3 次反馈,请求确认
- 已确认阶段 — 用户确认,永久偏好
- 已归档阶段 — 90 天未使用,保留但停用
3. 每日总结报告(自动)
每天上午 8 点自动执行,包含:
报告内容
- 释放的 tokens 数量
- 总结的 tokens 数量
- 处理的文件列表
- CPU/内存使用率
- 磁盘空间
- 网络状态
- 活跃子 agent 列表
- 各 agent 任务进度
- 异常或警告
- 过去 24 小时执行的任务
- 成功/失败统计
- 耗时最长的任务
发送方式
- - 通过飞书发送给用户
- 包含可交互的卡片(如平台支持)
- 附带详细日志文件链接
工具使用
mem_optimize - 执行记忆优化
javascript
mem_optimize({
dryRun: true, // true=仅预览(默认)
includeReflection: true, // 是否记录反思(默认 true)
compressionRatio: 0.4 // 目标压缩比(0-1)
})
返回格式:
json
{
status: success,
message: 已释放 1234 tokens,总结了 5678 tokens 记忆,
stats: {
freedTokens: 1234,
summarizedTokens: 5678,
filesProcessed: 5,
totalTokens: 15000,
compressionRatio: 0.42
},
reflection: {
logged: true,
pattern: compression_acceptable,
confidence: medium
},
dryRun: true
}
mem_stats - 统计记忆使用情况
javascript
mem_stats()
返回格式:
json
{
status: success,
totalFiles: 10,
totalTokens: 15000,
files: [
{
name: 2026-03-12.md,
tokens: 500,
lines: 45
}
]
}
memoptimizedaily - 每日自动执行(内部工具)
由 cron 自动调用,执行完整优化并发送报告。
每日总结报告模板
🧠 每日记忆优化报告 - [日期]
📊 记忆优化结果
─────────────────────
• 释放 tokens: 1,234
• 总结 tokens: 5,678
• 处理文件:5 个
• 压缩率:42%
🖥️ 服务器状态
─────────────────────
• CPU: 23% (平均)
• 内存:4.2GB / 16GB
• 磁盘:45GB / 500GB
• 网络:正常
🤖 多智能体状态
─────────────────────
• 活跃子 agent: 2
- mem-optimizer (完成)
- web-search (进行中)
• 无异常警告
📋 任务概览 (过去 24h)
─────────────────────
• 总任务:12
• 成功:11
• 失败:1
• 平均耗时:2.3s
📝 反思日志
─────────────────────
• 新增学习:1 条
• 确认偏好:0 条
• 归档旧模式:0 条
[查看详细日志]
优化策略
压缩阈值
- - 默认:50 行以上开始压缩
- 可调整:根据用户反馈动态调整
- 安全边界:保留标题和前 20 行
安全机制
- - 默认 dryRun:仅预览不修改
- 用户确认:执行实际压缩需确认
- 备份建议:重要文件建议先备份
- 可恢复:压缩内容可手动恢复
Self-Improving 循环
- 1. 执行优化
↓
- 2. 观察用户反馈
↓
- 3. 记录到 reflections.md
↓
- 4. 模式累积(3 次)
↓
- 5. 请求确认
↓
- 6. 更新全局偏好
↓
- 7. 下次优化应用新策略
与 memory-qdrant 的协同
- - memory-qdrant:向量数据库,用于语义搜索和长期记忆存储
- MemOptimizer:文件压缩工具,减少 memory 文件的 token 消耗
两者互补:
- - qdrant 处理语义记忆
- MemOptimizer 处理文件存储优化
- 优化结果同步到 qdrant 用于长期学习
配置选项
可通过环境变量或配置文件自定义:
javascript
{
compressionThreshold: 50, // 压缩阈值(行数)
maxSummaryLines: 20, // 摘要最大行数
defaultDryRun: true, // 默认预览模式
targetCompressionRatio: 0.4, // 目标压缩比
excludePatterns: [], // 排除的文件模式
reflectionEnabled: true, // 是否启用反思
dailyReportTime: 08:00 // 每日报告时间(UTC)
}
定时任务配置
自动执行时间
- - 时间:每天上午 8:00(UTC)
- 时区:UTC(可根据需要调整)
配置位置
yaml
~/.openclaw/config.yaml 或 agent 配置
cron:
- expression: 0 8
*
action: mem
optimizedaily
enabled: true
禁用方法
如功能带来负担,可:
- 1. 编辑配置,设置 enabled: false
- 或删除 cron 配置项
- 或删除整个 skill 目录
未来扩展
- - [ ] 支持智能去重(语义相似度检测)
- [ ] 支持自动归档(30 天前的文件)
- [ ] 支持记忆导出/导入
- [ ] 支持记忆分类标签
- [ ] 支持多时区报告时间
- [ ] 支持报告模板自定义