DSH 插件市场DeepSeek Harness 社区插件目录

dsh-auto-successor

已验证 会话与消息 ★ 2 0.2.1

自动接力:DSH 会话水位超阈值时自动开新会话——AI 先把当前任务状态摘要成交接稿,写进新会话首条消息,旧会话归档。长会话永不断档。

一句话定位

自动接力:DSH 会话水位超阈值时自动开新会话——AI 先把当前任务状态摘要成交接稿,写进新会话首条消息,旧会话归档。长会话永不断档。

安装方式

在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。

$ dsh plugin --profile web add 'git+https://github.com/rodrequezsaievade764-rgb/dsh-auto-successor.git#d59e94333cda9c72a629fbd40a01b60d18cd0752'

兼容的 DSH 版本

未声明

作者与热度

rodrequezsaievade764-rgb · ★ 2 · 更新于 2026-11-07

关于这个插件

自动接力 · dsh-auto-successor

DSH 会话的上下文快满时,自动换一个新会话接着干——AI 先把当前任务摘要成交接稿,写进新会话第一条消息,旧会话归档。长任务永不断档。

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

为什么需要它

DSH 的会话上下文有硬上限。跑长任务时你只有两个选择:手动开新会话并把上下文重新讲一遍,或者让模型在半截上下文里瞎猜。

billion-context 这类插件解决的是「原地压缩」,压缩会丢细节、改历史、影响前缀缓存。自动接力走另一条路:保留完整历史,另起一条干净的会话,只把结论带过去。

装

& "$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  add github:rodrequezsaievade764-rgb/dsh-auto-successor

装好后重启 DSH,左侧栏「自动化任务」下面会出现 自动接力。

用

默认就开着,阈值 85%。水位到点、轮数够,就自动接力,不用你管。

面板三页:

  • 状态 — 每个活跃会话的水位条(绿 / 黄 / 红)、轮数、是否被排除;「接力当前会话」按钮可手动触发。
  • 规则 — 总开关、水位阈值、最少轮数、冷静期、兜底上下文窗口、交接后是否归档、排除的会话标题正则。
  • 日志 — 每次接力一条:自动还是手动、水位、成功还是失败、新会话号;降级交接稿会标出来。

两个全局工具(任何 DSH 会话都能调):

  • successor_handoff — 立即接力(sessionId 不填 = 当前会话)
  • successor_status — 看各会话水位和最近接力

规则怎么定

| 参数 | 默认 | 说明 |

|---|---|---|

| 水位阈值 | 85% | 占上下文窗口百分比。想更早换就调低 |

| 最少轮数 | 6 | 会话跑过这么多轮才允许自动接力,防误伤刚开的新会话 |

| 冷静期 | 10 分钟 | 接力后这段时间内不再自动接力,防连环接力打爆 |

| 兜底上下文窗口 | 128000 | 拿不到模型窗口元数据时按这个算 |

| 交接后归档 | 开 | 关了只建新会话,旧的留着 |

| 接力链上限 | 3 代 | 「接力 · 接力 · …」套到这一层就停自动接力,防套娃;手动仍可触发 |

| 排除标题 | 空 | 正则,一行一条;命中的会话不自动接力 |

建议排除的会话:QQ 机器人会话、后台任务会话这类「每句话都是一轮」的,水位涨得快但没有接力价值。填 ^QQ 就行。

接力链为什么要设上限:接力出来的是新会话,新会话水位涨满又会接力,于是标题变成「接力 · 接力 · 接力 · X」。三五层之后基本可以断定接力没解决问题——是任务本身失控,或者阈值调太低。到上限只停自动接力,不挡你手动点。标题也不会滚雪球:每次只保留一层前缀,不会是「接力 · 接力 · 接力」。

交接稿怎么投递:默认走 followup,交接稿作为新会话第一条消息跑一轮,好处是耐重启;seedMode 设成 system-prompt 就挂到系统提示词侧,省掉「已接上」那一轮空转。宿主没有对应接口时自动回落 followup,日志里写明降级原因。

交接稿长什么样

固定五节,让新会话能直接接手:

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

模型挂了也不会断:自动降级为「原始记录截取」版交接稿,接力照常完成,日志里标「降级交接稿」。

数据位置

%USERPROFILE%\.dsh\plugins-data\auto-successor\

  • config.json — 规则
  • log.jsonl — 接力史
  • state.json — 冷静期、上次接力
  • workspace/ — 接力会话落在专用工作区,不污染你自己的项目目录

重装、升级都不丢。

设计要点

| 方面 | 做法 |

|---|---|

| 触发时机 | 监听 session/event 的 turn/end,只在 reason.kind === 'completed' 的正常结束时判断,半途而废的轮次不算 |

| 水位测量 | 宿主 tokenMeter.measure(session) 取 token,除以上下文窗口;窗口优先取测量值自带,其次会话当前模型元数据,最后兜底配置值;全拿不到就标「测不到」不瞎猜 |

| 交接稿生成 | 宿主 llm.stream 直连,不进会话(不污染任何上下文);只取最近 40 条、每条截 1500 字 |

| 新会话 | 走 sessionController.create(同工作区、同 preset),rename 成「接力 · 原标题」(只保留一层前缀) |

| 交接稿投递 | 默认 agent.followup 带 source: { kind: 'plugin' };seedMode=system-prompt 时挂系统提示词侧,宿主不支持则回落 |

| 轮数来源 | 优先用进程内实际观察到的轮数;进程重启后拿不到就按对话条数估算,不会往交接稿里写「约 0 轮」 |

| 归档 | workspaceRegistry.archiveSession,失败只记日志不影响接力结果 |

同分类对比

同一分类下 Star 最高的 5 个,便于横向比较。

插件作者 Star版本更新
dsh-purge kingcharleslzy-ai 6.3K 1.6.86 2026-11-08
dsh-unrestricted yexi-by 1.1K 0.2.8 2026-11-05
dsh-univer-office dream-num 707 0.4.0 2026-11-03
dsh-synapse liangmianya 697 0.5.7 2026-11-04
dsh-qqbot tencent-connect 570 0.5.5 2026-11-08