fakechris/dsh-harness-ops--plugins-dsh-restart-recover ↗★ 5
@fakechris/dsh-restart-recover
DSH Web 重启恢复插件,在崩溃或重启后自动继续中断的代理回合,与 dsh-web-guard 配合实现自愈。
AI 分析
核心用途是解决无人值守长任务因进程崩溃而中断的问题。适合需要运行超长任务、要求系统具备高可用和自动恢复能力的进阶用户。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:fakechris/dsh-harness-ops#426820eda5d9875a7f96dbbc6af2007d4d5d5948&path:plugins/dsh-restart-recover说明文档
阅读完整 README ↗mini TUI:设计与使用(dsh-doctor --guide / 菜单 5)
为什么是 TUI(2026-08-13 教训):一次无人值守的 --agent 长跑失败——被误报带偏、超时
被杀、什么都没修成。没有人 guide 的 doctor 长任务不靠谱。mini TUI 是"有人看着的自愈":
LLM 自动干活,你看着它怎么想,觉得不对就打断。
三条设计原则:
- LLM 自动判断、自动修复——已知问题确定性自动修复(无逐项确认);0 问题自动只读验收 (输出"✅ 验收通过"+证据清单);残留问题 LLM 自动诊断根因并修复。
- 交互 = 看清完整 CoT + 随时打断——完整推理链 markdown 实时渲染;Ctrl-C 打断运行中的 agent,输入指引后回车,agent 按指引继续(上下文跨轮携带)。
- 只有 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
- 诊断先在普通终端流式输出(一行行可见,绝不黑屏)
- 进 TUI:已知问题确定性自动修复(relink/插件依赖/launcher/会话,可逆带备份)
- LLM 自动运行:0 问题 → 只读交叉验证出"✅ 验收通过";有残留 → 自动诊断修复
- 收尾:全绿 → 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)。因此两个快照之间新增的笔记就是
官方对该快照的 changelog。ab.sh discover(候选更新时自动打印)+ ab.sh notes(单独查看)
把这段 changelog 直接列出来——先读官方"为什么",再读代码 diff 验证,产出
snapshot-diff-report-YYYYMMDD.md。