前言¶
在 DeepSeek Harness(DSH)里做长会话时,上下文窗口会逐渐被历史消息占满。宿主在接近容量上限时会触发原生自动压缩,但开发者往往不清楚「还剩多少」「该不该先手动压一轮」「何时该开新会话并把状态带过去」。社区里已有多种压缩、交接类插件,各自侧重策略或告警方式不同。
下面介绍维护者 cfanzx 发布的 dsh-compact-relay(压缩接力):在桌面输入框旁挂一个 28px 环形指示器,实时反映占用率与压缩评估状态,并在用户确认后再执行压缩或九段式会话交接。插件归类为社区目录中的「记忆」类,当前版本 0.3.3,采用 MIT 许可证;仓库在 GitHub 上约有 3 stars。
这是什么¶
dsh-compact-relay 是面向 DSH 0.2.x 的插件,定位是「输入框上下文状态指示与会话管理」。它不替代 DSH 原生压缩机制,而是读取阈值、可视化容量、提供预览确认式压缩,以及结构化交接与消息锁定。默认参数已针对 DSH 0.2.x 适配,挂载在现有输入框旁,不必改变既有操作流程。
指示环与状态含义¶
指示环按压缩评估逻辑分段显色,并标出建议压缩点、已锁定消息位置,以及 DSH 原生自动压缩线(默认读取 compaction-basic.thresholdRatio,即 80%)。
| 视觉 | 含义 |
|---|---|
| 灰色弧 | 低于最小压缩阈值,暂不建议压缩 |
| 蓝色弧 | 常规容量区间已满,可手动压缩释放空间 |
| 琥珀色弧(带缺口) | 越过压缩判断点,缺口标识建议压缩点;可点击预览估算 |
| 红色弧 | 达到交接阈值,建议生成九段式交接并切换新会话 |
| 紫色刻度 | DSH 原生自动压缩线 |
| 品红色块 | 已锁定消息在历史中的分布 |
| 整环红色闪烁 | 已越过原生自动压缩线,即将触发宿主自动压缩 |
鼠标悬停可查看已用容量、累计压缩次数、当前操作建议、压缩判断点、原生自动压缩线及已锁定消息数量。
核心功能¶
状态可视化监控¶
插件订阅会话投影数据,在输入框旁持续更新占用率。越过原生自动压缩线时整环红色闪烁,便于在自动压缩触发前主动处理。
预览与确认压缩¶
压缩不会在未确认时改写历史。执行 /bc(或通过指示环菜单)可先看到待压缩范围、消息条数及预计释放容量;确认后执行,取消则不动记录。已 /pin 锁定的消息在压缩时自动跳过。
结构化会话交接¶
执行 /handoff 会生成包含九个标准部分的交接文档:总体目标、约束条件、已完成项、当前进度、涉及文件、关键决策、已知问题、未完成项、下一步计划。插件在当前工作区创建新会话、注入该文档并切换,原会话完整保留。
关键消息锁定¶
/pin 与 /unpin 标记压缩时必须保留的消息;锁定项在指示环上为品红色块,在菜单列表中为锁定行。
安装与启用¶
环境要求:DSH 桌面版或 dsh web 0.2.x(README 记载已于 0.2.1-rc.2 测试通过),Node.js 22+(跟随 DSH 自带运行时)。安装完成后需重启 DSH;插件内部配置保存后立即生效,无需再次重启。
npm 包名安装:
dsh plugin --profile desktop add dsh-compact-relay
桌面版也可在 插件 → 添加插件 中输入包名。从 GitHub 安装:
dsh plugin --profile desktop add github:cfanzx/dsh-compact-relay
插件以当前 DSH 进程权限运行。安装前建议在 GitHub 仓库 查看源码与 MIT 许可证,确认符合你的安全与合规要求。
设置项¶
配置入口:设置 → 压缩接力(DSH 0.2.1+ 位于账号菜单内)。
- 压缩提示:最小压缩线、压缩提醒线、交接提醒线,控制告警时机。
- 压缩行为:摘要保留份数上限、近期原文保留 Token 数、交接文档存储目录。
- DSH 原生自动压缩:读取宿主当前阈值,可开关原生自动压缩(修改 profile 前自动生成备份,重启后生效)。
- 颜色与外观:五项基准色,随浅色/深色主题派生。
- 帮助 / 关于与危险操作:图例、反馈入口、版本与配置路径、恢复出厂默认。
插件状态保存在 ~/.dsh/compact-relay.json,交接文档在 ~/.dsh/handoffs/,纯本地、无外部同步。
典型用法¶
| 命令 | 作用 |
|---|---|
/bc |
预览压缩:范围、条数、预计释放容量 |
/bc confirm |
执行已预览的压缩 |
/handoff |
九段式交接文档 + 新建并切换会话 |
/pin / /unpin |
锁定或解锁消息 |
/bctest |
小范围空跑(开发调试) |
建议流程:观察指示环颜色 → 琥珀色时 /bc 预览并确认,或红色时 /handoff 交接 → 对必须保留的上下文使用 /pin。
适用场景与注意¶
适合在 DSH 桌面输入框旁做长任务、需要可见容量与「先预览再压」的开发者。摘要质量取决于所选模型;插件含九段式模板、格式校验与单次重试,但不保证产出质量。
功能边界(README 明确说明):
- 不替代宿主压缩;仅在设置页提供原生压缩开关,告警与展示为主。
- 仅在用户确认压缩或执行交接时替换对应历史;不篡改提示词与模型回复。
- 环形指示器、
/bc、/handoff依附桌面输入框与斜杠命令;headless 或 QQ / 微信等桥接链路不加载,在这些链路里发/bc会被当作普通消息。 - 当前界面为简体中文;英文界面在后续计划中,排期未定。
结尾¶
dsh-compact-relay 把上下文占用、压缩判断与交接阈值收拢到输入框旁的一个环里,用预览确认和消息锁定降低误压风险,用九段式 /handoff 在长会话边界上接力状态。社区目录页:cfanzx/dsh-compact-relay;源码与 Issues:github.com/cfanzx/dsh-compact-relay。