前言¶
在 DeepSeek Harness(DSH)里跑长会话时,上下文会不断堆叠:系统指令、用户消息、助手回复、工具输出、附件引用等。Harness 自带自动 compaction,但开发者往往需要在「减 token」和「保留决策与约束」之间自己权衡,且希望在改上下文之前看到替换结果。
下面介绍社区插件 dsh-context-manager(GitHub:SkanderBog/dsh-context-manager)。它在会话标题旁增加 Context 入口,并在命令菜单提供 /context-manager,用于查看用量、按历史分组选择保留 / 摘要 / 省略,并在确认预览后再写入 checkpoint。插件不修改桌面源码,不依赖额外后台服务或专用 model tool。
这是什么¶
dsh-context-manager 是面向 DeepSeek Harness 0.2.0-rc.2 及更高版本的独立 feature 插件(当前发布版本 v0.2.0,MIT 许可证)。维护者为 SkanderBog;在 SkillHub 社区目录中归类为「记忆」。
一句话定位:Inspect and selectively compact DeepSeek Harness conversation context with reviewable checkpoints——即「检查并选择性压缩会话上下文,且压缩结果经可审查的 checkpoint 落地」。
核心功能¶
上下文面板与用量分解¶
打开 Context 后,可查看估计的上下文占用及构成,包括:instructions、用户消息、助手回答、stored reasoning、工具/文件输出、工具定义、附件引用等。
面板将 local context(Harness 上下文计量器的会话表面估计)与 the last reported model request(最近一次可用 usage 的 provider 输入/输出计数)分开显示。缺失的 usage 显示为 unavailable,不会显示为 0。
若当前 agent 可见 acp_status 工具,可点击 Read ACP status 经 Harness 常规模型工具与权限管道读取报告(不发起 model 请求,约 10 秒超时)。这与 ranxianglei/billion-context 等 ACP 边界兼容,但不要求安装这些项目。
分组策略:Keep / Summarize / Omit¶
对较旧的历史分组,可分别选择:
- Keep:保留完整交换(含 reasoning 与 tool 配对结构)。
- Summarize:用普通文本 checkpoint 替换整段「平衡」范围。
- Omit:从活跃上下文中移除。
受保护内容(不可被上述操作随意拆掉)包括:最新一轮交换、system/developer instructions、Harness instruction/catalog/runtime 快照、未完成的 tool 交换。
摘要输入是新的、无 tool 的文本 transcript:不含 reasoning,文档内容标为 data,并提示模型保留目标、决策、约束、已验证结果、路径与未完成工作。插件不会改写保留消息上的 reasoning 或 provider 元数据——这是为避免 adapter 重放时因缺少 reasoning signature 或完整 tool-call/result 而损坏会话。
工具输出与决策笔记¶
生成摘要前,可配置摘要对 recorded tool/file outputs 的处理:摘要、保留原文或省略。「Keep original text」保留的是日志里记录的输出文本,不会重新读盘或保留图像像素;附件图像不会做视觉摘要,需保留含附件的分组。
可选 Add notes to preserve:为选中分组写入决策、被拒方案及原因、风险或下一步等。笔记以 verbatim 块附加到经审查的 checkpoint,后续 Context Manager 摘要会保留合法 note 块及出处。单条笔记上限 2000 字符;一个 summary range 最多 32 条笔记、合计 16000 字符,超限会在调用模型前拒绝。
预览、应用与压缩历史¶
典型闭环:
- 生成 preview(摘要请求可能走当前会话最近路由的模型;标记
purpose: 'compaction'时,宿主插件可路由到专用 summarizer)。 - 查看替换文本、笔记、生成 usage、估计的 local token 变化。
- 勾选 review 后 Apply(仅当 agent idle 时允许)。
Preview 在约 10 分钟、新 preview、插件重载或会话变更后过期;未 Apply 前不改变活跃上下文。Omit 类 preview 不调用模型。Apply 后写入标准 Harness compaction 事件;原始 log 仍在,但本版本无一键 undo。Keep 仅对本次操作生效,不能永久钉住以对抗 Harness 自动 compaction。
Load compression history 读取 Harness 标准 compaction/summary 记录;View originals 只读展示来源 event ID 对应的消息(不恢复进模型上下文)。长会话有分页与字符上限,以保证面板响应速度。
安装与启用¶
插件以 DeepSeek Harness 插件运行时为目标,不是 DeepSeek 消费端聊天应用。package.json 声明 Node ^22.19.0 || >=24.0.0,以及 DSH >=0.2.0-rc.2(Store 兼容矩阵还列出 0.2.1-alpha.1、0.2.1-alpha.2、0.2.1-rc.2)。
官方 README 给出的打包安装方式如下。先从 v0.2.0 Release 下载归档,再执行(将 profile 名与路径换成你的环境):
dsh plugin --profile tauri add /absolute/path/dsh-context-manager-0.2.0.tgz
社区 Linux 桌面在文档中测试过的 profile 名为 tauri;其他桌面发行版可能使用 desktop。修改 reserved profile 前需退出对应桌面;更新插件后应重启 Harness——仅重载前端或切换组件可能使已导入的 host 模块仍被缓存。
部分社区桌面构建会在启动时误删本地 .tgz 安装。README 建议在该类构建上保留项目目录,执行 npm ci 与 npm run build 后,用目录路径安装:
dsh plugin --profile tauri add /absolute/path/dsh-context-manager
安装期间需保留该文件夹。SkillHub 目录页当前标记 CLI 的 install/start/uninstall/rollback 操作为 unknown,安装前仍以 README 与 Release 为准。
典型用法¶
在已有会话中:
- 点击标题旁的 Context,或从命令菜单进入
/context-manager。 - 查看 local context 与组成;必要时 Read ACP status(若 agent 具备该工具)。
- 对较早的历史分组设置 Keep、Summarize 或 Omit;配置 tool/file output 的处理方式。
- 需要时在分组上 Add notes to preserve。
- 点击生成 preview,核对替换文本与 token 估计,勾选 review,在 agent 空闲时 Apply。
若只需核对过去 compaction,使用 Load compression history 与 View originals,无需再次调用模型。
适用场景与注意¶
适合:长会话智能体开发、需要人工把关再压缩上下文、希望保留结构化决策笔记、或与 billion-context / ACP 并用时区分「本地历史估计」与「代理侧有效输入」的场景。
权限与成本:摘要生成走 Harness 已配置的 LLM 服务,可能产生 provider usage;Omit-only preview 不调用模型。Apply 会通过 Harness 持久化写入 compaction 事件。插件在 当前 DSH 进程权限下运行;安装前应阅读源码、Store compatibility and permissions 表与 MIT 许可证,自行评估是否满足环境要求。
分类估计使用 Harness 固定文本启发式,各类别之和未必等于总量;CJK、tool schema、图像计价等与 provider 账可能不一致。摘要质量依赖模型,应用前务必审查 preview。
链接¶
DSH 生态强调「一切皆插件」;SkillHub 为独立社区站点,与 DeepSeek / 幻方无官方从属关系。若你已在 Harness 上维护长会话,需要可审查、可笔记、可对照压缩历史的上下文管理,dsh-context-manager 提供的是一条不改动桌面源码的手动 compaction 路径。