DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

rodrequezsaievade764-rgb /

rodrequezsaievade764-rgb/dsh-auto-successor

Verified

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

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@bafc6b82

自动接力 · 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 <profile> add github:rodrequezsaievade764-rgb/dsh-auto-successor

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

用

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

面板三页:

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

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

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

规则怎么定

参数 默认 说明
水位阈值 85% 占上下文窗口百分比。想更早换就调低
最少轮数 6 会话跑过这么多轮才允许自动接力,防误伤刚开的新会话
冷静期 10 分钟 接力后这段时间内不再自动接力,防连环接力打爆
兜底上下文窗口 128000 拿不到模型窗口元数据时按这个算
交接后归档 开 关了只建新会话,旧的留着
排除标题 空 正则,一行一条;命中的会话不自动接力

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

交接稿长什么样

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

## 任务背景
## 已完成      ← 关键文件路径 / 命令 / 参数原文照抄
## 进行中
## 下一步      ← 按顺序列 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' },明确标成插件消息
归档 workspaceRegistry.archiveSession,失败只记日志不影响接力结果
热生效 改规则原地覆盖 cfg 字段,watcher 与工具闭包共享同一引用,不用重启

已知边界

  • 需要 DSH 有 tokenMeter、sessionController、workspaceRegistry 三个服务(桌面版 / Web 组合都有)。缺哪个就在日志里说清楚,不静默失败。
  • 冷静期是全局的,不是按会话:接力一次后,所有会话都等冷静期过去。这是故意的——连环接力比不接力更糟。
  • 交接稿质量取决于摘要模型。用小模型(如 Flash)也够,但换大模型细节更多。

测试

npm test

17 个用例:纯函数单测(水位判断 / 文本提取 / 提示词结构 / 配置校验)+ 端到端 mock 全链路(自动触发、降级、手动、冷静期、排除、快照)。全程离线。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit bafc6b8225f6

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout