dsh-auto-successor:DSH 会话水位到阈值时自动开新会话接力

前言

在 DeepSeek Harness(DSH)里跑长任务时,会话上下文很快就会顶到硬上限。常见做法是手动新开会话,把进度重新说一遍;或者装上下文压缩类插件,在原地缩历史——后者容易丢细节、改对话结构,还可能影响前缀缓存。

dsh-auto-successor(自动接力)走另一条路:上下文快满时自动建新会话,由 AI 把当前任务摘要成交接稿,写进新会话第一条消息,再把旧会话归档。完整历史留在归档侧,新会话只带结论继续干。

下面按定位、功能、安装、用法和边界说明这个工作流插件。

这是什么

  • 名称:dsh-auto-successor(目录展示名:自动接力)
  • 维护者:rodrequezsaievade764-rgb
  • 分类:工作流
  • 当前版本(package.json):0.2.1
  • 许可证:MIT

插件在 DSH 会话的 token 水位超过设定阈值且满足轮数等条件时,触发生成交接稿、创建同工作区同 preset 的新会话、投递交接稿并可选归档旧会话。README 中的流程可以概括为:

旧会话(水位 88%)→ 生成交接稿 → 新会话(首条消息 = 交接稿)→ 旧会话归档

与「原地压缩」插件(如 billion-context)相比,自动接力强调保留完整历史、另起干净会话、只迁移摘要,适合需要断点清晰、又不想反复口头复述的长任务。

核心功能

自动与手动触发

默认开启,水位阈值 85%。到点且轮数满足「最少轮数」后自动接力,无需人工干预。管理面板 状态 页为每个活跃会话显示水位条(绿 / 黄 / 红)、轮数、是否被排除;也可用「接力当前会话」手动触发。

监听点在 session/event 的 turn/end,仅在 reason.kind === 'completed' 的正常轮次结束时判断,半途而废的轮次不计入触发。

管理面板三页

  • 状态:水位、轮数、排除标记、手动接力按钮。
  • 规则:总开关、水位阈值、最少轮数、冷静期、兜底上下文窗口、交接后是否归档、排除的会话标题正则。
  • 日志:每次接力一条记录——自动或手动、水位、成功或失败、新会话号;降级交接稿会单独标出。

全局工具

任意 DSH 会话均可调用:

  • successor_handoff — 立即接力(sessionId 不填表示当前会话)。
  • successor_status — 查看各会话水位与最近接力情况。

交接稿结构

交接稿固定五节,便于新会话直接接手:

## 任务背景
## 已完成      ← 关键文件路径 / 命令 / 参数原文照抄
## 进行中
## 下一步      ← 按顺序列 1-5 条
## 注意        ← 坑、约束、用户偏好

生成交接稿时走宿主 llm.stream,不进入当前会话上下文;取材为最近 40 条消息、每条最多 1500 字。模型失败时会降级为「原始记录截取」版,接力仍完成,日志标「降级交接稿」。

规则参数(默认值)

参数 默认 说明
水位阈值 85% 占上下文窗口百分比
最少轮数 6 未满该轮数不自动接力,避免误伤新会话
冷静期 10 分钟 全局冷静期,接力后一段时间内不再自动接力
兜底上下文窗口 128000 无模型窗口元数据时用此估算
交接后归档 开 关闭则只建新会话,旧会话保留
接力链上限 3 代 标题前缀「接力 · …」层数到此停止自动接力;手动仍可触发
排除标题 空 正则,一行一条;命中则不自动接力

seedMode 默认通过 followup 把交接稿作为新会话第一条消息跑一轮(耐重启);设为 system-prompt 可挂到系统提示词侧。宿主不支持时自动回落 followup,日志写明降级原因。

建议对「每句话都算一轮」、水位涨得快但无接力价值的会话做排除,例如 QQ 机器人:正则 ^QQ。

安装与启用

安装前请自行查阅 GitHub 仓库 源码与 MIT 许可证。插件在当前 DSH 进程权限下运行,安装即信任其逻辑与数据落盘路径。

Windows(PowerShell):

& "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add github:rodrequezsaievade764-rgb/dsh-auto-successor

Linux / Docker:

dsh plugin --profile <profile> add github:rodrequezsaievade764-rgb/dsh-auto-successor

装好后重启 DSH,左侧栏「自动化任务」下会出现 自动接力。规则修改后热生效,无需再重启。

典型用法

  1. 安装并重启后,保持默认规则即可:长任务会话水位到 85%、且至少 6 轮后,会自动生成交接稿、新建「接力 · 原标题」会话并归档旧会话(若归档开关为开)。
  2. 在 规则 页调低阈值可更早换会话;调高「最少轮数」或加长冷静期可减少误触发与连环接力。
  3. 对固定标题模式的会话填写「排除标题」正则,避免自动接力。
  4. 需要立刻换会话时,在 状态 页点「接力当前会话」,或在对话中让模型调用 successor_handoff。
  5. 用 successor_status 或 日志 页核对水位与历次接力是否成功、是否出现降级交接稿。

数据与配置落在用户目录(Windows 示例为 %USERPROFILE%\.dsh\plugins-data\auto-successor\):

  • config.json — 规则
  • log.jsonl — 接力历史
  • state.json — 冷静期与上次接力
  • workspace/ — 接力会话专用工作区

重装或升级插件一般不丢上述数据。

适用场景与注意

适合:单会话内连续多轮编码、排查、文档整理等长任务;希望上下文换新但不想手工复述进度;需要可审计的接力日志与可复现的交接稿结构。

依赖:README 写明需要宿主提供 tokenMeter、sessionController、workspaceRegistry(桌面版与 Web 组合具备)。缺服务时会在日志说明,不会静默失败。

边界:

  • 冷静期为全局:一次接力后,所有会话在冷静期内都不再自动接力。
  • 接力链层数按标题前缀「接力 ·」计算;手动改标题会使层数重置为 0。
  • 交接稿质量依赖摘要所用模型;小模型可用,大模型通常细节更多。
  • 水位测量:优先 tokenMeter.measure(session);全拿不到时标「测不到」,不猜测。

DSH 生态理念是「一切皆插件」;SkillHub 目录页 为社区收录,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-auto-successor 用「新会话 + 结构化交接稿 + 可选归档」解决长任务上下文饱和问题,与原地压缩互补。若你经常在 DSH 里跑到上下文见底,可先按默认规则试用,再按会话类型微调阈值与排除列表。

羽毛球分组比赛记分
小程序二维码

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

小夜