记忆系统
概述
Open Note 拥有独特的长期记忆和自我进化能力,使 Cici 能够越来越了解你的偏好和工作习惯。
记忆类型
1. 用户画像(Profile)
记录你的个人信息和偏好。
示例:
- 职业:软件工程师
- 偏好语言:中文
- 常用技术栈:Java、Spring-Boot、Vue
- 工作习惯:喜欢早上写笔记
- 喜欢被称呼:xx
2. 事实(Fact)
记录客观事实信息。
示例:
- 在生成关于书籍故事等笔记时,笔记标题要用书名号括起来,因为这样用户觉得更正式
3. 经验(Experience)
从交互中总结的经验教训。
示例:
- 当用户表达不完整或有误时(如'今天星期就'),应主动推测正确意图并验证,用户喜欢这种默契
- 当用户询问是否有某类笔记(如'有学习相关的笔记吗')时,应优先使用 note_search 工具按关键词搜索,如果结果不足再尝试向量搜索,无需同时调用 note_search、note_vector_search 和 note_list_recent 三个工具,避免冗余调用和资源浪费
记忆提取
触发方式
即时触发
某些关键词会立即触发记忆提取:
- "我喜欢..."
- "我讨厌..."
- "记住..."
- "我是..."
批量触发
每 5 轮对话自动批量提取记忆。
提取过程
对话内容 → 记忆提取器 → 候选记忆 → 置信度评估 → 存储记忆管理
置信度
每条记忆都有置信度(0-1):
- 1.0:明确表达("我是软件工程师")
- 0.8:强烈暗示("我每天写 Java 代码")
- 0.5:间接推断(经常讨论某个话题)
衰减策略
记忆会随时间衰减:
新置信度 = 原置信度 × 衰减系数 × 时间因子- 衰减系数:0.95(可配置)
- 时间因子:距上次提及时间
清理策略
- 置信度 < 0.3:自动删除
- 过期记忆:标记为待清理
- 定期清理:每月自动执行
记忆注入
按需注入
Cici 会根据对话内容自动注入相关记忆:
用户:"帮我写一篇关于 Spring-AI 的笔记"
系统注入记忆:
- 偏好:喜欢简洁风格
- 技术栈:熟悉 Java、Spring-Boot
- 习惯:喜欢带示例的代码个性化服务
基于记忆提供个性化响应:
- 使用你偏好的语言风格
- 推荐相关主题
- 避免重复建议
自我进化
进化循环
记忆提取 → 经验总结 → 自我反省 → 知识整理 → 召回反哺持续改进
- 学习:从每次交互中学习
- 总结:提炼有用经验
- 反省:评估服务质量
- 整理:优化知识结构
- 应用:提供更好的服务
查看记忆
记忆面板
在 Cici 对话界面可以查看:
- 已提取的记忆数量
管理记忆
- 清除某一类或全部记忆
隐私保护
本地存储
所有记忆存储在本地数据库,不会上传。
完全可控
- 随时查看记忆
- 随时删除记忆
- 可以禁用记忆功能
配置
启用/禁用
设置 → AI 服务 → 记忆系统
故障排查
Q: 记忆不准确
如果影响使用可以删除记忆或针对对应类型的对Agent强调或反复强调。
Q: 不想被记忆
在设置中禁用记忆提取。
Q: 记忆丢失
检查数据库文件完整性。