会话存储
Hermes 使用基于 SQLite 的会话存储作为历史对话状态的主要事实来源。
主要文件:
hermes_state.pygateway/session.pytools/session_search_tool.py
主数据库
主存储位于:
~/.hermes/state.db
它包含:
- 会话
- 消息
- 元数据,例如令牌计数和标题
- 谱系关系
- 全文搜索索引
每个会话存储的内容
重要会话元数据的示例:
- 会话 ID
- 来源/平台
- 标题
- 创建/更新时间戳
- 令牌计数
- 工具调用计数
- 存储的系统提示快照
- 压缩拆分后的父会话 ID
谱系
当 Hermes 压缩对话时,它可以在新的会话 ID 下继续,同时通过 parent_session_id 保留祖先关系。
这意味着恢复/搜索可以沿着会话家族进行,而不是将每个压缩片段视为无关的。
Gateway 与 CLI 持久化
- CLI 直接使用状态数据库进行恢复/历史记录/搜索
- gateway 维护活跃会话映射,并且可能还维护额外的平台转录/状态文件
- 为了兼容性,一些遗留的 JSON/JSONL 产物仍然存在,但 SQLite 是主要的历史存储
会话搜索
session_search 工具使用会话数据库的搜索功能来检索和总结相关的过往工作。