前言¶
在 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,左侧栏「自动化任务」下会出现 自动接力。规则修改后热生效,无需再重启。
典型用法¶
- 安装并重启后,保持默认规则即可:长任务会话水位到 85%、且至少 6 轮后,会自动生成交接稿、新建「接力 · 原标题」会话并归档旧会话(若归档开关为开)。
- 在 规则 页调低阈值可更早换会话;调高「最少轮数」或加长冷静期可减少误触发与连环接力。
- 对固定标题模式的会话填写「排除标题」正则,避免自动接力。
- 需要立刻换会话时,在 状态 页点「接力当前会话」,或在对话中让模型调用
successor_handoff。 - 用
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 里跑到上下文见底,可先按默认规则试用,再按会话类型微调阈值与排除列表。