dsh-lossless-context:可溯源的 DSH 上下文压缩与检索

前言

在 DeepSeek Harness(DSH)里跑长会话时,上下文窗口迟早会顶满。宿主自带的 compaction 能删掉或折叠旧内容以腾出 token,但智能体往往还需要回到「当时原文说了什么」——例如某次工具调用的完整输出、某段决策依据。若压缩后只剩一段无法对照源事件的摘要,后续检索和审计都会变难。

Lossless Context(仓库 Kerberos255/dsh-lossless-context)是面向 DSH 的分层上下文压缩与检索后端:走原生 compaction 事务,不替换或删除源会话日志;在成功提交前把有界事件组整理成可追溯的分层摘要 DAG,并暴露会话内工具供搜索、查看 DAG 与展开原文。维护者为 Kerberos255,分类属于模型推理相关能力;插件为 MIT 许可,当前 package 版本为 0.1.31(以仓库 package.json 为准)。

这是什么

一句话:在保留 DSH 原生会话记录的前提下,做分层摘要、本地可检索索引,以及可选的已验证 DM 会话轮换。

数据流(与 README 一致)如下:

Native session events
  → native compaction selection
  → bounded summary leaves → merged summary DAG
  → native commit (only on success)
  → searchable index with references to source event IDs

当前会话仍保留原生记录;检索与展开会解析回原始 source event ID。模型与 provider 的上限及既有策略控制阈值;若拿不到模型元数据,会安全报错而不是臆造预算。

核心功能

原生 compaction,不丢源日志

插件使用 DSH 原生 compaction 事务,不会替换或删除源会话日志。无效、已取消、过大或截断的摘要不会被提交;多阶段压缩失败时不会发布不完整 checkpoint;下次重试或重启时,仅在源内容、模型与摘要设置一致时复用片段。

分层摘要与本地索引

对受界、工具调用安全的事件组做摘要,形成分层的 source DAG。衍生索引存放在 DSH 数据目录下,不是第二份完整对话历史。

默认叶子 source input 分块为 24,000 tokens(指输入分块,不是 completion 上限)。成功且完整的叶子与 condensed 摘要会在本地 SQLite 衍生索引中缓存最多 7 天;单会话最多 128 条、全局 512 条,每条上限 128 KiB。默认单次 summarizer 请求超时为 240 秒,以便较慢但合法的合并摘要仍能完成。

会话工具 lcm_recall

暴露一个会话级模型工具 lcm_recall,支持:

  • action: 'search'(默认):检索
  • action: 'describe':查看摘要 DAG
  • action: 'expand':按 sequence、DAG 节点或 query 展开 raw source

智能体在压缩后的上下文里仍可按需拉回支撑原文。

压力与 idle 维护

常压阈值检查会在回合结束后调度 idle compaction;活跃回合仅在迫近压力或 provider 确认 context overflow 时压缩。两种模式共用相同的 retainRatio / retainTokens 预算(含模型相关策略);阈值(例如 0.5)控制的是何时压缩,而非近期文本保留多少。

插件 bundled 的 MIT 许可原生 helper 为 RC.2 的 compactNow 安全路径补充了 retained-tail 参数,其余 idle 维护、完整 tool-pair 边界、持久事务、取消与 checkpoint 刷新仍对齐原生行为;升级 DSH 时需再对照 native/SOURCE.md。

可在 idle 维护阶段预生成可复用的摘要叶子,且不提交 compaction。传输错误与截断摘要分别有界重试;超时与输出预算可独立配置。

可选:Dream & Memory 后的 DM 轮换

可选地在经核验的 Dream & Memory 交接完成后,轮换符合条件的、owner 已验证的 Discord / 飞书私信会话;近期轮换失败会退避,而不是每个 idle 回合都重试。普通 desktop / 群聊 / 未验证会话不会被静默迁移。

可编辑压缩指导语

叶子与合并摘要可附带可定制的默认质量指导(强调项目决策、精确路径与配置名、验证证据、任务状态变化等)。设置页提供 Restore default。指导语补充原生 compaction 协议;工具配对、源保留、取消与完整事务检查不变。修改摘要策略会使过期的可复用叶子失效。

可选诊断

可向 dsh-plugin-diagnostics 发送隐私受限的操作与失败元数据(事件类型、状态、固定错误码、耗时);不包含对话内容与凭据。诊断插件为可选,不改变宿主依赖。

安装与启用

宿主需具备兼容的 DSH、原生 session、token-meter 与 compaction 服务;peer 依赖见仓库 package.json。

安装命令(README 原文):

dsh plugin --profile desktop add github:Kerberos255/dsh-lossless-context

安装后:

  1. 打开 Settings → Plugins → Lossless Context,启用 backend。
  2. 在需要使用该后端的 agent preset 上,选择 compaction backend dsh-lossless-context/agent。
  3. 仅安装 settings 插件不能保证每个 preset 都使用该 backend;修改插件代码或 preset 组成后需重启。

插件以当前 DSH 进程权限运行;安装前请自行审阅源码与 MIT 许可证。

典型用法

启用 backend 后的会话内检索

压缩提交成功后,索引会引用 source event ID。智能体通过 lcm_recall 在会话内操作:

  • 默认 search:在摘要与索引中查找相关内容。
  • describe:查看当前摘要 DAG 结构。
  • expand:按 sequence、DAG 节点或 query 展开对应 raw source。

具体参数形状以插件实现与 DSH 工具协议为准;策略与回归测试可在仓库根目录执行 npm test(便携策略测试);真实压缩与摘要质量仍需活跃模型与 DSH 宿主。示例配置见仓库 config.example.json。

与相关插件的关系

适用场景与注意

适合谁: 长时间 DSH 智能体会话、需要在压缩后仍能追溯原文与工具输出、并希望压缩策略随当前所选模型调整 headroom、目标摘要长度与输出预算的开发者。

安全与存储: 只存衍生索引;私信自动轮换需要已验证的 owner / workspace 绑定与完成的 Dream 证据。成功的单元测试不能替代线上模型 compaction 测试。

生态说明: DSH 社区插件目录 hosted 于独立站点(如 SkillHub 目录页),与 DeepSeek / 幻方无官方从属关系;安装与审阅请以 GitHub 仓库为准。

结尾

Lossless Context 把 DSH 原生 compaction 与分层、可检索的摘要 DAG 接在一起:源会话仍在,智能体用 lcm_recall 搜索、描述或展开原文;idle 与压力策略、失败重试与可选 DM 轮换都在 README 中有明确边界。

  • 目录页:https://www.skillhub.cn/plugins/Kerberos255/dsh-lossless-context
  • 源码与文档:https://github.com/Kerberos255/dsh-lossless-context
羽毛球分组比赛记分
小程序二维码

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

Xiaoye