context-mode 恢复会话完整指南:--continue 与 /resume 全状态还原详解
2026/8/30 9:48:01 网站建设 项目流程

context-mode 恢复会话完整指南:--continue 与 /resume 全状态还原详解

【免费下载链接】context-modeContext window optimization for AI coding agents. Sandboxes tool output (98% reduction), persists session memory, and enforces routing across 17 platforms via MCP + hooks.项目地址: https://gitcode.com/GitHub_Trending/cl/context-mode

context-mode是一款面向 AI 编程智能体的上下文窗口优化工具:它沙箱化工具输出(最高降低 98% 的上下文占用),将会话记忆持久化到本地 SQLite,并通过 MCP + hooks 在 17 个客户端平台强制执行路由。本文带你彻底搞懂它的会话恢复能力——如何用--continue/resume在会话被压缩或中断后一键还原全部工作状态,让 AI 从你上一条指令继续干活,而不用你重复任何解释。

为什么你需要 context-mode 的会话连续性

AI 智能体在长任务中会不断消耗上下文窗口:读文件、抓网页、跑测试……一旦窗口写满,客户端会压缩(compact)对话来腾空间。压缩之后,模型常常"失忆"——忘了自己在改哪些文件、哪些任务进行中、你最后一条指令是什么。

context-mode 的Session Continuity(会话连续性)正是为解决这个问题而设计:

  • ✅ 会话期间每一个有意义的事件(文件编辑、Git 操作、任务、错误、你的决策)都被持久化到按项目隔离的 SQLite 数据库
  • ✅ 对话被压缩,或者你用--continue--resume/resume恢复时,工作状态自动重建,模型直接从你上一条提示词继续,不需要你重复任何内容;
  • ⚠️ 注意一个关键规则:如果不带--continue启动新会话,上一个会话的数据会被立即清理——新会话意味着干净起点。想接续上次工作,恢复参数是必须的。

五大 Hook 协同:会话恢复是如何工作的

会话恢复不是单一命令的功劳,而是多个生命周期 Hook 协同的结果(完整实现见 hooks/sessionstart.mjs 与 hooks/precompact.mjs):

Hook在恢复流程中的角色
PostToolUse每次工具调用后捕获文件、任务、Git、错误等事件
UserPromptSubmit捕获你的决策与修正("用 X 代替 Y"、"别做 Z")
Stop捕获智能体回合结束状态
PreCompact压缩前读取全部事件,构建优先级快照并入库
SessionStart压缩后或恢复时,取回快照重建工作上下文

核心时序如下:

PreCompact 触发 → 从 SQLite 读取该会话全部事件 → 构建按优先级分层的 XML 快照(≤ 2 KB) → 快照存入 session_resume 表 SessionStart 触发(source: "compact" / "resume") → 取回已存储快照 → 写入结构化事件文件 → 自动索引进 FTS5 全文库 → 构建包含 15+ 分类的 Session Guide → 将 <session_knowledge> 指令注入上下文 → 模型带着完整工作状态,从你最后一条提示词继续

三种恢复方式:--continue、--resume 与 /resume 用法详解

在 Claude Code 等支持会话恢复的客户端中,context-mode 对三种恢复入口全部生效:

  1. claude --continue—— 继续当前项目最近一次会话。SessionStart Hook 会以source: "resume"触发,优先读取该会话 ID 的实时事件表;
  2. claude --resume <session-id>—— 恢复指定会话;
  3. /resume(选择器)—— 在会话列表中挑选任意一段历史对话。

其中/resume选择器有一个巧妙设计:它会给恢复的会话发一个全新的 session id,其实时事件表是空的。此时 hooks/sessionstart.mjs 会自动降级,从项目的session_resume表中认领最近一份未被消费的快照claimLatestUnconsumedResume),照样完成状态重建。换句话说:选择器负责选对话,context-mode 负责把之前的工作状态"注水"回来。

全状态还原:Session Guide 到底还原了什么

恢复完成后,模型收到的不是一堆原始日志,而是一份结构化的Session Guide叙事文档,涵盖 19 个类别:

  • Last Request—— 你最后一条提示词,模型不会反问"我们刚在做什么";
  • Tasks—— 复选框格式的任务清单([x]已完成 /[ ]待办);
  • Files Modified—— 会话中触碰过的全部文件;
  • Key Decisions—— 你的修正与偏好("用 X 代替 Y");
  • Unresolved Errors—— 尚未修复的错误 + "错误→修复"配对;
  • Git—— 执行过的 checkout / commit / push / status 操作;
  • Plans、Constraints、Blockers、Environment—— 计划模式、发现的限制、阻塞项、工作目录与环境;
  • Project Rules、MCP Tools Used、Skills Used等其余类别。

快照有≤ 2 KB 的预算,采用优先级分层:预算紧张时,低优先级事件(会话意图、MCP 工具计数)先被丢弃,而关键状态(活动文件、任务、规则、决策)永远保留。更细粒度的事件数据同时被索引进 FTS5 全文库,模型可用ctx_search按需精确检索。

快照如何构建与存储:关键源码导读

环节说明关键文件
事件捕获Hook 从每次工具调用中提取结构化事件hooks/posttooluse.mjs
快照构建优先级分层的 XML 快照生成src/session/snapshot.ts
会话数据库按项目隔离的 SQLite 存储与快照读写src/session/db.ts
恢复注入startup / compact / resume / clear 四分支处理hooks/sessionstart.mjs
会话指令Session Guide 与 FTS5 索引写入hooks/session-directive.mjs

两个容易忽略但很有用的细节:

  • 💡--continue会话还保留已索引的文档ctx_fetch_and_index的 24 小时 TTL 缓存跨重启生效,恢复会话无需重新抓取,不浪费任何上下文 token;
  • 💡数据不会无限堆积:不带--continue的全新启动会触发清理(保留 7 天窗口),配合ctx purge可随时清空知识库。

平台支持:哪些客户端能恢复会话

会话恢复依赖 Hook 支持,不同平台完整度不同。以 Claude Code 为例是完整支持:全部 Hook 触发、捕获工具事件与用户决策、构建压缩快照,并在压缩、--continue--resume/resume后恢复状态;Gemini CLI、VS Code Copilot、JetBrains Copilot 为高覆盖;Cursor 目前暂不支持压缩后的会话恢复。完整能力对照表见 docs/platform-support.md。

会话恢复排障清单

遇到问题时,按顺序检查:

  1. ctx doctor—— 一键诊断运行时、hooks 注册、FTS5 与插件状态,全部应显示[x]
  2. ctx stats—— 查看会话事件数量,确认事件确实在被捕获;
  3. 确认启动时带了--continue/--resume,或使用了/resume选择器——否则数据按设计已被清理;
  4. 相关行为回归测试可参考 tests/session/continuity.test.ts 与 tests/session/resume-leg-boundary.test.ts,覆盖压缩恢复与 resume 边界场景。

写在最后

context-mode 把"会话记忆"从模型的一次性上下文,变成了本地可持久、可检索、可回滚的资产。--continue一行命令背后,是 PreCompact 建快照、SessionStart 注水还原、FTS5 按需检索的完整链路——下次 AI 忘记"我们在做什么"时,你只需要恢复会话,而不是重讲一遍需求。🚀

【免费下载链接】context-modeContext window optimization for AI coding agents. Sandboxes tool output (98% reduction), persists session memory, and enforces routing across 17 platforms via MCP + hooks.项目地址: https://gitcode.com/GitHub_Trending/cl/context-mode

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询