前言¶
在 DeepSeek Harness(DSH)里跑长会话时,上下文窗口迟早会满。常见做法是再调一次 LLM 把历史压成摘要:有成本、有延迟,而且同一段对话两次压缩结果可能不一致。若你希望在 cordis 预设下做 compaction,又不想把「压缩这一步」交给模型,就需要一条不依赖 LLM、输出可复现、被压掉的内容仍能按序号找回的路径。下面介绍社区插件 dsh-vcc(维护者 mpetruc),它把对话 编译 成结构化摘要,并用 (#N) 与 vcc_recall 做确定性召回。
这是什么¶
dsh-vcc(包名 @local/dsh-vcc,版本 1.0.0,MIT)面向 DSH 的 Deterministic VCC compaction:会话超出窗口时,不调用 LLM,而是用确定性流水线把对话整理成稳定摘要,并保留对完整会话日志的无损索引。实现思路改编自 pi-vcc 的 view-oriented compiler;在 SkillHub 上归类为 工作流。插件通过 cordis.patch.yml 挂入 cordis agent 预设的 compaction 组,并关闭同组自带的 LLM compaction 后端。
核心功能¶
结构化摘要¶
压缩结果包含固定标题区块,并在多次 compaction 之间合并(去重、跨次文件合并;易变区块每次重建):
- [Session Goal] / [Files And Changes] / [Commits] / [Outstanding Context] / [User Preferences]
- 一段按重要性排序的简要 transcript(条目以
---分隔),每条消息保留无损的(#N)引用,对应会话日志中的 seq。
vcc_recall¶
(#N) 与 vcc_recall 使用的索引一致;摘要里看不到的细节,可以用工具按 seq 或语义再查:
vcc_recall(query: "redis cache decision") → ranked, paged hits (#N)
vcc_recall(expand: [42]) → full untruncated content
vcc_recall(query: "#42:auth.ts") → drill into a file from an entry
vcc_recall(query: "#42:auth.ts:full") → all lines of that file content
vcc_recall(mode: "touched") → files worked on, with entry indices
vcc_recall(scope: "all") → also reach edited/retried branches
命令¶
/vcc:预览「下一次 compaction 会写出的摘要」,不修改会话。/vcc-recall:以人类命令形式使用与vcc_recall相同的召回能力。
与 DSH compaction 的衔接¶
DshVccCompactionEngine 继承 basic compaction 后端,保留阈值/溢出触发、区域选择、maxTokens 收缩、重试与持久化等机制,仅把 summarize 换成 pi-vcc 核心的 compileRanked。返回 { summary, rawOutput, provider: 'dsh-vcc', model: 'deterministic' },不走 llmStreamCall。
安装与启用¶
安装方式以 README 为准:通过 plugin_manager 的 install_bundle,指定插件目录(示例路径如下,请换成你本机 clone 或解压后的实际路径):
plugin_manager → install_bundle → target: /home/user1/dsh-compaction/dsh-vcc
说明:
install_bundle会在 profile 的package.json中记录@local/dsh-vcc: link:<this dir>,并应用cordis.patch.yml;首次安装无需重启。- 若已安装同包并要替换为新版本,需要 重启 profile 以加载新模块。
- 验证:用
cordis_inspect_query查看 Host Config / Tool / Service;在 cordis 预设会话中执行/vcc看实时预览,执行/compact触发压缩,再用vcc_recall查询被 shadow 的历史。
插件以当前 DSH 进程权限运行;安装前请自行阅读仓库源码与 NOTICE 中的许可证与归属说明。
典型用法¶
- 在 cordis 预设下开启会话,对话变长直至触发或手动执行 compaction。
- 压缩前用
/vcc确认即将写入的摘要结构是否符合预期。 - 压缩后若摘要里某条
(#42)信息不够,调用vcc_recall(expand: [42])取完整内容,或用query/#N:path做检索与下钻。 - 需要「动过哪些文件」时用
vcc_recall(mode: "touched");需要包含编辑/重试分支时用scope: "all"。
适用场景与注意¶
适合谁
- 已在 DSH 中使用 cordis 预设、且希望 compaction 零 LLM 调用、零网络、同输入同输出 的开发者。
- 长会话里需要结构化摘要(目标、文件变更、未决上下文等),又希望被压掉的内容仍能通过 seq 确定性找回的场景。
v1 已知范围(README)
- 仅对 cordis 预设生效;
standard/ptc/minimal仍使用自带 compaction 后端。 - 仅当前会话可搜索,不能跨历史 session 召回。
DSH 生态强调「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-vcc 把长会话 compaction 从「再调一次模型」改成「确定性编译 + (#N) 召回」,在 cordis 预设下与现有 compaction 生命周期对齐。若要查看简介与分类,可打开 SkillHub 目录页;安装、API 与模块划分以 GitHub 仓库 README 为准。
- 目录页:https://www.skillhub.cn/plugins/mpetruc/dsh-vcc
- GitHub:https://github.com/mpetruc/dsh-vcc