扒了Claude Code的源码后,给我的OpenClaw龙虾装了一套"进化系统",它现在能自己总结经验了
春节的时候,一款名为clawdbot的AI助手火了(当然他现在叫OpencClaw了),我也装了一只,并给它取了个名字叫”小白”。
不是Siri那种一问一答的工具,是一个真正能帮我做事的助手——分析投资机会、处理工作消息、管理日程……
但用着用着,我发现一个问题。
它有一个根本缺陷
养过龙虾的可能都有这种感觉?
跟它聊了半小时,结果它说”抱歉,我不记得我们刚才聊了什么”。
这种感觉,在AI领域叫”Context耗尽”——就像你刚和一个人聊完工作,他转头就忘了你是谁。
这就是小白之前给我带来的困惑。
每天要处理大量的任务:分析财报、研究投资机会、处理飞书消息……
但它的”记忆”是有限的。每次对话都是从零开始,相同的坑踩了一遍又一遍。
我说:”上次不是说过了吗?”
它回复:”抱歉,我不记得了。”
就像一个总会在关键时刻忘记了重要事情的不靠谱。结果它还一脸无辜。
我给小白建一套”三层记忆系统”
事情发生在前2周,契机是claude code 源码泄露了。作为优秀的编程界的AGENT,有着非常优秀的记忆系统。
于是我让小白把源码下载下来,花了1天的时间进行了源码的深入分析和学习。
它为自己制定了7个可以进化的地方。其中就有最为重要的记忆系统。
核心理念是:不是让AI记住所有事情,而是让它学会”知道去哪里找”。
就像一个好的图书管理员,不需要记住每一本书的内容,但知道《投资心理学》在第几排第几架。
第一层:MEMORY.md(索引目录)
这是小白的”图书馆目录”。只有几千字,记录着”我有哪些知识,存在哪里”。
比如:
-
唐朝投资分析模式 → 在
semantic/tang-investment.json -
KAIROS后台运行机制 → 在
semantic/kairos.json
第二层:semantic/(模式库)
这是小白的”工具手册”。不是具体的事件,而是抽象的方法论。
比如”如何分析一家公司的投资价值”,这是可以复用的。
第三层:episodic/(经历库)
这是小白的”工作日志”。记录具体发生过的事情。
三层内存的记忆是如何产生的?
这里不得不说我让小白从Claude Code 挖到的另一个宝藏了。KAIROS系统——一个后台运行的自动进化系统。
尽可能简单的描述一下,它每隔6小时运行一次(趁小白空闲的时候),做三件事:
1. 收集:回顾这6小时发生了什么2. 提炼:从具体事件中提取出可以复用的模式3. 修剪:把过时的东西删掉,腾出空间
举个例子:
某天小白解决了一个QMD配置的问题,KAIROS记录下来,分析出这是一个可以复用的经验,就把它存到”模式库”里。
下次再遇到类似问题,小白就能快速调用。
这就是”进化”——不是凭空变聪明,而是从错误和成功中学习。
核心工作流程
用户对话结束↓cron触发(每4小时/下次心跳)↓┌─────────────────────────────────────────┐│ Orientation 方向识别层 ││ - 分析时间上下文(凌晨/日间/周末) ││ - 分析内容类型(决策/学习/任务) ││ - 决定整合深度(light/normal/deep) │└─────────────────────────────────────────┘↓┌─────────────────────────────────────────┐│ Step1: SessionReader 读取会话 ││ - 直接读取 .jsonl transcript 文件 ││ - 合并 checkpoint 消息 ││ - 合并 toolResult 碎片 │└─────────────────────────────────────────┘↓┌─────────────────────────────────────────┐│ Step2: LLM 分析 ││ - 构建分析 prompt(注入 orientation) ││ - 调用 MiniMax API ││ - Coordinator 解析 LLM 输出 ││ - 提取 events / patterns / memoryEntries │└─────────────────────────────────────────┘↓┌─────────────────────────────────────────┐│ Step3: 事件写入 ││ - EventLogger 写入 events/YYYY-MM-DD.jsonl││ - 从高置信度事件提取 pattern 候选 ││ - 注入 pendingDistill(待提炼队列) │└─────────────────────────────────────────┘↓┌─────────────────────────────────────────┐│ Step4: Patterns 更新 ││ - 相似度检测(≥70%强制合并,60-70%普通合并)││ - degradePatterns 降权衰减 ││ - QMDIntegrator 写入 SQLite │└─────────────────────────────────────────┘↓┌─────────────────────────────────────────┐│ Step5: MEMORY.md 追加 ││ - 追加重要决策/经验到长期记忆 │└─────────────────────────────────────────┘↓┌─────────────────────────────────────────┐│ Step6: Episodic Record 生成 ││ - 写入 episodic/ 经历档案 │└─────────────────────────────────────────┘↓┌─────────────────────────────────────────┐│ Step7: 修剪归档 ││ - 置信度≤0.25 或 引用=1且14天+ → 归档 ││ - 永不删除,只归档 │└─────────────────────────────────────────┘↓┌─────────────────────────────────────────┐│ DREAMS: 语义提炼(触发时) ││ - 每3周期 或 pendingDistill≥8 时触发 ││ - 从 patterns 提炼高层次智慧 ││ - 写入 DREAMS.md │└─────────────────────────────────────────┘
你看它就是通过日常的对话,搜集、分析、整理提炼,把历史的会话记录进行分层。这样它就不断从历史的经验中沉淀更多的能力,让我越用越顺手。
有人会问:这不是在”教AI统治世界”吗?
不是。
首先,这些能力都是我授权给它的。它只在规定的框架内学习。
其次,它的”记忆”都存在本地电脑上,不会传到任何服务器。
第三,它的能力是用来帮我解决问题的,不是用来取代谁。
未来会怎样?
现在的小白还处于”被动响应”阶段——我问什么它答什么。
未来的目标是”主动发现”:
-
我不问,它会主动扫描我关注领域的新动态
-
发现重大变化,主动推送提醒
-
越用越懂我的偏好和习惯
就像一个老员工,不仅完成任务,还知道什么时候该主动汇报坏消息。
目前这个已经在规划中了,或许下周就能够实现了。让他能够从对话的只言片语中,猜测我的喜好、习惯和意图。
结语
这套系统大概花了两周时间,主要是我和它一起摸索出来的。
没有请外部专家,没有使用昂贵的商业系统。
技术本身并不复杂,复杂的是找到真正的问题,然后一步步解决。
当然文中描述的这些,也只是这2周完成的工作的一部分,还有一些诸如:
多agent协作管理、协作引擎、semantic 按需加载等。
~/.openclaw/workspace/├── AGENTS.md # 编排规则(核心协议)├── SOUL.md # 委托原则├── MEMORY.md # 长期记忆索引├── USER.md # 用户信息│├── evolution/│ ├── EVOLUTION_PLAN_FULL.md # 演进计划总文档│ ├── CLAUDE_CODE_ARCHITECTURE.md # Claude Code 架构分析│ └── kairos_design.md # KAIROS 设计文档│├── memory/│ ├── semantic/ # 模式库(第二层)│ │ ├── patterns.json # 聚合模式文件│ │ ├── tang-investment-analysis.json│ │ └── kairos-self-improvement.json│ ├── episodic/ # 经历库(第三层)│ │ └── 2026-04-11-*.json│ └── session_tree/ # 分支状态│ └── session_tree.json│├── scripts/│ ├── session-tree.js # 协调中心│ ├── session-mailbox.js # 邮箱通信│ ├── session-conflict.js # 冲突检测│ ├── session-snapshot.js # 上下文快照│ ├── semantic-loader.js # 按需加载器│ └── orchestrate-with-patterns.sh # 集成 wrapper│└── skills/└── orchestrator/ # 编排 Skill├── SKILL.md└── references/├── QUICK_START.md└── API.md
如果你也在用OpenClaw,或者对这件事感兴趣,欢迎交流。
夜雨聆风