Sharpagent Memory System — Sharpagent 内存系统
v1.0.0SharpAgent 分层内存系统 —— 从短暂到长期存档的 6 层内存等级体系。具有梦境处理(巩固/存档/遗忘)功能...
运行时依赖
安装命令
点击复制技能文档
SharpAgent 分层记忆系统 v1.0.0 像人类一样的记忆 —— 记住重要的东西,忘掉其余的,并且能够准确搜索。 基于分层记忆系统(ClawHub,24 天内 +324%)6 层架构 + 梦处理 + Mem0 持久化。
核心问题 当前代理记忆问题: 问题 症状 后果 忘记 每次会话都从头开始 重复错误,没有积累 从不忘记 所有历史都平坦 高检索噪音,关键信息被淹没 差的搜索 只有关键词,没有语义 "五元组" 不会找到 "信任验证"
SharpAgent 记忆解决了这三个问题,使用 6 层 + 梦处理。
记忆层 [用户交互] │ ┌────────┴────────┐ │ L1:短暂 │ ← 当前会话上下文 └────────┬────────┐ │ 会话结束 ┌────────┴────────┐ │ L2:短期 │ ← 近期会话(滚动窗口) └────────┬────────┐ │ 定期迁移 ┌────────┴────────┐ │ L3:工作 │ ← 活动任务状态 └────────┬────────┐ │ 任务完成 ┌────────┴────────┐ │ L4:上下文 │ ← 任务级上下文 └────────┬────────┐ │ 梦处理 ┌────────┴────────┐ │ L5:长期 │ ← 偏好和经验 └────────┬────────┐ │ 归档过期 ┌────────┴────────┐ │ L6:归档 │ ← 历史归档 └─────────────────┘
L1:短暂存储: 当前会话所有消息 容量:模型上下文窗口 生命周期:会话结束 = 消失 索引:无,线性 用途:上下文理解
L2:短期存储: 最近 N 个会话(默认 N=5) 介质:内存(Redis 可选) 容量:5 个会话摘要,每个 ≤2KB 生命周期:7 天 → 自动迁移到 L4 索引:会话 ID + 时间戳 + 标签 用途:快速跨会话参考
L3:工作存储: 活动任务状态 介质:JSON 文件(memory/working/) 容量:每个任务 ≤10KB 生命周期:任务完成 → L4;任务中断 → 保留 索引:任务 ID + 状态 + 最后更新 用途:恢复中断任务,多任务
L4:上下文存储: 完成任务的全部上下文 介质:JSON 文件(memory/contextual/)+ 可选 SQLite 容量:无限,但检索 Top 5 生命周期:直到梦处理(30 天无引用 → L5) 索引:TF-IDF 全文 用途:回顾过去任务,重用解决方案
L5:长期存储: 持久化跨会话知识 介质:SQLite(memory/long_term.db)+ 中文分词索引 容量:无限 生命周期:永久除非显式忘记 索引:TF-IDF + jieba 中文分词 用途:用户偏好,经验,最佳实践,关键决策
L6:归档存储: 过期或低引用 L4/L5 条目 介质:SQLite(memory/archive.db),只读 容量:理论上无限 生命周期:永久只读 索引:无(时间 + 类别) 用途:法律合规保留,审计跟踪
梦处理 梦不仅仅是人类的需求,代理也需要低负载的记忆维护。 触发器:心跳(低负载,每 30 分钟),用户说 "clean up",或安排每日 04:00。
四个梦操作:
- 整合
- 归档
- 忘记
- 合并
标准搜索 def search(query, layers=["L4", "L5"]): tokens = jieba.cut(query) # 中文分词 vec = tfidf_vectorizer.transform(tokens) scores = cosine_similarity(vec, layer_index) return top_k(scores, k=5)
中文分词 jieba.load_userdict("memory/custom_dict.txt") # "五元组审查" → ["五元组", "审查"]