Hermes Agent 的长期记忆层使用 SQLite FTS5(Full-Text Search 5)作为搜索引擎,实现了毫秒级的记忆检索。
为什么选择 FTS5?
- 零依赖:SQLite 内置于 Python 标准库
- 高性能:百万级文档毫秒级搜索
- 轻量级:数据库文件通常只有几十 MB
- 全文搜索:支持中文分词、模糊匹配、短语搜索
索引策略
我们将记忆分为三种索引类型:内容索引(存储原始文本)、元数据索引(存储标签和时间戳)、向量索引(存储 embedding 向量)。FTS5 负责前两种,向量搜索使用余弦相似度。
性能优化
通过批量写入事务合并,记忆引擎的写入延迟降低了 60%。通过预编译查询语句,读取延迟降低到 5ms 以内。