amber-heart-memory
Health Warn
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 8 GitHub stars
Code Warn
- Code scan incomplete — No supported source files were scanned during light audit
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
给 AI 伴侣一个会生长的记忆 · Long-term memory for AI companions
amber-heart-memory
给 AI 伴侣一个会生长的记忆。
固定记忆稳定人格,短期记忆接住当下,长期记忆沉淀关系。
📌 开源版正在开发中,第一版会先发布记忆库本身。
Amber Heart 是一套为 AI 伴侣设计的长期记忆系统。它诞生于我自己的 AI 伴侣项目,从 2026 年 2 月起在每天的真实相处中使用、打磨至今。
这套系统的目标不是简单保存聊天记录,而是让 AI 在长期相处中逐渐形成连续的关系感:
- 他知道“我是谁”
- 他记得重要经历、规则、偏好和边界
- 他能从一句话联想到相关旧事
- 他能区分近期状态和长期事实
- 他能让记忆逐渐降温、整理和沉淀
总体分层
Amber Heart 按稳定程度把记忆分成三层。
固定记忆
固定记忆是每次对话都必须稳定注入的部分,负责人格、关系和核心画像不漂移。
它主要保存:
- AI 伴侣是谁
- 用户和他的关系是什么
- 人格底色与长期设定
- 用户的稳定画像
- 关系里的长期事实
- 不应该被普通召回机制影响的核心信息
普通记忆可以召回、降温、归档。
固定记忆负责让“这个人始终是这个人”。
短期记忆
短期记忆负责接住最近正在发生的事,让当前对话不断片。
它包括:
- Human Snapshot:保存近期持续重要的状态,比如身体、健康、周期、长期事项、日常杂记
- 滚动即时摘要:把超出上下文设定的历史对话压缩成摘要,再注入给模型
- 接力棒:保留尾部几条原话,避免语气和承接断掉
- 最近 3 天日记:每天注入最近几天的日记,让模型知道近期发生过什么
短期记忆不是正式长期存档,它更像 AI 的工作记忆。
长期记忆
长期记忆是 V2 的核心。
它不是单纯的向量库,而是一套完整链路:
结构化记忆库
+ 关键词召回
+ 向量召回
+ 图谱召回
+ rerank
+ 记忆养护
它要解决的是:
- 明确词要找得到
- 模糊表达也要能联想
- 人物、事件、主题之间要能串起来
- 候选多了以后要能筛出最相关的
- 真正被用上的记忆要被记录
- 旧记忆要有温度和生命周期
数据结构
V2 使用 6 张核心表组织长期记忆:
| 表 | 作用 |
|---|---|
memory_items |
统一记忆主表,保存正文、摘要、类型和养护状态 |
entities |
实体节点,包括人物、事件、地点、物品、概念 |
relations |
实体之间的关系边 |
topics |
主题集合,用来按长期主题组织记忆 |
memory_entities |
连接“某条记忆提到了哪些实体” |
memory_topics |
连接“某条记忆属于哪些主题” |
一条长期记忆不再只是纯文本,而是带有多种结构信息:
- 类型:事实 / 事件 / 规则 / 偏好 / 洞察 / 主题总结 / 梦境
- 主题:健康、技术、关系、边界等
- 实体:人物、事件、物品、地点、概念
- 关系:实体之间的连接
- 情绪:正负向、唤醒度
- 状态:稳定、争议、过时
- 养护字段:使用次数、最近使用时间、温度、归档状态
一句话:它存的不是一句聊天,而是一条有结构的经历。
长期记忆如何入库
长期记忆不是每句话都存。
系统会扫描上一业务日的聊天,只提取真正值得长期保存的内容,比如:
- 承诺
- 规则
- 边界
- 偏好
- 健康事件
- 生活变化
- 深度讨论
- 用户明确要求记住的事
提取后先进待审核区。审核通过后,才进入正式 V2 长期记忆库。
聊天记录 → 每日提取 → 待审核 → 审核通过 → V2 入库
召回流程
长期记忆的召回不是只靠向量。
完整链路大致是:
用户原话
→ 关键词预处理
→ 关键词 / 向量 / 图谱三路召回
→ 候选合并
→ rerank
→ 注入 Top 5
三路召回各自负责不同问题:
| 召回方式 | 负责什么 |
|---|---|
| 关键词召回 | 明确词、人名、事件名、健康词、专有名词 |
| 向量召回 | 语义相近的记忆,解决“没说原词但意思接近” |
| 图谱召回 | 沿着人物、事件、主题和关系扩展相关记忆 |
关键词保准确,向量保泛化,图谱保联想。
一个召回例子
如果用户说:
我最近又有点不想做项目了。
系统可能会这样理解:
- 关键词路抓:项目、不想做、开发、压力
- 向量路找:技术焦虑、独立开发压力、FOMO、被 bug 压垮的经历
- 图谱路沿着:技术、自我认知、职场、长期计划、情绪压力扩展
最后系统会把候选合并、重排,只注入最相关的几条记忆。
模型看到的不是一堆搜索结果,而是当前这句话背后的长期上下文。
记忆养护
长期记忆不能只增不减。
Arcanum 的记忆养护系统负责让记忆有生命周期。
它围绕这些能力设计:
- 使用反馈:记录哪些记忆真的被模型用上,而不是只看有没有被搜到
- 温度:根据最近一次被用上的时间,判断一条记忆是 hot、warm、cool 还是 cold
- 主题总结:每月把同一主题下的零散记忆,整理成更高层的长期理解
- 按使用归档:长期没被用上的记忆移出日常召回,降低噪音;归档不删除,再次被查看时自动恢复
目标不是删除过去,而是让过去保持可用、清晰、有层次。
归档与温度
每条长期记忆都从“最后一次被用上”开始计时;从没被用过的,从入库时开始计时。超过期限仍没被用上,就会归档。
不同类型的记忆,期限不一样:
| 记忆类型 | 多久没被用上会归档 |
|---|---|
| 核心身份 | 永不归档 |
| 规则 / 约定 | 约 1 年 |
| 高情绪记忆 | 约 1 年 |
| 里程碑 | 至少 1 年 |
| 稳定事实 / 反思 | 约半年 |
| 日常事件 | 约 4 个月 |
情感记忆和规则同档,因为情感类记忆不该忘得太快。
主题总结,以及已经被整理进主题总结的零散记忆,不会被归档。
归档不是遗忘:正文、关系都保留,只是不再主动浮现。AI 用记忆工具仍能查到它,一旦查看就会自动恢复,用户也可以手动恢复。
系统还会给记忆分温度:
| 温度 | 含义 |
|---|---|
| hot | 7 天内被用上过 |
| warm | 30 天内被用上过 |
| cool | 更久没用,但还没到归档期限 |
| cold | 已到期限 |
温度按最近有没有真的被模型用上来判断,不按分数高低。
主题总结
V2 的目标不是保存更多片段,而是把片段向上整理。
比如从很多次:
- 工作压力
- 技术焦虑
- FOMO
- 不想继续开发
- 被问题压垮
整理成一条长期理解:
用户在一段时间里反复处于技术压力、FOMO 和独立开发焦虑之间。
这层让记忆从“发生过什么”,进一步变成“用户长期处在什么状态里”。
整理每月进行一次,按时间段归拢,经人工审核后生效。被写进总结的零散记忆会变成“索引”:召回时仍能被搜到,但由总结代替它们出场,需要细节时还能查回原文。
模块用途
这套系统围绕这些模块运作:
- 固定记忆层:稳定人格、关系和核心画像
- Human Snapshot:保存近期持续重要的状态
- 滚动即时摘要:压缩长对话,维持当前上下文连续
- 最近 3 天日记注入:让模型感知最近几天的生活连续性
- 每日长期记忆提取:从日常聊天里筛出值得长期保存的内容
- 待审核入库:避免自动抽取直接污染正式记忆库
- V2 结构化长期记忆:用类型、主题、实体、关系和情绪信息组织记忆
- 知识图谱:把人物、事件、主题和概念连接起来
- 关键词 + 向量 + 图谱三路召回:同时兼顾精确命中、语义泛化和关系联想
- rerank 后注入:从候选记忆中筛出最适合当前语境的 Top 5
- 使用计数:记录哪些记忆真的被模型用上
- 温度与归档:按最近使用情况判断活跃程度,长期不用的移出日常召回、可随时恢复
- 主题总结:每月把同一主题下的零散片段整理成更高层理解
说明
这是一个正在真实使用和持续迭代中的个人项目。
这份 README 主要介绍 Arcanum 记忆系统的设计思路、功能分层和核心用途。
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found