前言¶
在 DeepSeek Harness(DSH)里用单个会话扛长任务时,上下文会越积越多:继续聊容易在尾部出错,硬压缩或换新会话又可能丢掉已经对齐过的状态。交接文档可以补课,但没有统一的闸门、体检和压缩时机,运维成本会落在人身上。dsh-handover 是 MingMaple 维护的工作流类插件,把「全局」交接、水位闸门、会话清点与上下文压缩续跑做成工具与设置页,只走宿主公开扩展点,不改 DSH 本体。
这是什么¶
- 名称:
@mingmaple/dsh-handover(GitHub:MingMaple/dsh-handover) - 定位:DeepSeek Harness 插件——会话水位、交接文档体检与上下文压缩续跑
- 许可:MIT;当前公开版本 0.9.12(
package.json) - 宿主要求:
engines.dsh为>=0.2.1-rc.2 <0.3.0-0,支持 desktop / web profile;依赖 DSH 的ctx.compaction服务,未挂载时压缩相关工具会明确报错
插件按会话角色装配工具与提示段。全局角色约 22 个工具并带提示段,项目与杂项各约 9 个;普通角色不注入提示、不加载工具。代理子会话不装配 ho_ 与 peer_ 工具。
核心功能¶
下面按 README 已列能力归纳,便于对照是否覆盖你的流程。
起始简报与会话清点¶
一条命令可返回水位、闸门、活跃与沉默、阶段建议。另可查看会话水位与状态,设定角色,建立下一代会话,以及归档与解归档。
交接体检¶
检查交接文档的结构、字段与占位符,逐条列出问题。全局交接写在 _Control_Center/records/Global_Handover.md,项目与杂项写在各自目录,每次写入前备份。
压缩与续跑¶
由水位与剩余压缩次数共同判定时机,须用户在设置页点「压缩授权」(单次授权 5 分钟内有效);压缩在回合结束后执行。登记时助手以 resume 选择去向:继续工作时续跑,任务已收尾时静默等待;状态切换与失败原因写入结果。
水位与动作对照(压缩次数默认最多 3 次,用尽后无论水位高低均建议换任):
| 水位 | 动作 |
|---|---|
| 低于 32% | 继续 |
| 32% 至 35% | 可写交接;关键步骤时可暂缓 |
| 35% 至 85%,已压少于 3 次 | 写交接、原地压缩、读交接续跑 |
| 85% 及以上,已压少于 3 次 | 强制压缩兜底 |
| 任意水位,已压满 3 次 | 写交接、建立新会话 |
会话间通信与工作区迁移¶
会话之间可直接对话,默认沉默,任务完成不向全局报告。换盘或搬动全局根目录时,支持预检、复制并逐文件校验、切换、改写登记、重建链接、清理旧副本;另有库快照、打包、校验与恢复,包内绝对路径单独体检。
设置页¶
单页卡片式:压缩授权、移动全局根目录、会话角色、全局前置提示词、会话水位、通用约束条闸门、交接文档体检、插件与会话间通信守卫等。未接入工作区时置顶「首次安装」,可一键部署文件体系、工作区与会话;已接入但无全局会话时显示「全局会话」卡片。
安装与首次部署¶
插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 LICENSE。
从 GitHub 安装¶
桌面版:侧栏「插件」→「添加插件」,粘贴 https://github.com/MingMaple/dsh-handover,装完重启 DSH。
Web 或 CLI:
dsh plugin --profile web add github:MingMaple/dsh-handover
从 npm 安装¶
包名 @mingmaple/dsh-handover,版本与仓库同步:
dsh plugin --profile web add @mingmaple/dsh-handover
首次使用¶
- 打开设置页中的 dsh-handover,在「首次安装」卡片粘贴一个长期存在目录的绝对路径。
- 点「一键部署」。插件在该目录内建立
_Workspace与整套文件结构,注册为「全局」工作区,并新建「全局」会话。 - 在左侧「全局」工作区打开该会话即可开始。仅需先铺文件时可点「仅建立文件体系」,之后再点「注册为工作区」。
命令行等价:ho_init(parent="<已存在目录>", register=true),再新建标题含「全局」的会话。
典型用法¶
安装后可用自然语言说明意图,不必死记命令名。README 示例:
| 想做什么 | 可以这样说 |
|---|---|
| 看整体状态 | 先出一份起始简报 |
| 查规则 | 把 Charter 第 7.2.3 节取出来 |
| 交接并压缩 | 先把交接文档写好,再压缩并继续 |
| 换任 | 建立下一代全局会话 |
| 设置角色 | 把 Demo1 设成项目角色,并让它整理自己的文件 |
| 自检 | 检查插件当前状态 |
四类会话角色:全局(协调、维护规则与交接)、项目(单库与骨架档案)、杂项(单任务)、普通(无注入)。换角色在下一轮请求即生效;插件重载后已存在会话仍用旧提示段文本,需要新文本时重启 DSH。
适用场景与注意¶
适合谁:需要多会话、多项目/杂项分工,且要把交接文档、压缩闸门和续跑流程固化在 DSH 里的开发者。
上下文开销:固定开销为工具 schema 与提示段。README 按 0.9.6 实测,全局提示段约 271 加权 token,项目约 247 至 256,杂项约 248 至 254,随项目名与路径长度小幅波动。
边界:ptc 呈现模式下插件工具只能经程序调用;迁移只搬文件与清单,不改写内容;项目名不超过 24 字符、任务名不超过 40 字符,按目录名校验。卸载后残留限于 ~/.dsh/storages/dsh-handover.* 与 ~/.dsh/storages/dsh-handover/logs/,删除即可清零。
迁移五步、常见故障等细节见仓库内 docs/migrate.md、docs/troubleshoot.md。
结尾¶
dsh-handover 把长会话里的水位判断、交接体检、压缩授权与续跑登记收进一套工作流,减轻「何时压、压完去哪、如何换任」的手动负担。社区目录页:SkillHub - dsh-handover;源码与完整说明:GitHub - MingMaple/dsh-handover。