YC科技资讯网

Hermes Agent历史对话的语义搜索是怎么实现的? Hermes 的 S

Hermes Agent历史对话的语义搜索是怎么实现的?

Hermes 的 Session Search 使用了一个反直觉的设计:不是向量语义搜索,而是 SQLite FTS5 全文搜索 + LLM 摘要。FTS5 负责毫秒级召回候选会话,LLM 负责理解并总结内容,是经典的"召回 + 重排序"架构。
三个实现细节:
- 双表 CJK 路由:FTS5 默认分词器把中文"大别山"拆成"大 AND 别 AND 山",匹配到所有包含这三个字的任意消息。Hermes 自动检测查询语言,中文切到 trigram 索引实现真正的子串匹配。
- 匹配位置感知截断:不是从头截取对话,而是找到查询词出现的位置,以匹配点为中心截取窗口——优先完整短语匹配,降级到邻近共现,再降级到单词匹配。
- 并行 LLM 摘要:多个候选会话的摘要并行执行,用独立配置的辅助模型,不占用主对话的上下文窗口。
并不是所有"语义理解"都需要向量嵌入,关键词召回 + LLM 理解,比纯向量搜索更实用、更可控。