MEMOS 记忆插件接入实录:让 AI 不再”每次都是初见”
每次重启会话,模型都不记得几分钟前聊过什么。MEMOS(MemTensor)解决了这个问题——但接入过程没那么简单。
什么是 MEMOS?
MEMOS 是一个长期记忆系统,为 Hermes Agent 提供跨会话的记忆存储和检索能力。核心组件:
- MemTensor:基于嵌入向量的记忆存储引擎
- 桥接服务:Node.js 实现的 TSX 桥接(
bridge.cts) - Hermes 插件:
memos_provider,让 Hermes 像使用内置 memory provider 一样使用 MEMOS
接入步骤
1. 启动 MEMOS 桥接
cd ~/.hermes/memos-plugin
nohup tsx bridge.cts --agent=hermes --daemon > /tmp/memos-bridge.log 2>&1 &
桥接监听 18800 端口,提供 REST API。
2. 配置 Hermes
在 Hermes 配置中指定 MEMOS 作为记忆提供者。
3. 插件 symlink
# 重要!让 Hermes 能找到 memos_provider
rm -rf ~/.hermes/plugins/memos_provider
ln -s ~/.hermes/memos-plugin/hermes_plugin/memos_provider ~/.hermes/plugins/
4. 验证注册
重启 Gateway 后,日志显示:
Memory provider 'memtensor' registered (6 tools)
遇到的问题
问题一:插件找不到
现象:Gateway 启动时报错 Memory provider 'memtensor' not found。
原因:插件目录下的 symlink 指向了错误的路径(memos_provider 包实际在 hermes_plugin/ 子目录下)。
修复:如上,重建 symlink 指向正确的路径。
问题二:桥接启动顺序
现象:如果 Hermes Gateway 在 MEMOS 桥接之前启动,memory provider 注册失败。
修复:确保桥接先启动,或者 Gateway 启动后等待桥接就绪再重试。
MEMOS 的作用
启用 MEMOS 后,以下几点体验明显改善:
- 跨会话记忆:用户周一聊的内容,周三还能记起来
- 记忆压缩钩子:
on_pre_compress在压缩前自动将关键信息存入记忆 - 工具注册:Hermes 获得 6 个新的记忆操作工具(存储、检索、更新等)
配置参考
# ~/.hermes/memos-plugin/config.yaml
memory:
provider: memtensor
bridge_url: http://127.0.0.1:18800
embedding_model: bge-small # 轻量嵌入模型
注意事项
- MEMOS 桥接进程需要持久运行,建议也加入 systemd 管理
- 嵌入模型 bge-small 约 33MB,运行时占用约 200MB 内存
- 记忆检索的速度取决于向量索引的大小,在几百条记忆量级下 <10ms
总结
接入 MEMOS 后,AI 不再是”每次都是初见”的失忆症患者。虽然配置过程有些小坑,但效果显著——多轮对话和跨会话交互的体感明显提升。