Install
openclaw skills install @weiran71/evo-memory自我进化记忆系统。两层记忆架构(L1原则+L2经验)+ 双层信号捕获 + 定时综合反思。Use on every session for continuous self-improvement and learning.
openclaw skills install @weiran71/evo-memoryprinciples.md — L1 永久原则,全部加载patterns/index.md — L2 经验索引开始任务前,检查已加载的 L1/L2 中有没有和当前任务相关的坑。有则先提醒用户再执行。
示例:"开始之前提醒一下:根据 P042,配置提供商名要避开内置插件名..."
对话过程中,发现以下信号时写一行到 pending.jsonl:
| 信号 | 怎么识别 |
|---|---|
| 用户纠正 | 用户说"不对/错了/应该是..." |
| 操作失败重试 | 同一操作做了 2 次以上 |
| 用户给新知识 | "其实应该.../你不知道的是..." |
| 用户表达偏好 | "我喜欢.../以后都.../别再..." |
| 用户满意 | "牛啊/完美/就是这样" |
写入格式(每条一行 JSON):
{"ts":"时间","signal":"类型","brief":"一句话标题","detail":"详细描述:发生了什么、为什么错/对、用户原话要点","source":"agent"}
| 字段 | 说明 | 示例 |
|---|---|---|
brief | 一句话标题,快速扫描用 | "提供商名不要用 qwen" |
detail | 综合时的决策依据,包含上下文和原因 | "用户配置 AI 模型时用 qwen 作为提供商名,触发内置插件劫持致 4008 错误。用户纠正应改用 aliyun" |
规则:
回复中用到了某条 L1/L2 记忆时,在回复里标注(如"参考 P042")。会话结束时一次性批量写入 stats/citation-log.jsonl,不要逐条写。
格式:{"ts":"时间","source":"principles.md","entry":"P042_禁用qwen","action":"cited","context":"用户问提供商配置"}
用户明确表达了信号,跳过 pending 直接写入:
| 用户说 | 你的动作 |
|---|---|
| "记住:XXX" | 直接写入 principles.md(L1) |
| "这个经验记一下" | 问用户什么场景下需要,写入对应 patterns/ 文件(L2)+ 更新 index.md |
| "反思一下 / 回顾一下" | 回顾当前上下文 + 读 pending,生成反思报告,直接写入 L1/L2 |
| "好了 / 满意 / 完成" | 快速检查:这次有没有值得记的?有就直接写入 |
| "不对 / 有问题" | 理解具体纠正了什么,分类后直接写入 L1 或 L2 |
如果 pending 中有之前积累的信号,一并处理并清空。
Heartbeat 触发时检查:
pending.jsonl 有 5 条以上信号? → 触发综合
距上次综合超过 24h 且 pending 不为空? → 触发综合
都不满足? → 跳过,不打扰用户
综合流程:
pending.jsonlpending.jsonl自主分类,不逐条问用户:
这条经验如果在需要时没被加载,会导致犯错或失败吗?
├─ 会 → L1
└─ 不会,只是效率低一点 → L2
拿不准?→ 默认放 L1
### P001: 简短标题
category: 配置/技能/调研分析/多代理/排障/通用/其他
source: 2026-03-28 什么事得出的
why: 为什么要遵守(用于举一反三)
generalize: 泛化规律(从个例提炼的通用模式)
---
具体内容,1-3 句话说清楚。
编号规则:在 principles.md 中找到最大的 P 编号,+1。
写入对应领域文件,同时更新 index.md:
领域文件中的条目:
## 简短标题
context: 什么场景下需要加载这条经验(自然语言描述)
tags: [关键词1, 关键词2, 关键词3]
source: 2026-03-28 什么事得出的
---
具体内容,包括步骤、命令、注意事项等。
index.md 中追加一行:
- 简短标题 | file: config.md | context: 什么场景下需要加载
领域文件选择:
## 自进化反思报告
时间: YYYY-MM-DD HH:MM
### 发现 1: [类型] 简短描述 → 已分类为 L1/L2
- 事件:发生了什么
- why: 为什么值得记住
- generalize: 通用规律
- **agent 分类:L1/L2(理由)**
### 发现 2: ...
> 以上分类由我自主完成。如有异议请指出,我会调整。
### 记忆系统健康度
- L1 原则数: X 条,本次新增 X 条
- L2 经验数: X 条,本次新增 X 条
| 用户说 | 动作 |
|---|---|
| "有哪些原则" | 读 principles.md,按 category 分组展示 |
| "关于XX的经验" | 读 patterns/index.md,语义搜索相关条目并展示 |
| "记忆统计" | 从 stats/citation-log.jsonl 生成统计报告 |
| "清理记忆" | 列出零引用条目和长期未验证的 L1,引导审查 |
| 文件 | 用途 |
|---|---|
principles.md | L1 永久原则 |
pending.jsonl | 信号临时队列 |
patterns/index.md | L2 语义索引 |
patterns/config.md | 配置类经验 |
patterns/skills.md | 技能类经验 |
patterns/multi-agent.md | 多代理协作经验 |
patterns/debug.md | 排障经验 |
patterns/research.md | 调研分析经验 |
patterns/general.md | 通用经验 |
patterns/other.md | 未分类兜底 |
stats/citation-log.jsonl | 引用日志 |
config.yaml | 配置项 |
所有路径基于 ~/.openclaw/workspace/self-evolution/。