DSH Plugin MarketA community catalog for DeepSeek Harness plugins

dsh-ctxopt-compaction

Verified Memory & context ★ 9 0.0.2

Bounded context compaction, session-scoped summary reuse, explicit memory controls, and diagnostic-preserving tool pruning for DeepSeek Harness.

What it is

Bounded context compaction, session-scoped summary reuse, explicit memory controls, and diagnostic-preserving tool pruning for DeepSeek Harness.

How to install

Run this in the DSH web profile, then refresh the page.

$ dsh plugin --profile web add dsh-ctxopt-compaction@0.0.2

DSH versions accepted

*

Author and traction

chunsi-w · ★ 9 · Updated 2026-10-04

About this plugin

dsh-ctxopt-compaction

DeepSeek Harness 的上下文压缩插件,当前版本 0.0.1。在宿主原有压缩流程上增加收益判断、有界摘要缓存、显式记忆控制,以及保留诊断信息的工具输出裁剪。

适合长对话、代码排查和大量工具日志场景。压缩仍由模型生成摘要,不能保证所有历史信息都被保留。

功能

| 能力 | 行为 |

| --- | --- |

| 压缩收益判断 | 按实际待替换历史估算收益,排除未被替换的 system 消息;默认不足 512 估算 token 的片段跳过摘要调用。 |

| 摘要质量与预算 | 摘要过短、超预算或节省不足时拒绝替换,保留原历史;默认不额外重试退化摘要。 |

| 摘要缓存 | 按会话、输入、工具历史、路由及配置区分缓存,限制条数、字节数和有效期。 |

| 可控记忆 | 通过明确指令保存、更新、删除键值事实与待办,将当前状态写入压缩 checkpoint。 |

| 诊断保留 | 裁剪长工具输出时,在头尾之间保留预算允许的中段错误、文件、工单等诊断信息。 |

引擎与裁剪器是同一个插件的两个组件。历史选区、工具调用配对、事务提交和会话重放继续使用宿主实现。

环境要求

  • Node.js ≥20,ES modules。
  • 已安装依赖并构建完成的 DeepSeek Harness;此前适配环境为 0.2.0-rc.2,commit 639ed015397290b3745d163aafe02ffee4aa3f84。
  • 宿主提供 package.json 中声明的 peer dependencies,包括压缩引擎、工具裁剪、LLM、会话与 Schemastery。
  • API、模型及模型上下文窗口在宿主中配置,本插件不保存 API Key。

这是宿主插件,不能作为独立聊天服务运行。其他宿主版本需要重新验证兼容性。

获取与打包

git clone https://github.com/chunsi-w/dsh-ctxopt-compaction.git
cd dsh-ctxopt-compaction
npm pack

源码为 JavaScript,无需转译。生成的包名为 dsh-ctxopt-compaction-0.0.1.tgz;打包本身不需要启动模型或 Web 服务。

Headless 加载

仓库内的 cordis.patch.yml 面向宿主的 headless 顶层组合:插入本插件两个组件,并禁用同层的默认压缩引擎与裁剪器。

在已准备好的宿主源码目录执行,替换插件的绝对路径:

pnpm dsh plugin --profile headless add file:/absolute/path/to/dsh-ctxopt-compaction
pnpm dsh --profile headless --dump-config

先检查生成配置中是否包含 ctxopt-compaction 和 ctxopt-tool-result-pruner,并确认同层默认组件已禁用。以上命令使用宿主的 bundle 安装机制;本仓库没有提供独立安装器。

Web 加载

Web 的 Standard 预设在 compaction 隔离组中创建引擎。仅安装顶层 bundle 或直接传入仓库的 cordis.patch.yml,不足以替换该组内的默认组件。

配置 Web 时,以当前宿主的 packages/bundle/web-app/presets/standard.patch.yml 为准:

1. 将现有 Standard 预设的完整 config 放入一份 - id: preset-standard 的覆盖配置中,保留其他工具和隔离组。

2. 在其中的 compaction 组内,将 compaction-basic 的 name 改为本仓库 src/engine.js 的绝对路径,将 tool-result-pruner 的 name 改为 src/pruner.js 的绝对路径。

3. 分别在这两项的 config 中填写引擎和裁剪参数,将完整文件保存为 ctxopt-web.patch.yml。

下面仅展示组内两项的替换内容,不是完整 Web 覆盖文件:

- id: compaction-basic
  name: /absolute/path/to/dsh-ctxopt-compaction/src/engine.js
  config:
    thresholdRatio: 0.4
    headroomTokens: 512
    retainTokens: 1400
    maxTokens: 1536
    compactionRetries: 1
- id: tool-result-pruner
  name: /absolute/path/to/dsh-ctxopt-compaction/src/pruner.js
  config:
    thresholdChars: 8192
    headChars: 4096
    digestChars: 1536
    tailChars: 1024

在宿主源码目录检查完整覆盖配置,再启动:

pnpm dsh web --patch /absolute/path/to/ctxopt-web.patch.yml --dump-config
pnpm dsh web --patch /absolute/path/to/ctxopt-web.patch.yml --no-open --port 3180

打开启动日志打印的完整 URL,使用 Standard 预设创建会话。切换插件或配置后重启 Web 进程;已经写入旧会话的 checkpoint 不会因重启而消失。

Compare in this category

The five most-starred plugins in the same category.

PluginAuthor StarsVersionUpdated
EverOS EverMind-AI 13.9K 0.0.0 2026-11-10
billion-context ranxianglei 5.9K 0.1.213 2026-11-10
dsh-context bowenliang123 4.8K 0.83.1 2026-11-10
memsearch zilliztech 2.9K 0.0.0 2026-11-10
dsh-mnemon omdsh-dev 957 0.5.43 2026-11-08