dsh-context-manager:可审查的对话上下文压缩

前言

在 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 字符,超限会在调用模型前拒绝。

预览、应用与压缩历史

典型闭环:

  1. 生成 preview(摘要请求可能走当前会话最近路由的模型;标记 purpose: 'compaction' 时,宿主插件可路由到专用 summarizer)。
  2. 查看替换文本、笔记、生成 usage、估计的 local token 变化。
  3. 勾选 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 为准。

典型用法

在已有会话中:

  1. 点击标题旁的 Context,或从命令菜单进入 /context-manager。
  2. 查看 local context 与组成;必要时 Read ACP status(若 agent 具备该工具)。
  3. 对较早的历史分组设置 Keep、Summarize 或 Omit;配置 tool/file output 的处理方式。
  4. 需要时在分组上 Add notes to preserve。
  5. 点击生成 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 路径。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye