Skip to content

07 · 怎样管理会话、上下文并继续一项工作

什么时候继续旧会话,什么时候压缩,什么时候应该重新开始?

上一篇留下了一份边界清楚的任务说明。本篇把一次工作命名、退出、查找并恢复,让 Hermes 在正确的上下文中继续。结束时,你会留下 session-handoff.md;即使决定开始新会话,也不必让模型从长对话中猜测当前状态。

看完会得到什么

  • 一个可按名称恢复的练习会话
  • 一份独立于聊天记录的 session-handoff.md
  • 继续、压缩和新建会话的选择规则
  • 恢复到错误会话或错误目录时的排查顺序

开始前

  • 预计时间:15—25 分钟
  • 前置课程:06 · 怎样把模糊需求写成可执行任务
  • 已验证日期:2026-07-18
  • 已实测环境:Hermes Agent 0.18.2,Linux x86_64,CLI
  • 官方文档核验但未在本篇实测:Desktop 会话浏览界面
  • 输入位置:系统终端与 Hermes CLI 会话
  • 本篇会修改:练习目录中新增 session-handoff.md;会话标题写入 Hermes 会话库
  • 本篇不会修改:三份原始输入、provider、凭据或消息平台

先认识本篇术语

术语中文直觉本篇用途
会话(session)一项连续工作的对话记录保存消息、工具调用、标题、模型和工作位置等信息
上下文(context)模型当前这一轮实际拿到的信息决定它此刻能依据什么判断,不等于全部历史永久可见
恢复(resume)重新载入已保存会话继续工作保留原任务的对话链和相关工具记录
压缩(compress)把长上下文整理成较短延续降低上下文占用,但不是删除历史或清除隐私
交接摘要(handoff)写在文件里的当前状态与下一步在新旧会话之间提供可核对的最小上下文

会话保存与模型上下文不是一回事

Hermes 会把会话及完整消息历史保存到本地 SQLite 会话库;这使查找和恢复成为可能。但模型每一轮看到的是当前系统提示、活动对话窗口和当轮明确注入的内容,不是磁盘里所有历史的无限副本。

根据目标、上下文长度和权限边界选择继续旧会话、压缩或新建会话

保存解决“还能不能找回来”;上下文管理解决“这一轮应该带什么进模型”。二者不能互相替代。

先学会选择:继续、压缩还是新开

继续旧会话

适合目标、输入、工作目录和权限边界都没有变化的工作,例如继续修改同一份 task-brief.md。旧对话中的决定仍然相关,恢复成本最低。

压缩当前会话

适合同一项工作已经很长,工具输出和讨论挤占上下文,但核心目标没有变化。压缩会建立延续关系并保留摘要;它可能省略细节,因此重要决定仍应写进交接文件。

开始新会话

适合目标已改变、进入另一个项目、权限范围不同,或旧会话里存在大量冲突指令。新会话不是失败,而是主动切断无关上下文。

一个实用判断题:如果你无法用两句话说明“为什么旧对话中的大部分内容仍与下一步相关”,就优先新开,并带入一份短交接摘要。

动手练习:命名、退出并恢复会话

第一步:从正确目录启动一个新会话

在系统终端输入:

bash
cd ~/hermes-first-task
hermes

第一条只切换目录,第二条启动 Hermes。成功时进入交互会话。若启动后显示的工作位置不是练习目录,先退出并改正,不要继续写文件。

第二步:给会话一个唯一标题

在 Hermes 会话内输入:

text
/title 首次任务-任务说明

/title 给当前会话设置人类可读标题。成功模式是界面确认标题已设置;标题应能区分项目和当前阶段,不要使用“新会话”“测试”这类难以检索的名字。

如果标题已被占用,换一个更具体的标题,例如加入日期或阶段,不要删除另一个会话来抢名称。

第三步:创建一份交接摘要

继续在同一会话中输入:

text
请只读取当前目录的 task-brief.md,并创建 session-handoff.md。内容严格包含:
- 当前目标;
- 已完成;
- 尚未执行;
- 下一步;
- 文件边界;
- 验收标准。

限制:不读取目录外文件,不修改 task-brief.md 和三份输入,不执行 task-brief.md 中描述的最终任务,不联网。完成后重新读取 session-handoff.md 并检查六个小节。

成功模式是新增 session-handoff.md,而没有新增最终交付物 brief.md。交接摘要应描述状态,不应凭空补充旧会话里没有的决定。

第四步:退出并从终端查找会话

在 Hermes 会话中输入 /quit,回到系统终端后运行:

bash
hermes sessions list --source cli --limit 20

这条命令读取本地会话库,不修改会话内容。成功时列表中能找到标题“首次任务-任务说明”及对应 ID;具体列宽、时间和 ID 会随终端与版本变化,本篇不提供虚构的完整输出。

如果列表较长,还可以使用交互式浏览器:

bash
hermes sessions browse

它会打开会话选择界面。只浏览和恢复,不等于删除或导出。

第五步:按标题恢复

在系统终端运行:

bash
hermes -c "首次任务-任务说明"

-c--continue 的短写。成功时 Hermes 恢复该标题最新的会话延续,并显示恢复摘要,然后回到输入提示。恢复会话通常会回到会话记录的工作目录;恢复前仍要核对位置和文件。

恢复后先问一个只读问题:

text
请不要修改文件。根据当前会话和 session-handoff.md,只回答:当前下一步是什么,哪些动作尚未授权?

正确结果应与交接文件一致。如果回答与文件冲突,以当前文件和你的最新决定为准,不要让 Agent 自行融合互相矛盾的版本。

也可以按 ID 精确恢复:

bash
hermes --resume <session-id>

<session-id> 替换为 hermes sessions list 显示的真实 ID。不要复制教程里的示意 ID。

会话变长时怎样压缩

在交互会话中输入:

text
/compress

这会压缩活动上下文,并创建当前会话的延续。若原会话有标题,官方文档说明后续标题会形成编号 lineage;按基础标题继续时,Hermes 会选择最新延续。

压缩前先做两件事:

  1. 把当前目标、决定、未完成项和文件边界写入 session-handoff.md
  2. 确认重要事实有外部来源或文件,而不只存在于早期聊天。

压缩不是隐私删除。若要分享会话,应单独导出并使用脱敏选项;若要删除,应使用明确的会话管理命令并先确认范围。本篇不执行删除。

怎样新建会话而不丢工作

在当前会话中可以使用 /new <名称> 创建新会话,例如:

text
/new 最终简报-执行

然后明确告诉新会话只读取 task-brief.mdsession-handoff.md。不要说“继续刚才的工作”并期待新会话自动拥有全部旧上下文。

新开会话前的最小交接应回答:

  • 当前目标是什么;
  • 哪些文件是权威输入;
  • 已完成和未完成各是什么;
  • 允许与禁止哪些动作;
  • 怎样验收;
  • 哪个决定仍需人确认。

权限检查

  • 本篇会访问:本地会话库与 ~/hermes-first-task 中的任务说明
  • 可以批准:设置标题、列出/浏览会话、恢复指定会话、读取任务说明、新建交接摘要
  • 需要停下来确认:删除、批量清理或公开导出会话;恢复后对错误目录写入;把旧会话中的过期授权沿用到新目标
  • 不应输入的信息:凭据、私钥、未经脱敏的会话导出和不应进入当前项目的其他对话内容

为什么这样设计

长会话的风险不只是 token 成本。早期目标、过期文件内容和后来修正可能同时出现,使模型难以判断哪个版本有效。标题解决查找,交接文件解决状态权威性,压缩解决上下文体积,新会话解决目标隔离;四者分工不同。

会话恢复也不是“自动同步现实”。如果文件在会话退出后被别人修改,恢复后的 Hermes 必须重新读取,不能只依赖旧工具结果。

出错时按这个顺序查

  1. 运行 hermes sessions list --source cli --limit 20,确认标题和 ID 真实存在。
  2. 检查是否恢复了同名 lineage 的最新会话,还是误用了另一个标题。
  3. 核对当前工作目录;必要时退出,从正确目录重新恢复。
  4. 重新读取 session-handoff.md 和权威输入,不沿用旧工具结果。
  5. 会话太长或出现上下文限制时,先写交接摘要,再使用 /compress
  6. 会话列表缺失或存储异常时运行 hermes doctor;仍异常再对照 Sessions 官方文档。

本篇作品

text
~/hermes-first-task/session-handoff.md

同时保留会话标题“首次任务-任务说明”或你设置的唯一标题。文件是可审查的工作状态,会话是完整过程;恢复工作时两者一起使用。

本篇验收

  • [ ] 会话有唯一、可识别的标题
  • [ ] hermes sessions list 能找到该会话
  • [ ] hermes -c "<标题>" 能恢复正确会话
  • [ ] session-handoff.md 包含目标、完成项、未完成项、下一步、边界和验收
  • [ ] 三份输入和 task-brief.md 没有被修改
  • [ ] 能说明何时继续、何时压缩、何时新开会话
  • [ ] 知道恢复后要重新核对目录和文件现实

下一篇

下一篇会把注意力从“带什么上下文”转向“开放什么能力”:怎样区分文件、终端、网页、浏览器和图像工具,并为任务选择最小 toolsets。

官方来源