DeepSeek Harness Hub
← 返回列表

FuWenLianggit/dsh-goal-auto

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

针对 DeepSeek HarnessDSH中长时间运行的目标会话的按会话自动恢复开关。

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/7 · 已提供中文文档
综合分
28.9
GitHub 分
28.9
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add FuWenLianggit/dsh-goal-auto
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-goal-auto

针对 DeepSeek Harness(DSH)中长时间运行的目标会话的按会话自动恢复开关。

功能说明

- 在会话标题栏操作区添加一个 🔁 开关。
- 被标记的会话会在harness 重启后自动恢复:
重新加载 agent、挂载其 agent 预设、重新武装目标,
并且 goal-round-driver 会持续驱动轮次,无需任何手动点击。

为什么仅靠 resume 不够(三个层面)

重启后单纯调用 agents.resume() 会让会话处于死状态。在目标会话重新运行之前,
必须完成三件事:

| 层面 | 问题 | 修复 |
|---|---|---|
| 模型变量 | 选项为空 -> {{model}}/{{provider}} 未设置,提示词组装崩溃 | 显式传入 agentOptions.provider/model/maxTokens |
| 工具集 | 恢复后的 agent 没有工具(预设未应用) | 在 resume 的 setup 中挂载 agent 预设 |
| 目标驱动器 | 重启后 goal.activation 重置为 disarmed | 调用 goals.resume() 重新武装;驱动器自动注入下一轮 |

自适应预设

预设从会话标题栏(header.agentPreset)读取,并按会话挂载,
当标题栏没有预设时回退到配置的默认值。

安装

dsh plugin --profile web add file://

或者,如此处所用:将插件放在 /plugins/dsh-goal-auto,并在
profile 的 package.json 中添加 file:/link: 依赖,再在
profiles//node_modules/@huanlin/dsh-goal-auto 下添加一个 junction。

HTTP 接口

- GET  /__goal-auto/state       -> 启用映射
- POST /__goal-auto/toggle      -> 翻转某个会话标志(若启用则立即启动)
- POST /__goal-auto/resume-now  -> 强制恢复某个会话(诊断用)

状态保存在 /goal-auto-state.json(按实例;在 harness 停止时可安全地
手动编辑)。日志写入 /goal-auto.log。

目录结构

- src/index.js  — cordis bundle(宿主):状态、HTTP、启动时自动恢复
- src/client.js — 客户端 bundle:标题栏 🔁 开关
- cordis.patch.yml — profile 的加载器插入项

看门狗要求(重要)

该插件会在 harness 启动时恢复会话。它不会让 harness 进程保持存活。
如果 dsh web 崩溃、挂起(TCP 存活但 HTTP 已死)或被杀死,进程内部没有任何东西
能重启它——你必须在 harness 之外运行一个进程看门狗。

没有看门狗时:

- 服务会死掉,没人把它拉回来;
- 机器重启后没有任何东西会自动启动;
- 目标会话只会在下一次手动启动时恢复。

本仓库在 watchdog/ 下包含一个参考看门狗系统。
它与作者使用的是同一套系统:

watchdog/
watchdog-instance.ps1   按实例常驻看门狗
健康 = TCP 监听中 且 HTTP 200
滑动窗口可捕获硬挂起以及间歇性
“缓慢死亡”(最近 10 次探测中 5 次以上 HTTP 失败)
boot grace 120s,这样全新启动的实例永远不会被杀掉
start-instance.ps1      自动初始化 + 启动一个实例(预置设置、
凭据、agent 预设、插件环境)
control.ps1             统一控制:start|stop|restart|status [instance]
instances.txt           实例注册表:name|home_dir|port

设计说明(全都是踩坑踩出来的):

- 看门狗是按实例运行的(instances.txt 每一行对应一个进程),所有实例
共用同一个脚本。每个实例一个互斥锁,防止重复启动。
- 登录时通过 Windows 启动文件夹自动启动(每个实例一个小 .vbs,
调用 watchdog-instance.ps1 -Name )。
- instances.txt 和每个 .ps1 都必须保持纯 ASCII——Windows
PowerShell 5.1 会错误解析不带 BOM 的 UTF-8,而测试框架会拒绝带
BOM 的 JSON 文件。
- 健康探测使用 .NET HttpWebRequest,而不是 curl.exe(在 5.1 中,
curl 针对健康实例会间歇性返回 000)。
- 加一个崩溃熔断器:如果某个实例在短时间内死掉 N 次,就停止重新拉起
并告警——否则一个插件 bug 会把看门狗变成无限重启循环。

使用前请根据自己的 home/端口配置 instances.txt。看门狗是通用的;
watchdog/ 下的路径只是以作者自己的布局作为示例。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群