后台会话
后台会话(Background Sessions)允许您在主会话中启动并行的非阻塞任务,让 Hermes 在"后台"执行耗时操作,同时您可以继续使用主会话进行其他工作。
什么是后台会话
默认情况下,Hermes 的对话是同步的:您发送一条消息,等待智能体完成响应,然后才能发送下一条。
后台会话打破了这种限制:通过 /background 命令,您可以同时运行多个相互独立的任务,每个任务在自己的隔离环境中执行,完成后结果自动出现在主会话中。
主会话(交互式)
├── 后台任务 A:爬取 50 个网页并提取数据 [运行中...]
├── 后台任务 B:分析代码库并生成文档 [运行中...]
└── 后台任务 C:下载并处理数据集 [运行中...]启动后台会话
基本用法
/background 搜索并整理关于 Rust 异步编程的最新资料,生成一份学习大纲/background 分析 ~/projects/my-app 目录下所有 Go 文件,找出潜在的性能问题/background 从 GitHub API 获取我最近 30 天的提交记录,生成活动报告命名后台任务
为任务指定名称,便于后续追踪:
/background --name "文献调研" 搜索并整理关于大型语言模型推理优化的学术论文,总结最新进展/background --name "代码审查" 审查 backend/api 目录下的所有 Go 文件,按严重程度列出问题指定工具集
后台任务默认继承主会话的工具集,也可以显式指定:
/background --toolsets "web,file" 下载并整理 React 官方文档的变更日志独立的执行环境
每个后台会话拥有完全独立的执行环境:
独立对话历史
后台会话有自己的上下文,不与主会话共享对话历史:
主会话上下文: 后台任务 A 上下文:
[用户聊天记录] [系统提示]
[用户最新消息] [任务指令]
[任务执行过程...]这意味着:
- 后台任务不会"看到"主会话的敏感信息
- 主会话不会被后台任务的大量中间输出填满
- 多个后台任务之间完全隔离
独立任务 ID
每个后台会话获得唯一任务 ID,格式为 bg-<随机字符串>:
后台任务已启动
ID: bg-a7f3c2d1
名称: 文献调研
状态: 运行中查看后台任务状态
列出所有后台任务
/background list输出:
ID 名称 状态 已用时 进度
----------- ----------- ------- ------- ---------------------
bg-a7f3c2d1 文献调研 运行中 2m 34s 正在分析第 8/15 篇论文...
bg-b8e4d3f2 代码审查 完成 5m 12s 发现 12 个问题
bg-c9f5e4g3 数据处理 失败 1m 05s 连接超时查看任务详情
/background status bg-a7f3c2d1取消后台任务
/background cancel bg-a7f3c2d1结果呈现
当后台任务完成时,结果以独立面板的形式出现在主会话中,不会打断当前对话流:
┌─────────────────────────────────────────────────────────┐
│ 后台任务完成:文献调研 [bg-a7f3c2d1] 用时 8m 23s │
├─────────────────────────────────────────────────────────┤
│ │
│ ## LLM 推理优化:最新研究综述 │
│ │
│ ### 主要方向 │
│ 1. **量化技术**:AWQ、GPTQ、SmoothQuant │
│ - AWQ 在保持精度的同时实现 4x 压缩 │
│ 2. **推测解码**:Medusa、Eagle │
│ - 最高可实现 3x 速度提升 │
│ 3. **KV Cache 优化**:PagedAttention、FlashAttention │
│ │
│ ### 推荐阅读 │
│ - [AWQ 论文](https://arxiv.org/abs/2306.00978) │
│ ... │
│ │
│ [查看完整报告] [保存到文件] [开始对话] │
└─────────────────────────────────────────────────────────┘与结果交互
完成后可以继续针对后台任务的结果提问:
/background resume bg-a7f3c2d1这将切换到该后台会话,继续基于其上下文进行深入讨论。
实用场景示例
并行研究
同时启动多个研究任务,节省等待时间:
/background --name "竞品分析" 搜索并对比 5 个主流 AI API 网关产品的功能和定价
/background --name "技术评估" 分析 Kong、APISIX、Traefik 在高并发场景下的性能对比
/background --name "用户反馈" 搜索 Reddit 和 HackerNews 上关于 AI API 代理的用户讨论三个任务并行执行,总时间接近最慢任务的时间,而非三个任务时间之和。
长时间数据处理
/background --name "日志分析" --toolsets "terminal,file" \
分析 /var/log/nginx/access.log,统计每小时请求量、错误率、Top 10 慢接口,生成报告后台代码生成
/background --name "测试生成" --toolsets "file,terminal" \
为 service/ 目录下所有 Go 文件生成单元测试,使用 testify 框架,保存到对应的 _test.go 文件监控与告警
/background --name "服务监控" \
每 5 分钟检查 https://api.myservice.com/health,如果连续 3 次失败则在主会话中告警配置后台任务
yaml
# ~/.hermes/config.yaml
background:
max_concurrent: 5 # 最大并行任务数(默认 5)
default_timeout: 3600 # 任务超时时间,秒(默认 1 小时)
notify_on_complete: true # 任务完成时在主会话显示通知
notify_on_fail: true # 任务失败时发送告警
auto_cleanup_days: 7 # 自动清理 N 天前的已完成任务记录注意事项
- 后台任务消耗独立的 Token 配额,不与主会话共享
- 关闭 Hermes 时,运行中的后台任务会被暂停(下次启动时提示是否恢复)
- 后台任务无法直接访问主会话的记忆快照(但可以读取持久化的
MEMORY.md) - 建议为长时间任务指定明确的
--name,便于后续追踪