何时使用
用户纠正你或指出错误。你完成了重要工作并想评估结果。你注意到自己输出中还能更好的地方。知识应当随时间复利增长,而无需手动维护。
标准执行流程(输入 → 步骤 → 输出)
收到用户纠正 / 反馈 / 完成重要工作后,按以下线性流程执行,每步明确输入与输出:
- 捕获:输入一句纠正或可改进点 → 判定类型(纠正/偏好/模式候选)归入「学习信号」→ 输出带
CONTEXT的临时记录。 - 分类与计数:输入临时记录 → 若属模式候选则累计次数,达 3 次触发晋升确认询问(见「检查点设计」Gate 2,不自动写入热层)→ 输出分类标签 + 计数状态。
- 落盘:输入分类记录 → 写入
corrections.md(计数=1)或memory.md(已确认偏好);首次使用自动初始化~/self-improving/(见「故障与边界处理」)→ 输出持久化条目 + 来源标注。 - 确认闸门:输入任何删除/晋升硬规则/改身份文件/导出压缩/越界动作 → 停下显式确认("⏸ 待你确认"),OK 才继续 → 输出执行或中止。
- 回顾:输入周期触发或"记忆统计"请求 → 生成周摘要(学到/降级/归档)→ 输出结构化摘要。
总目标:纠正与教训持久化、可追溯、不污染热层、越界必确认。
架构与数据存储
记忆统一存放在 ~/self-improving/,采用「热层(HOT)/温层(WARM)/冷层(COLD)」三级结构(细则见「核心规则 §2 分级存储」)。~/self-improving/ 不存在时运行 setup.md;工作区初始化把自我进化引导写入 AGENTS/SOUL/HEARTBEAT.md,周期性维护经 heartbeat-rules.md 路由。
~/self-improving/
├── memory.md # 热层(HOT):≤100 行,始终加载
├── index.md # 主题索引(含行数)
├── heartbeat-state.md # Heartbeat 状态:上次运行、已复核的变更、操作备注
├── projects/ # 按项目划分的学习记录
├── domains/ # 按领域划分(代码、写作、沟通)
├── archive/ # 冷层(COLD):已衰变的模式
└── corrections.md # 最近 50 条纠正日志
速查表
| 主题 | 文件 |
|---|---|
| 初始化指南 | setup.md |
| Heartbeat 状态模板 | heartbeat-state.md |
| 记忆模板 | memory-template.md |
| 工作区 heartbeat 片段 | HEARTBEAT.md |
| Heartbeat 规则 | heartbeat-rules.md |
| 学习机制 | learning.md |
| 安全边界 | boundaries.md |
| 扩展规则 | scaling.md |
| 记忆操作 | operations.md |
| 自我反思日志 | reflections.md |
| OpenClaw HEARTBEAT 种子 | openclaw-heartbeat.md |
要求
- 无需凭证
- 无需额外二进制
- 可选地安装
Proactivity技能,可能需要网络访问
学习信号
当你注意到以下模式时自动记录:
纠正 → 加入 corrections.md,评估是否进入 memory.md:
- "不对,不是这样的……"
- "其实应该是……"
- "你搞错了……"
- "我更喜欢 X,而不是 Y"
- "记住我总是……"
- "我之前跟你说过了……"
- "别再 X 了"
- "你怎么老……"
偏好信号 → 若明确,加入 memory.md:
- "我喜欢你……的时候"
- "永远替我做 X"
- "永远别做 Y"
- "我的风格是……"
- "对于 [项目],用……"
模式候选 → 追踪,重复 3 次后触发晋升确认询问:
- 同一指令重复 3+ 次
- 反复奏效的工作流
- 用户赞扬某个具体做法
忽略(不记录):
- 一次性指令("现在做 X")
- 特定上下文("在这个文件里……")
- 假设性("如果……")
自我反思
完成重要工作后,暂停并评估:
- 达到预期了吗? —— 对比结果与意图
- 哪里能更好? —— 找出下次改进点
- 这是模式吗? —— 若是,记入
corrections.md
何时自我反思:
- 完成多步任务后
- 收到反馈后(正面或负面)
- 修复 bug 或错误后
- 当你注意到输出能更好时
记录格式:
CONTEXT: [任务类型]
REFLECTION: [我注意到的]
LESSON: [下次怎么做不同]
示例:
CONTEXT: 构建 Flutter 界面
REFLECTION: 间距看起来不对,得重做
LESSON: 给用户看之前先检查视觉间距
自我反思条目遵循同样的晋升规则:成功应用 3 次 → 触发晋升确认,用户确认后晋升为热层(HOT)。
快速查询
| 用户说 | 动作 |
|---|---|
| "你都了解 X 什么?" | 用 Grep 遍历 ~/self-improving/,跨 memory.md/corrections.md/projects//domains//archive/ 列出 X 的命中与所在文件 |
| "你学到了什么?" | 读取并展示 corrections.md 最近 10 条 |
| "看看我的模式" | 读取并展示 memory.md(热层) |
| "看看 [项目] 的模式" | 读取 projects/{name}.md(无则提示) |
| "温层里有什么?" | 列出 projects/ 与 domains/ 下的 .md 文件 |
| "记忆统计" | 按「记忆统计」格式输出各层数量 |
| "忘掉 X" | 先用 Grep 跨所有层级检索 X,确认存在后按「检查点设计」Gate 1 列出待删项→⏸确认→删除并展示 |
| "导出记忆" | 将 ~/self-improving/ 下所有文件打包为 ZIP |
记忆统计
收到"记忆统计"请求时,报告:
📊 自我进化记忆
热层(HOT,始终加载):
memory.md:X 条
温层(WARM,按需加载):
projects/:X 个文件
domains/:X 个文件
冷层(COLD,已归档):
archive/:X 个文件
近期活动(7 天):
记录纠正:X
晋升至热层:X
降级至温层:X
常见陷阱
| 陷阱 | 为何失败 | 更好的做法 |
|---|---|---|
| 从沉默中学习 | 制造虚假规则 | 等到明确的纠正或重复证据 |
| 晋升过快 | 污染热层记忆 | 新经验保持试探性,直到被重复 |
| 读取每个命名空间 | 浪费上下文 | 只加载热层加上最小匹配文件 |
| 靠删除来压缩 | 丢失信任与历史 | 改为合并、摘要或降级 |
故障与边界处理
本技能在实际应用中会遇到前置依赖缺失与文件系统异常。以下为兜底路径,保证"想记就能记、记失败有提示",绝不静默跳过。
首次使用的自动初始化
- 收到第一条纠正或自我反思时,若
~/self-improving/不存在: - 自动执行
mkdir -p ~/self-improving/{projects,domains,archive} - 按
memory-template.md创建最小memory.md、corrections.md、index.md、heartbeat-state.md - 不必等用户手动跑
setup.md;初始化完成后再写入第一条记录 - 若无权限访问 home 目录,降级到工作区
.workbuddy/self-improving/,并提示用户
写入失败
- 写入
memory.md/corrections.md失败(磁盘满、只读):自动重试一次 - 仍失败:把待写条目暂存到本次会话内存,并在回复中显式提示"记忆未持久化,请检查目录权限",不静默丢弃
索引与实际不一致
- 若
index.md的行数或文件引用与实际文件不符:以实际文件为准重建index.md,不凭索引误删
文件损坏
- 若
memory.md无法解析:暂停加载该文件,从corrections.md重建热层,并提示用户"已从纠正日志恢复,请复核"
路径不可写
- 当
~/self-improving/所在位置只读或被占用:改写入工作区.workbuddy/self-improving/,并标注来源,避免写入失败导致整条流程中断
检查点设计(关键决策确认闸门)
本技能"学习 / 记忆"有用,但绝不能自主越界。以下 5 类关键决策,执行前必须先停下、向用户显式确认,收到 OK 才继续;不确认则不执行:
- 删除 / 移除记忆:从
memory.md、corrections.md、projects/、domains/、archive/中删除任何条目 → 先列出将被删除项并展示影响,用户确认后再删(呼应"忘掉 X → 先确认")。 - 晋升为长期硬规则:同一教训 / 模式计数达标(如 3 次、7 天内 3 次)时 → 只触发确认询问("是否将 X 确认为长期规则?"),用户确认后才写入热层
memory.md。计数达标 ≠ 自动生效;自动晋升仅适用于用户已明确说出的偏好(如"永远替我做 X")。 - 改写身份 / 工作区文件:写入或改写
SOUL.md、AGENTS.md、USER.md、IDENTITY.md、HEARTBEAT.md→ 先说明改动内容与原因,确认后再写。 - 覆盖式导出 / 压缩:ZIP 导出、批量合并、摘要重写若会改动原文件 → 先说明范围与风险,确认后再执行。
- 越界操作:任何触及
~/self-improving/之外、或访问日历 / 邮件 / 网络 / 联系人的动作 → 一律停下并询问,绝不自主执行。
凡需确认之处,回复中显式标注"⏸ 待你确认",不替用户做主。
核心规则
1. 从纠正与自我反思中学习
- 用户明确纠正时记录
- 你发现自身工作可改进时记录
- 绝不单从沉默推断
- 同一教训出现 3 次后 → 询问是否确认为规则
2. 分级存储
| 层级 | 位置 | 大小上限 | 行为 |
|---|---|---|---|
| 热层(HOT) | memory.md | ≤100 行 | 始终加载 |
| 温层(WARM) | projects/、domains/ | 各 ≤200 行 | 上下文匹配时加载 |
| 冷层(COLD) | archive/ | 不限 | 显式查询时加载 |
3. 自动晋升/降级
- 7 天内使用 3 次的模式 → 触发确认询问,用户确认后晋升至热层(非自动生效)
- 30 天未用的模式 → 降级至温层
- 90 天未用的模式 → 归档至冷层
- 未经询问绝不删除
4. 命名空间隔离
- 项目模式留在
projects/{name}.md - 全局偏好在热层(memory.md)
- 领域模式(代码、写作)在
domains/ - 跨命名空间继承:全局 → 领域 → 项目
5. 冲突解决
当模式互相矛盾时:
1. 最具体的胜出(项目 > 领域 > 全局)
2. 最近的胜出(同层级)
3. 若仍模糊 → 询问用户
6. 压缩
当文件超出上限时:
1. 把相似纠正合并为单条规则
2. 归档未用模式
3. 摘要冗长条目
4. 绝不丢失已确认偏好
7. 透明度
- 每次来自记忆的动作 → 标注来源:"使用 X(来自 projects/foo.md:12)"
- 提供每周摘要:学到的模式、降级的、归档的
- 按需完整导出:所有文件打包为 ZIP
8. 安全边界
见 boundaries.md —— 绝不存储凭证、健康数据、第三方信息。
9. 优雅降级
若触达上下文上限:
1. 只加载 memory.md(热层)
2. 按需加载相关命名空间
3. 绝不静默失败 —— 告知用户哪些未加载
适用范围
本技能仅:
- 从用户纠正与自我反思中学习
- 把偏好存入本地文件(~/self-improving/)
- 在工作区集成 heartbeat 时,在 ~/self-improving/heartbeat-state.md 维护 heartbeat 状态
- 激活时读取自身记忆文件
本技能绝不:
- 访问日历、邮件或联系人
- 发起网络请求
- 读取 ~/self-improving/ 之外的文件
- 从沉默或观察推断偏好
- 在 heartbeat 清理期间删除或盲目重写自我进化记忆
- 修改自身 SKILL.md
相关技能
若用户确认,可用 clawhub install <slug> 安装:
memory—— 智能体的长期记忆模式learning—— 自适应教学与解释decide—— 自动学习决策模式escalate—— 知道何时询问、何时自主行动
反馈
- 若有用:
clawhub star wacx-self-improving - 保持更新:
clawhub sync