fakechris/dsh-harness-ops--plugins-dsh-restart-recover5

@fakechris/dsh-restart-recover

DSH Web 重启恢复插件,在崩溃或重启后自动继续中断的代理回合,与 dsh-web-guard 配合实现自愈。

AI 分析

核心用途是解决无人值守长任务因进程崩溃而中断的问题。适合需要运行超长任务、要求系统具备高可用和自动恢复能力的进阶用户。

套件
@fakechris/dsh-restart-recover
版本
0.2.1
授權
MIT
最近更新
2026年8月14日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:fakechris/dsh-harness-ops#426820eda5d9875a7f96dbbc6af2007d4d5d5948&path:plugins/dsh-restart-recover

mini TUI:设计与使用(dsh-doctor --guide / 菜单 5)

为什么是 TUI(2026-08-13 教训):一次无人值守的 --agent 长跑失败——被误报带偏、超时 被杀、什么都没修成。没有人 guide 的 doctor 长任务不靠谱。mini TUI 是"有人看着的自愈": LLM 自动干活,你看着它怎么想,觉得不对就打断。

三条设计原则

  1. LLM 自动判断、自动修复——已知问题确定性自动修复(无逐项确认);0 问题自动只读验收 (输出"✅ 验收通过"+证据清单);残留问题 LLM 自动诊断根因并修复。
  2. 交互 = 看清完整 CoT + 随时打断——完整推理链 markdown 实时渲染;Ctrl-C 打断运行中的 agent,输入指引后回车,agent 按指引继续(上下文跨轮携带)。
  3. 只有 LLM 真正卡住/需要决策时才问用户(缺 API key、不确定的破坏性操作)——否则绝不把 决策扔给你。全绿跑完自动出结论,5 秒后自动退出。

界面(python3+curses,零第三方依赖;无终端时自动回退逐步模式):

┌ doctor-tui | web:200 | phase:llm | agent:thinking ⠋ | current:slot-b | PgUp/Dn=scroll ┐
│ ── 自动运行:LLM 自愈/验收(CoT 实时渲染)──                                             │
│ 让我理解当前任务:1. 我是 dsh web 的 out-of-band 自愈 agent …(CoT markdown 流式)       │
│ [tool] skill {"name":"dsh-web-doctor"}                                                  │
│ **健康。** web(:3080 返回 200)、扩展 relink 全部完好…(终答 markdown 渲染)             │
│ ✅ 验收通过:web 正常、无残留问题 — 无需任何操作                                          │
│ ✅ 无问题 — 5 秒后自动退出(按任意键取消)                                                │
└ you → agent (Enter=send ^C=interrupt /help) > _                                        ┘

使用流程

dsh-doctor --guide          # 或菜单 5
  1. 诊断先在普通终端流式输出(一行行可见,绝不黑屏)
  2. 进 TUI:已知问题确定性自动修复(relink/插件依赖/launcher/会话,可逆带备份)
  3. LLM 自动运行:0 问题 → 只读交叉验证出"✅ 验收通过";有残留 → 自动诊断修复
  4. 收尾:全绿 → 5 秒倒计时自动退出(按任意键取消,继续对话);有问题 → 明确提示继续或退出

按键

作用
输入 + Enter给 LLM 发消息/指引(agent 运行中会先打断)
Ctrl-C打断运行中的 agent(空闲时退出)
←/→ Home/End输入光标移动(行内编辑,中文安全)
⌫ / Delete删除光标前/后
PgUp/PgDn滚动回看完整 CoT
Ctrl-L清屏
/help /quit /lang按键帮助 / 退出 / 切换语言(en⇄zh,默认 en,也可 DSH_DOCTOR_LANG=zh

渲染:CoT/prompt/终答按 markdown 渲染(标题/粗体/斜体/行内代码/代码块/列表/引用), 工具调用显示为 [tool] 行;agent 运行时状态栏有 thinking ⠋ 动态指示。中文(CJK) 输入/编辑完整支持(UTF-8 locale、宽字符列宽、行内光标编辑)。

分层设计(为什么这样):

  • 确定性层(菜单 2):传感器+执行器——秒级、零 LLM 成本、web 挂得再彻底也能跑; 覆盖已知配置故障(relink/插件依赖/launcher/session/LLM 凭据);诊断全绿时自动跳过修复
  • LLM 大脑(菜单 3/4):dsh --profile headless 起 one-shot agent,读报告+日志推理根因, 能发现/修复确定性规则想不到的问题(DSH 核心不兼容改动、插件配置被改乱、新故障模式); headless 不加载 web 的扩展 bundle,所以扩展故障不影响它;菜单 4 强制深度检测(全绿也跑)
  • 引导模式(菜单 5):确定性 + LLM 的人机协同入口——LLM 自动判断修复, 用户看完整 CoT 随时打断指引;适合不放心无人长跑的场景

诊断 9 项:web 健康 / launcher 链 / 扩展 relink / 槽可启动 / session 文件层(逐日志校验)/ web.log(分类历史残留 vs 当前故障)/ profile bundles 依赖(任意插件,子路径按 exports map 解析)/ LLM 配置(.env key)/ 最近会话最后发生的事。


官方改动提炼(每日分析):官方仓库没有 CHANGELOG 文档,但强制每个非平凡改动写一篇 Agent Note.agents/notes/implemented//yyyy-mm-dd-.md,class ∈ feature / bug-fix / simplification / architecture / process / testing,每篇带 .zh.md + .i18n.yaml, 内容为 Problem / Decision / Consequences / Alternatives)。因此两个快照之间新增的笔记就是 官方对该快照的 changelogab.sh discover(候选更新时自动打印)+ ab.sh notes(单独查看) 把这段 changelog 直接列出来——先读官方"为什么",再读代码 diff 验证,产出 snapshot-diff-report-YYYYMMDD.md


配置(首次会自动读,示例见 skills/dsh-snapshot-ab/references/ab-config.example.json)