Smrti:给AI装上"人格记忆",下一代记忆引擎长什么样?
当AI的记忆不再只是向量相似度搜索,而是能记住"周五部署导致故障"这种带情绪的惨痛教训,会发生什么?
最近在GitHub上发现了一个非常有意思的开源项目——Smrti,它提出了一种全新的AI记忆架构:不只是向量搜索,而是让AI拥有"人格记忆"。
今天带你深入了解一下这个项目。
01 从"记事本"到"有性格的记忆系统"
目前主流的AI记忆方案,本质上都是一个"高级记事本":
• 用户说什么 → 向量化存储 • 需要回忆 → KNN向量相似度搜索 • 结果排序 → 按时间或相似度
这种方案有两个明显问题:
1. 记忆没有"性格":10年前的惨痛教训和5分钟前的闲聊,在向量空间里可能权重一样 2. 不知道什么"重要":Critical的错误和随口的玩笑,召回优先级没有区别
Smrti的思路是:让记忆有情感、有权重、有性格。
02 核心创新:5维召回评分机制
Smrti的检索不再只依赖向量相似度,而是采用5维评分公式:
S = w_sim × similarity + w_sti × STI + w_conf × confidence + w_lti × LTI + w_val × |valence| × intensity听不懂?没关系,我逐一解释:
| similarity | ||
| STI | ||
| confidence | ||
| LTI | ||
| valence |
关键设计:当情感值(valence)低于-0.5时,系统会自动提升权重——这意味着"周五部署导致2小时故障"这种负面经验,会比普通闲聊更容易被召回。
03 贝叶斯真值维护:记忆会"进化"
传统RAG的痛点:新证据来了,旧记忆怎么办?直接覆盖?
Smrti的解决方案是Probabilistic Logic Networks(PLN)——证据只增不减,真值动态更新。
# 存储记忆时附带的贝叶斯概率
engine.believe(
"Feature flags reduce deployment risk",
probability=0.85, # 概率
evidence="3 successful staged rollouts"# 支撑证据
)当你积累更多证据时:
• 新证据追加(append-only) • 矛盾产生时创建矛盾链接 • 定期通过PLN合并更新真值 • 低置信度记忆自动衰减
效果:记忆不是静态存储,而是会随时间"进化"的动态知识库。
04 人格预设:给你的AI装上"性格"
这是Smrti最有趣的设计——6种人格预设,控制16个超参数:
| balanced | ||
| analytical | ||
| curious | ||
| empathetic | ||
| maverick | ||
| deterministic |
# 一行代码切换人格
engine = Smrti(personality="deterministic")实际意义:你的代码助手可以是"严谨型",你的闲聊伴侣可以是"共情型",同一个引擎,不同的性格。
05 零基础设施:单文件搞定
对比其他记忆系统动不动就要部署向量数据库、消息队列、缓存层……
Smrti只需要:一个SQLite文件。
• 向量索引:sqlite-vec(BAAI/bge-small-en-v1.5) • 实体解析:5级级联(精确匹配→别名→模糊→向量) • 部署方式: pip install smrti,开箱即用
三种服务模式:
• MCP模式:支持Claude Desktop、Cursor等MCP客户端 • REST API:FastAPI,端口8420 • Proxy模式:OpenAI兼容,端口8421,自动注入带严重性标签的记忆
06 实际效果演示
from smrti import Smrti
engine = Smrti(personality="deterministic")
# 存储负面经历
engine.remember(
"Deploying on Friday caused a 2-hour outage",
valence=-0.8# 强负面
)
# 存储正面经验
engine.remember(
"Feature flags made the rollout safe",
valence=0.6
)
# 召回时,负面经历自动优先
results = engine.recall("deployment risks")
# 输出:Friday部署导致故障的记录会排在前面严重性自动分类:
• critical_warning:valence < -0.5 且 intensity > 0.5• known_antipattern:概率 < 0.3 且置信度 > 0.3• context:中性背景
Proxy模式下,这些标签会自动注入LLM的上下文。
07 对AI开发者的启示
Smrti的设计理念代表了一个趋势:AI记忆正在从"存储"走向"认知"。
几个值得思考的点:
1. 情感维度:让AI记住"什么让我不爽",比记住"什么发生过"更有价值 2. 人格可配置:同一个Agent框架,可以适配不同场景 3. 轻量化优先:不是所有系统都需要全套基础设施 4. 证据驱动:记忆应该是可验证、可更新的,而不是静态快照
08 如何快速上手
# 安装
pip install smrti
# Python API
from smrti import Smrti
mem = Smrti(personality="balanced")
mem.remember("用户的偏好", valence=0.5)
results = mem.recall("查询偏好")GitHub地址:cyqlelabs/smrti
官网:smrti.im
写在最后
Smrti让我想到一个有趣的问题:如果AI能记住"周五部署导致故障"这种带有情感色彩的经验,它会不会主动劝阻你周五上线?
从这个角度看,AI记忆的下一步,可能不是更大的向量库,而是更"懂教训"的认知系统。
你觉得呢?
关注我,持续追踪AI Agent领域的最新动态。
夜雨聆风