dsh 会话因 web 重启或上游瞬时故障(限流、5xx、余额/配额错误)中断时,自动注入「继续」让本轮接着跑,不需要手动点、不会丢上下文;带死循环守卫,重试没反应就把会话交回给你。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-autoresume
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:shengyvself/dsh-autoresume
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
你拿到什么
- 🔁 Web 重启自动接续 —— dsh web 重启后,插件扫描全部会话,把被打断的任务自动接上;completed / settled / cancelled 一律不动。
- 🌐 上游瞬时故障自愈 —— 限流(429)、5xx、网络错误(ECONNRESET / timeout)、网关 504、上游 provider 故障——插件注入「继续」让会话自动重跑。
- 💳 余额/配额类识别 —— 402 / QUOTA / insufficient_balance / insufficient_quota 等:首次注入一次(覆盖充值后恢复),再次失败一律转 settled,防无限循环。
- 🛡️ 死循环守卫 —— 注入后若无产出再失败,判定为持续故障,转 settled 交还用户手动处理;会话之后有产出或新用户消息则重新武装。
- 📥 队列守卫 —— inbox 里若有别人(用户/客户端)的挂起消息,插件一律不动作(既不注入也不 resume),避免把用户消息一并唤醒冲进会话。
- ⏱️ liveWatch 持续监听 —— boot 扫描后保持轮询,补 catch 运行期间再次失败(此前只有 web 重启后一次性生效)。
- 🔢 连续两次自动继续 —— 网络瞬时类(429 / 限流)允许注入 → 败 → 再注入 → 败 → 停,适配长限流窗口场景;余额类保持「一次即停」。
- 🌍 跨平台 —— Linux / macOS / Windows 行为一致(
os.homedir()+node:path),路径分隔自动适配。
Install
dsh plugin --profile web add dsh-autoresume
安装后重启 dsh web。插件会在 boot 宽限窗口(默认 30 分钟,可配 bootGraceMs)内自动扫描并注入。
Requires DSH client packages >=0.1.5-rc.2. 依赖 @deepseek-ai/dsh-agent(复用 DSH 运行时同一份,版本零漂移)。
也可以从 GitHub 直装:
dsh plugin --profile web add github:shengyvself/dsh-autoresume
用它能干嘛
装好后,正常用即可——插件在后台自动工作。典型场景:
- "我刚才改了代码重启了 dsh web" —— 插件自动扫描,把被打断的开发会话接上
- "上游模型临时限流了" —— 429 / rate_limit_exceeded 后插件注入「继续」,会话自动重跑
- "刚才那个 504 网关超时" —— 网关 HTML 错误信封递归解包,正确判网络故障,注入「继续」
- "余额不够,充值了" —— 首次 402 注入一次(覆盖充值后恢复),不再次失败时自动转 settled
插件不主动发起任何动作,只在 web 重启或 liveWatch 轮询时判定并注入。
兼容性
| 场景 | DSH 版本 | 插件版本 |
|---|---|---|
| 推荐 | 0.1.5-rc.2+(当前维护版) |
0.0.21 |
| 最低兼容 | 0.1.5-rc.2+ |
0.0.21 |
安装插件不会升级宿主 DSH。peerDependencies 声明的最低客户端包版本是 >=0.1.5-rc.2,实测在 0.1.5-rc.2 上跑通。
配置
| 键 | 默认 | 说明 |
|---|---|---|
targetSessionId |
全域扫描 | 指定会话时只服务该会话(兼容模式) |
bootGraceMs |
30000(30 分钟) |
web 启动后允许判定的宽限窗口 |
initialDelayMs |
3000 |
首次检查延迟 |
pollIntervalMs |
5000 |
会话未就绪时的重查间隔 |
promptText |
继续(自动) |
注入正文 |
liveWatch |
true |
boot 后保持轮询补 catch 运行期间再次失败 |
maxResumeAttempts |
2 |
网络瞬时类连续自动继续次数上限 |
skipWhenInputPending |
true |
队列守卫:inbox 有非我方挂起消息时不注入 |
Security
- 只读会话事件流(
ctx.sessionPersistence),不写用户文件。 - 注入的消息以 plugin 身份(
source.kind=plugin, form=notice)发送,不伪装用户消息。 - 不联网。除调用 DSH 内部
ctx.agents.get()/agent.followup()之外,无对外网络请求。 - 死循环守卫 + 余额类防无限循环 + 队列守卫三重保护,避免误伤。
依赖说明
@deepseek-ai/dsh-agent 声明在 peerDependencies(由宿主 DSH 提供)。
⚠️ 已知问题:package.json 的 dependencies 里也列了 @deepseek-ai/dsh-agent: 0.1.1-rc.2——这违反 persona §三.1.3 铁律(官方 @deepseek-ai/* 包只进 peerDependencies)。当前安装方式是手动 symlink 复用 DSH 运行时同一份,避免版本漂移。下一版会清理。
版本历史
完整 changelog 见 CHANGELOG.md。关键里程碑:
- v0.0.21(2026-09-13):自动继续恢复链路修复(0.1.5
inspect()移除 → 改open/read/close;AgentSetup回调签名变更) - v0.0.19(2026-09-13):队列守卫 + DSH 0.1.5 会话代际适配
- v0.0.18(2026-09-08):连续两次自动继续(商汤日日新裁决)
- v0.0.17(2026-09-02):tpm/rpm 限流识别
- v0.0.16(2026-09-01):启动崩溃修复(防御
getAgent()) - v0.0.15(2026-09-01):402/400/中文瞬时可继续 + 余额类防无限循环
- v0.0.13(2026-08-31):OpenRouter 上游 provider 故障识别
- v0.0.12(2026-08-31):504/网关超时递归信封解包
- v0.0.9(2026-08-24):liveWatch + 死循环守卫
- v0.0.8(2026-08-24):网络故障停止识别
构建与开发
npm run build
npm test
License
Apache License 2.0 © shengyvself
链接
同类插件
Q00/ouroboros#integrations/dsh-plugin★ 6166
通过 DSH MCP 客户端挂载 Ouroboros 的纯配置包,在 DSH 中提供 36 个涵盖需求访谈、Seed、执行、评估与演化流程的工具。
loopx-project/loopx#dsh-loopx-plugin★ 6125
LoopX——面向长周期 Agent 的提供商中立、本地优先状态内核与控制平面:在 DeepSeek Harness 执行层之上持久化 Goal、Todo、门禁、证据、配额、恢复与交接状态;插件负责引导安装 CLI 与技能、准入有界的同会话续跑,并为精确绑定的工作循环提供本地 GoalBar。
chuspeeism/dashi-taskboard#deepseek-harness★ 3273
把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述文件连接,而不是使用固定端口。
NanmiCoder/dsh-agent-teams★ 1883
AgentTeams 多智能体团队。
EthanYoQ/AI-Novel-Writer#dsh-ai-novel-writer★ 1241
安装专用 AI 小说创作预设与工作台:提供带修订号的本地项目资产、紧凑侧边工作台,以及需要原生审批的逐文件变更。
tong-io/tongflow#dsh-tongflow★ 1032
基于 TongFlow 的“片场”插件,用于图片、配音、音乐与视频制作:agent 为每个资产生成 TongFlow 工作流文件(.tongflow.json)并通过 TongFlow 插件执行,内嵌工作流画布,按镜头/角色/take 组织项目,附漫剧模板;以 @tongflow 开头的会话进入 Studio 界面。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。