Hermes Agent 会话使用教程
辛辛苦苦调试了半天,关闭终端后对话记录就消失了?面对堆积如山的聊天历史,想找回上周讨论的 API 设计方案却翻到眼花?Hermes Agent 的 会话(Session) 系统完美解决了这些痛点——每次对话都会被自动保存为独立会话,支持 持久化存储、跨会话恢复、全文搜索、后台并行执行 等能力。本文从基础原理、核心操作、高级功能到最佳实践,全面讲解会话的使用与管理,帮你高效掌控对话历史与任务执行。
一、会话核心原理
1.1 什么是会话
会话是 Hermes 对单次完整交互过程的封装,包含用户提问、工具调用、智能回复、时间戳、模型配置等全量数据。无论是终端(CLI)、飞书 / 钉钉等消息平台,还是后台任务,所有交互都会被标记为独立会话,永不丢失、随时可恢复。
1.2 会话存储架构
所有会话数据统一存储在 ~/.hermes/ 目录,采用 SQLite 数据库(state.db)+ 日志文件 双存储模式:
-
state.db:核心数据库,存储会话元数据(ID、标题、模型、时间)、消息历史,内置 FTS5 全文检索引擎,支持毫秒级跨会话搜索。 -
sessions/** 目录**:JSONL 格式日志,存储原始对话记录,用于备份与迁移。
图1:会话存储架构图
graph TB
subgraph "~/.hermes/ 会话存储"
DB[state.db<br/>SQLite 核心数据库] --- META[会话元数据<br/>ID · 标题 · 模型 · 时间]
DB --- MSG[消息历史]
DB --- FTS[FTS5 全文索引<br/>毫秒级搜索]
LOG[JSONL 日志文件<br/>sessions/ 目录] --- RAW[原始对话记录<br/>备份与迁移]
end
USER[用户交互] --> DB
USER --> LOG
1.3 会话唯一标识
每个会话拥有 唯一 ID,格式为 YYYYMMDD_HHMMSS_<8位哈希>(如 20250820_1430_abc123),同时支持自定义标题,方便快速识别。
了解了会话的存储原理与标识方式,接下来看看如何在实际开发中恢复历史会话并为其命名。
二、基础操作:会话恢复与命名
2.1 恢复会话(最常用)
Hermes 支持三种恢复方式,无需重复对话,直接接续历史交互:
(1)恢复最近一次会话
# 简写(推荐)
hermes -c
# 完整命令
hermes --continue
(2)按会话标题恢复
# 自动匹配最新同名会话(支持模糊匹配)
hermes -c "产品需求讨论"
(3)按会话 ID 恢复
# 恢复指定 ID 会话
hermes --resume 20250820_1430_abc123
恢复后会自动显示会话摘要(最近 10 轮对话预览),可直接继续提问。
2.2 会话命名(快速识别)
(1)自动命名
首次对话后,Hermes 会用轻量模型自动生成 3-7 字标题(如 “代码审查”“数据报表生成”),无需手动操作。
(2)手动命名(自定义标题)
# 会话内执行(终端/消息平台通用)
/title 2025年8月产品需求评审
# 命令行重命名
hermes sessions rename 20250820_1430_abc123 "产品需求评审"
命名规则:最长 100 字符,支持中文 / 英文 / 表情,自动去重。
学会恢复与命名后,当会话数量增多时,就需要一套管理命令来统一维护对话历史。
三、会话管理:常用命令大全
通过 hermes sessions 系列命令,可列出、导出、删除、清理、搜索会话,全面掌控对话历史。
3.1 列出会话
# 列出最近20个会话(默认)
hermes sessions list
# 列出最近50个会话
hermes sessions list --limit 50
# 按平台过滤(仅显示飞书会话)
hermes sessions list --source feishu
3.2 导出会话(备份 / 迁移)
# 导出所有会话为 JSONL(备份)
hermes sessions export all-sessions.jsonl
# 导出单个会话
hermes sessions export 20250820_1430_abc123 --output 需求会话.jsonl
# 导出为 Markdown(便于阅读)
hermes sessions export 20250820_1430_abc123 --format md
3.3 删除会话
# 删除单个会话(需确认)
hermes sessions delete 20250820_1430_abc123
# 强制删除(无需确认)
hermes sessions delete 20250820_1430_abc123 --yes
3.4 批量清理会话
# 删除90天前已结束会话(默认)
hermes sessions prune
# 删除30天前会话(自定义时间)
hermes sessions prune --older-than 30
# 清理并确认
hermes sessions prune --older-than 30 --yes
3.5 搜索会话(全文检索)
基于 FTS5 引擎,支持关键词 / 短语 / 布尔搜索,毫秒级匹配所有历史会话:
# 搜索含“Python 爬虫”的会话
hermes sessions browse --search "Python 爬虫"
# 搜索含“需求文档”或“评审”的会话
hermes sessions browse --search "需求文档 OR 评审"
3.6 查看会话统计
hermes sessions stats
输出示例:
总会话:128 总消息:4562
终端:89 飞书:32 钉钉:7
数据库大小:15.2MB
图2:会话生命周期图
flowchart LR
CREATE[开始对话] --> SAVE[自动保存会话]
SAVE -->|会话管理| LIST[列出与搜索]
LIST --> EXPORT[导出备份 JSONL/MD]
LIST --> RENAME[命名与重命名]
LIST --> PRUNE[定期清理 Prune]
LIST --> RESUME[按标题 / ID 恢复]
RESUME --> CREATE
PRUNE --> DELETE[删除过期会话]
掌握了会话的日常管理,还有一个能极大提升效率的高级特性——后台并行会话。
四、高级功能:后台会话(并行任务)
后台会话(Background Session) 是 Hermes 核心高级能力,支持不阻塞主会话、并行执行多个耗时任务(如数据处理、代码生成、网页爬取),任务完成后自动通知。
4.1 启动后台会话
# 基础用法(终端/消息平台通用)
/background 分析 ~/data 目录下Excel文件,生成月度销售报表
# 自定义名称(便于追踪)
/background --name "月度报表" 分析 ~/data 目录下Excel文件,生成月度销售报表
# 指定工具(仅用文件/终端工具)
/background --toolsets "file,terminal" 批量重命名图片文件
4.2 管理后台会话
# 列出所有后台任务
/background list
# 查看任务详情(进度/日志)
/background status bg-a7f3c2d1
# 取消后台任务
/background cancel bg-a7f3c2d1
4.3 后台会话特性
-
完全隔离:独立对话历史、独立执行环境、独立任务 ID,互不干扰。
-
并行执行:支持最多 5 个后台任务同时运行,大幅提升效率。
-
自动通知:任务完成 / 失败后,自动在主会话推送结果面板。
-
持久化:重启 Hermes 后,可恢复未完成后台任务。
4.4 典型使用场景
-
长时间数据处理:后台清洗 / 分析大数据集,主会话正常聊天。
-
批量代码生成:后台生成项目测试用例,不阻塞其他操作。
-
定时监控:后台定时检查接口状态,异常自动告警。
-
多任务并行:同时启动 “爬虫 + 文档生成 + 数据可视化”,一次性完成。
后台会话处理了并行任务,而单个长会话的上下文管理和跨会话检索同样不容忽视。
五、会话压缩与搜索
5.1 会话压缩(避免上下文超限)
对话过长时,Hermes 支持手动 / 自动压缩:保留关键摘要,精简历史消息,避免超出模型上下文限制。
# 手动压缩当前会话
/compress
# 自动压缩(默认:超过50%上下文时触发)
# 配置文件开启
compression:
enabled: true
threshold: 0.5
5.2 跨会话搜索
对话中直接调用 session_search 工具,自动检索所有历史会话,无需手动翻找:
搜索我们之前讨论的”用户登录模块”设计
支持关键词、短语、布尔逻辑,快速定位历史方案。
掌握了会话的全部功能后,下面总结一些最佳实践和注意事项,帮你用好这套会话体系。
六、最佳实践与注意事项
6.1 最佳实践
-
规范命名:用 “日期 + 主题” 命名会话(如 “20250820 - 产品需求”),便于检索。
-
定期备份:每周导出会话,防止数据丢失。
-
及时清理:定期清理 30 天前无效会话,减少存储占用。
-
合理用后台:耗时任务(>5 分钟)优先用后台会话,提升效率。
-
压缩长会话:对话超过 50 轮时手动压缩,避免上下文超限。
6.2 注意事项
-
会话隔离:后台会话与主会话、不同后台会话完全隔离,数据不互通。
-
存储安全:会话数据默认存储在本地,敏感对话建议定期删除。
-
恢复限制:仅已保存的会话可恢复,未手动保存的临时对话会丢失。
-
模型差异:不同模型上下文长度不同,压缩阈值需适配模型。
七、总结
会话是 Hermes Agent 的核心数据载体,从基础恢复、命名,到高级后台并行、全文搜索,完整覆盖对话生命周期管理。掌握会话用法,既能高效追溯历史交互,又能并行处理多任务,充分释放 Hermes 的自进化能力。后续可结合技能沉淀、MCP 集成,进一步提升会话价值。