
文章较长 感谢阅读 或者直接把这篇推文的链接扔给你的龙虾 最推荐看本文的「后话」这一部分
前言
如果你也用OpenClaw
也在不停按照X上各种大佬的架构给它「优化」 (三层架构/AI Agent的第N代/异步任务处理系统/龙虾的自我迭代...)
那你一定对下面的场景不陌生:
- 装了一堆架构,全是空文件夹📁
熟悉吗?那些架构确实被引进了 或者说 那些优质架构的目录确实被引进了
然后就没有然后了。 文件夹空空如也,Agent 根本不会主动往里面写东西。你以为搭好了骨架,结果只是搭了个空壳。
- 你的龙虾不会主动用这些架构
你告诉 🦞:「你整理一下我们的东西吧哈哈 记得用新架构噢」。
🦞 说:「好的!」
然后它继续把所有东西都塞进一个巨大的 context 里,完全无视你精心设计的架构。
为什么?我也不知道。
- 迭代?还是你在手动帮他传宗接代❓
你发现你的龙虾犯了同样的错误N次。
你忍无可忍 问他:
「你第几次犯这个错了 能不能记住 很烦啊」
又或者说
你打开记忆文件,手动添加一条规则。
这确实可能帮你的龙虾迭代了
问题是:你得自己去做这件事。
至少自己骂他一句,但往往只靠嘴说或给它改个记忆
它下次该犯还是犯
但你很忙。你本就有自己的事情要做。
慢慢地,这条教训就被遗忘了,龙虾继续犯同样的错误。
这样的循环继续下去...
慢慢地,记忆只进不出,越来越乱。
你的龙虾的记忆文件变成了这样:
# 每 2 小时扫描索引
0 */2 * * * cd ~/memory-like-a-tree/core && python3 indexer.py --watch
# 每天凌晨 2 点执行衰减
0 2 * * * cd ~/memory-like-a-tree/core && python3 decayer.py --run
# 每天凌晨 3 点执行清理
0 3 * * * cd ~/memory-like-a-tree/core && python3 cleaner.py --auto-cleanup
| 状态 | 置信度 | 说明 |
| ----- | ------- | -------- |
| 🌱 萌芽 | 0.7 | 刚创建的知识 |
| 🌿 绿叶 | ≥0.8 | 活跃使用的知识 |
| 🍂 黄叶 | 0.5-0.8 | 开始衰减的知识 |
| 🍁 枯叶 | <0.3 | 准备归档的知识 |
| 🪨 土壤 | 0 | 已归档,精华保留 |
灵感
三天前的我 和我的龙虾 也是这样
直到一次交流 或者说是一次我丢失了耐心
我说
我们搭了很多骨架,怎么让它长出血肉?我们现在有了很繁壮的树干了,是时候开始学会自己长出枝叶、变绿变黄凋零再发芽、一次次迎接四季更替和迭代了。
长出血肉先放一边。
树。
这个比喻瞬间打通了。
树不需要人告诉它「现在该长叶子了」--------它自己知道
树不需要人告诉它「这片叶子该掉了」--------它自己会掉
树有自己的生命周期:萌芽 → 绿叶 → 黄叶 → 枯叶 → 落叶归根 或是 被风吹走
如果龙虾们的记忆也能像树一样呢?
-
新知识像嫩芽一样萌发
-
常用的知识变得茂盛
-
不用的知识慢慢枯黄
-
过时的知识自然凋零,随风而去
-
凋零的知识化为养分,滋养新的成长
这就是 Memory-Like-A-Tree 的起源。
核心理念:置信度驱动的记忆生命周期
这部分比较枯燥且不具活人味 有兴趣可以读 没兴趣就算了哈哈
🌱 记忆的生命周期
每一条知识都有一个「置信度」分数 从0到1 用来描述叶片(知识/记忆)的新鲜程度
为了展现叶片的变化
我们用置信度来具体量化
📈 置信度怎么变化?
变绿(置信度上升):
-
知识被搜索命中:+0.03
-
知识被引用使用:+0.08
-
人工确认重要:设为 0.95
变黄(置信度下降):
-
P2 知识每天未访问:-0.008
-
P1 知识每天未访问:-0.004
-
P0 知识:永不衰减
(P:Priority 一种优先级)
说白了
不是你决定哪些东西重要
是使用频率决定
## 重要规则
- 不要用 rm -rf(2024-01-15)
- API 密钥不要硬编码(2024-01-20)
- 记得检查空指针(2024-02-01)
- 用户名不能有特殊字符(2024-02-15)
- 数据库连接要关闭(2024-03-01)
- ... (还有 200 条)
迭代
当你让你的龙虾种下和我们同样的一棵树
🦞会自动定时运行树生长脚本
https://github.com/loryoncloud/memory-like-a-tree
设置完成后,树会自动:
-
定期索引你的新知识
-
衰减长期不用的知识
-
归档低置信度的知识并提取精华
还有很多一并涵盖的理念
为了保障阅读体验 这里不多赘述
GitHub上的README写的非常详尽
整体技术架构
memory/
├── semantic/ # 空的
├── episodic/ # 空的
├── procedural/ # 空的
├──xxxxxxx #都是空的
└── working/ # 还是空的
实测
我在自己13个Agent组成的龙虾团队中使用了 Memory-Like-A-Tree
这是刚应用第一天的数据
最大的变化是
一切都变得「自然而然」了
树会帮助龙虾来迭代、来找到更珍贵的知识与记忆
安装与使用
目前已经在GitHub上开源:https://github.com/loryoncloud/memory-like-a-tree 这是我第一个较为正式的项目 欢迎 Star ⭐、Fork 🍴、PR 🔧!
如果你也在用OpenClaw
如果你也被记忆管理困扰
试试 Memory-Like-A-Tree。
让你的龙虾的记忆,像树一样生长。
``` ┌─────────────────────────────────────────────────────────────────┐ │ 🌳 Memory-Like-A-Tree │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 数据层 │ │ │ │ MEMORY.md (人类可读) + confidence-db.json (置信度) │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 处理层 │ │ │ │ indexer (索引) → search (搜索) → decayer (衰减) │ │ │ │ ↓ │ │ │ │ cleaner (清理/归档) │ │