Memory-Like-A-Tree
置信度驱动的 AI Agent 记忆生命周期管理,让知识像树一样生长与凋零
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
置信度驱动的 AI Agent 记忆生命周期管理,让知识像树一样生长与凋零
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
如果你长期和 AI Agent 打交道,一定遇到过这种尴尬:同一个问题,你昨天才和它讨论过,今天换个说法问,它就一脸茫然——"抱歉,我没有这个信息。"又或者,Agent 在一个项目里积累了大半年经验,下一个项目来了,全得从头开始,那些宝贵的经验教训像沙子一样从指缝溜走。
Memory-Like-A-Tree 正是为了解决这个痛点而生。它的核心理念简单而优雅:让知识像真正的树一样生长、凋零、化为养分。
开发者的灵感来自真实的自然现象。一棵真正的树:
这套自然机制解决了一个关键问题:哪些记忆该保留,哪些该淘汰? 交给置信度自动判断,无需人工干预。
项目采用本地文件系统 + JSON 数据库的轻量架构,所有数据存储在 ~/.memory-like-a-tree/ 目录下:
~/.memory-like-a-tree/
├── workspace/ # 工作空间(知识来源,唯一源)
│ ├── MEMORY.md # 长期记忆
│ └── memory/ # 按月份组织的记忆文件
├── data/ # 数据目录
│ ├── confidence-db.json # 置信度数据库
│ └── archive/ # 归档区
└── core/ # 核心代码
├── indexer.py # 索引器:扫描 workspace,建立置信度索引
├── memory_tree.py # 树管理:CRUD、状态查询、可视化
├── search.py # 搜索:全文 + 语义混合搜索
├── decayer.py # 衰减器:每日凌晨自动执行置信度衰减
├── cleaner.py # 清理器:归档低置信度记忆,提取精华
└── memory_tree_api.py # 统一 API:供 Agent 调用的 SDK
核心数据结构 confidence-db.json 记录每条记忆的置信度分值,通过 indexer.py 定期扫描 workspace 文件夹来更新索引。
每条记忆都有四个状态,通过置信度数值自动流转:
| 状态 | 置信度范围 | 含义 | 行为 |
|---|---|---|---|
| 🌿 绿叶 | ≥ 0.8 | 知识稳固可靠 | 正常提供使用 |
| 🍂 黄叶 | 0.5–0.8 | 知识开始衰退 | 降权但不丢弃 |
| 🍁 枯叶 | 0.3–0.5 | 知识接近遗忘 | 即将归档 |
| 🪨 土壤 | < 0.3 | 知识已归档 | 精华提取+存储 |
置信度的升降规则非常直观:被搜索到 → 置信度 +0.1;长时间不访问 → 每日自动 -0.02。
系统天然支持多 Agent 协作场景。通过配置 agents.yaml 可以为每个 Agent 定义独立 workspace,实现:
如果团队使用 Obsidian 作为知识管理工具,项目提供了 sync_workspace_to_obsidian.py 脚本,可以将归档的精华自动同步到 Obsidian Vault 的"03-精华库"目录,打通个人知识管理和 Agent 记忆管理。
系统设计了三个定时任务,确保"树"能够自主运转:
indexer.py --watch — 扫描新增/变更的记忆decayer.py --run — 执行置信度衰减cleaner.py --auto-cleanup — 归档低置信度记忆配置一次,长期自动运行。
# 仅需 Python 3.8+ 和 Git
git clone https://github.com/loryoncloud/Memory-Like-A-Tree.git
cd memory-like-a-tree
在 MEMORY.md 中用 Markdown 格式记录知识:
## [P0] 我的核心工作原则
<!-- TTL: never -->
1. 代码审查先看设计再看细节
2. 重要决策必须写 ADR
## [P2] 今天学到的技巧
<!-- TTL: 30d -->
Python 的 functools.lru_cache 可以缓存函数结果。
from memory_tree_api import MemoryTreeAPI
api = MemoryTreeAPI(agent="dev")
# 搜索相关记忆
results = api.search("代码审查")
# → 返回置信度 ≥ 0.3 的相关记忆
# 获取推荐知识
recommendations = api.get_recommendations(task="设计新 API")
# → 根据当前任务推荐最相关的记忆
# 添加新记忆
api.add_memory(title="HTTP 缓存策略", content="...", priority="P1")
目前系统完全依赖命令行操作,没有 Web UI 或桌面客户端。查看"记忆树"的健康状态需要执行 python3 memory_tree.py visualize,对非技术用户不够友好。
当前搜索模块基于关键词匹配(可能使用了 TF-IDF 或 BM25),而非语义向量检索。对于同义词、近义查询能力有限。随着知识库增大,这一局限性会越发明显。
当同一个知识点被多个 Agent 以不同版本记录时,系统没有合并或冲突检测逻辑,可能导致记忆不一致。
所有数据存储在本地 JSON 文件,不支持分布式部署。多个机器上的 Agent 无法共享同一棵树。
| 维度 | 评估 |
|---|---|
| 架构类型 | 模块化 CLI 工具,无 Web 框架 |
| 主力技术栈 | Python 3.8+、标准库为主(json、pathlib、argparse) |
| 代码结构 | 按功能分模块(indexer/cleaner/decayer/search),模块边界清晰 |
| AI 框架 | 非 AI 模型推理项目,是 AI 应用基础设施 |
| 代码质量 | 有类型注解,函数文档完善,异常处理到位 |
| 测试覆盖 | README 中未见测试目录,测试覆盖不明确 |
| 文档质量 | 优秀——README 超 9000 字,图文并茂,FAQ 完整 |
| 数据隐私 | 完全本地存储,无云端同步,用户数据完全自主 |
在 AI Agent 大规模落地的 2026 年,"Agent 记忆"已经从一个锦上添花的功能变成了必备基础设施。Memory-Like-A-Tree 提出的置信度驱动生命周期概念,与人类记忆的遗忘曲线(艾宾浩斯曲线)高度吻合,是一个符合认知科学的设计思路。
它的意义不止于工具本身,更代表了一种趋势:未来的 AI Agent 不仅要有工具调用能力,更要有自主管理知识资产的能力。
| 维度 | 评分 |
|---|---|
| 创意 ⭐⭐⭐⭐⭐ | 自然隐喻驱动的设计理念,独树一帜 |
| 功能 ⭐⭐⭐⭐ | 覆盖生命周期全流程,功能闭环完整 |
| 易用 ⭐⭐⭐ | CLI 上手简单,但缺乏 GUI 限制受众 |
| 代码 ⭐⭐⭐⭐ | 模块化清晰,文档详尽,无 AI 依赖 |
| 潜力 ⭐⭐⭐⭐ | 切入 AI Agent 基础设施赛道,需求真实 |
适合谁用:有多个 AI Agent 协作需求、技术能力较强的开发团队。
不适合谁:非技术用户、需要分布式协作的团队、需要语义搜索的场景。
🌳 种一棵树最好的时间是十年前,其次是现在。让你的 AI Agent 也种下第一棵树吧。