词元广场TOKPUB.COM - 欢迎您,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
~/.hermes/state.db)跨 CLI 和 gateway 会话持久化会话元数据、完整消息历史及模型配置。这替代了早期的逐会话 JSONL 文件方案。hermes_state.py~/.hermes/state.db (SQLite, WAL mode)
├── sessions — 会话元数据、token 计数、计费信息
├── messages — 每个会话的完 整消息历史
├── messages_fts — FTS5 虚拟表(content + tool_name + tool_calls)
├── messages_fts_trigram — 使用 trigram tokenizer 的 FTS5 虚拟表(CJK / 子串搜索)
├── state_meta — 键值元数据表
└── schema_version — 单行表,跟踪迁移状态parent_session_id 链实现(压缩触发的会话分割)cli、telegram、discord 等):用于平台过滤tool_calls 以 JSON 字符串存储(序列化的 tool call 对象列表)reasoning_details、codex_reasoning_items 和 codex_message_items 以 JSON 字符串存储reasoning 存储提供商暴露的原始推理文本time.time())messages 表保持同步,分别在 INSERT、UPDATE 和 DELETE 时触发:schema_version 表存储单个整数。简单的列添加由 _reconcile_columns() 声明式处理(对比实时列与 SCHEMA_SQL 并 ADD 缺失列)。版本门控链保留用于无法声明式表达的数据迁移及索引/FTS 变更:| 版本 | 变更 |
|---|---|
| 1 | 初始 schema(sessions、messages、FTS5) |
| 2 | 向 messages 添加 finish_reason 列 |
| 3 | 向 sessions 添加 title 列 |
| 4 | 在 title 上添加唯一索引(允许 NULL,非 NULL 必须唯一) |
| 5 | 添加计费列:cache_read_tokens、cache_write_tokens、reasoning_tokens、billing_provider、billing_base_url、billing_mode、estimated_cost_usd、actual_cost_usd、cost_status、cost_source、pricing_version |
| 6 | 向 messages 添加推理列:reasoning |