dsh-goal-guard

DSH PLUGIN模型与账号接入

仓库 sskkde/dsh-goal-guard

模型与账号接入 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-goal-guard 是 sskkde 维护的 模型与账号接入 类 DSH 可安装插件, 仓库为 sskkde/dsh-goal-guard,许可证 BSD-3-Clause。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-goal-guard 是模型与账号接入类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类模型与账号接入 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 未标注 · 未关闭 issue 未标注
最近更新 2026-10-15 创建于 未标注
README 7.8 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:sskkde/dsh-goal-guard
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

智能体编排

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在模型与账号接入场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-goal-guard当前 L5 · 运行验证通过 低风险 0 未标注 有
archify L4 · 沙盒安装通过 低风险 8.0 万 未标注 有
DeepSeek-Reasonix L4 · 沙盒安装通过 低风险 3.6 万 未标注 有
nocobase L3 · 安装规范通过 低风险 2.5 万 0.1.1-rc.2 无
learn-harness-engineering L4 · 沙盒安装通过 低风险 2.0 万 未标注 有
dsh-our-free-model 未做沙盒验证 未标注 8,064 未标注 无

仓库档案

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方sskkde仓库 dsh-goal-guard · 默认分支 未标注
分类模型与账号接入ai
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证BSD-3-Clause商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 未标注 / 未标注收录时的数值,非实时
创建 / 更新未标注 · 2026-10-15最后推送 未标注
本站收录2026-10-30首次进入本站目录的时间

README 全文

7.8 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-goal-guard

后台子代理还在跑时,别让 goal 自动续跑被烧掉。

DeepSeek Harness(DSH / Cordis)插件。在「派发后台 continuable 子代理 → 结束回合 → 等结算通知」
这种委托纪律下,goal-round-driver 会在母会话每次回到 idle 时注入一轮 `—— 它不知道还有未结算的子代理。本插件在等待窗口内**进程内**解除 goal 的自动续跑 (goals.disarm,不产生耐久事件、不改 phase/revision),全部子代理结算后自动恢复 (goals.resume`)。

为什么需要它(这是核心缺口,不是某个插件的私有 workaround)

@deepseek-ai/dsh-goal-round-driver 的 readyToDrive 只检查

return ctx.fiber.state === 2 && !state.stopping
&& ctx.agents.get(state.agent.id) === state.agent
&& state.agent.status === "idle"
&& !state.competingQueued

——没有子代理维度:该包不注入 subagents,Config 也只有 defaultMaxGoalRounds,
没有任何原生开关。而模型工具层的 update_goal(pause/resume) 要求「直接人类回合」,
模型自救不了。

远端实测(web profile,子代理运行期间)复现:

+ 66ms  agent/created   origin=subagent depth=1        ← 子代理诞生
+ 72ms  agent/status    running (子代理)
+209ms   round=1 注入                      ← ★ 子代理仍在跑,driver 照注入
+859ms  agent/error     QUOTA (子代理)
+943ms  user/message    sourceKind=subagent-settled     ← 结算通知

装上本插件后同一场景:窗口内零注入,且结算后 goal 自动回到 armed(见下方验收记录)。

行为

时机 动作
子代理诞生(agent/created 带 origin='subagent' + parentSession) 母会话 goal 若 active + armed → 抢先 disarm(母会话仍在 running,零竞态;覆盖 subagent / subagent_fork / workflow 等所有派发路径)
goal 被 arm 但已有子代理在跑(goal/changed 采纳) 立即 disarm(堵住「先派子代理、后 arm goal」的窗口)
idle / 结算通知(agent/status idle、subagent-settled、turn/end) 有 running 子代理 → 保持 disarm;无 running 子代理 → 自动 resume
agent/error、回合 max-tokens / aborted 毒化:不再自动 resume(不覆盖 harness 的熔断决定,交人类)
agent/disposed、agent/session-start 整段窗口状态作废(新 epoch 不继承)

安全不变量

goals.resume 在服务层没有人类门(人类门在 dsh-tool-goal),所以本插件只重新武装
自己刚 disarm 过的、id + revision 完全一致、且仍为 active + disarmed 的 goal。
goal 被清 / 被编辑 / complete / blocked / paused / 被第三方重新武装 → 一律清 mark 交人类,
绝不猜。「还有子代理在跑」用 subagents.listDescendants(...) 的 activity === 'running'
判定;查询失败按「未知」处理,未知不构成 disarm 或 resume 的理由。

安装

# 方式一:DSH 插件管理器(写入 profile 依赖 + bundle 装配)
dsh plugin --profile web add /path/to/dsh-goal-guard

# 方式二:dsh-super-injector(运行时注入,免重启)
dev_inject_plugin /path/to/dsh-goal-guard

# 方式三:作为 profile patch overlay 挂载
dsh web --patch ./cordis.patch.yml

cordis.patch.yml 把本插件插到 profile 根 roster。挂载位置很重要:dsh-scope 的准入规则是

const tag = scopeOf(ctx);
if (tag === void 0) return true;          // 未打标的监听器 → 全局准入

只有未打标的监听器才能收到根会话的 agent/status;被打标的 ctx 只收其作用域链后代的事件。

配置

# profile patch / 插件 config
- id: dsh-goal-guard
config:
enabled: true              # 总开关;关闭即退回原生行为
statusRoute: true          # 注册 /dsh-goal-guard/api/status
tool: true                 # 注册 goal_guard 工具
watchdogIntervalMs: 30000  # 看门狗周期;0 = 关闭
maxWindowMs: 1800000       # 窗口超时告警阈值

观测

  • GET /dsh-goal-guard/api/status → { ok, loggerPresent, guarded, tracked, states, diag }
  • 工具 goal_guard:action=status 看守卫状态;action=resume 立即重新评估并尝试恢复
    (模型自查「为什么 goal 没继续」用)
  • 告警走 ctx.logger.warn 并额外落 console.warn:某些宿主不把插件 logger 输出落到
    可见位置,而「resume 失败 / 窗口卡住」是本功能唯一的人工可见面,不能丢

兼容性

项 值
dsh.engines.dsh >=0.1.7-rc.1 <0.2
peer @deepseek-ai/cordis、@deepseek-ai/dsh-tools、@deepseek-ai/schemastery
必需服务 无(goals / agents / subagents / tools / webServer 全部可选且惰性解析)

验收记录(2026-10-15,远端测试环境)

被测形态 = 真实部署形态:插件放进 profiles/node_modules/,按包名由 profile 根 roster 挂载;
验收夹具另挂一个探针插件造激励(自建 root agent → 派 continuable 子代理 → arm goal),
不依赖 LLM 成功(远端凭证余额不足,回合以 QUOTA 失败,但生命周期事件齐全)。

场景 窗口内 `` 注入 disarm 时点 结算后 resume 判定
基线(无插件,探针实测) 1 — — 病根复现
adopt(先派子代理 → 再 arm goal) 0 arm 后 +15ms ✅ armed PASS
proactive(先 arm goal → 立刻派子代理) 0 子代理 agent/created 时(早于 spawn 时间戳) ✅ armed PASS

对照数字:driver 从 goal/changed 到排队轮次约 178ms(内部有 await sessions.flush() 检查点),
守卫 disarm 在 15ms 内完成 → 赢约 160ms。/api/status 实测 HTTP 200,
diag spawned:1 / windowDisarms:1 / resumes:1 / resumeFails:0 / watchdogTicks:2。

复现(夹具在 test/remote/):

# 远端: 指向测试 home,dsh 用部署树里的 bin
scp -r lib package.json :/node_modules/dsh-goal-guard/
scp test/remote/goal-guard-accept.mjs test/remote/patch.yml :/root/test-env/
ssh  'cd /root/test-env && GG_ACCEPT_MODE=adopt dsh web --patch /root/test-env/patch.yml --port 3099 --no-open'
# 报告:/root/test-env/accept-out/report.json(看 verdict.pass)

开发

bash scripts/build.sh        # src/ → lib/(从部署树链类型依赖,用全局 tsc)
npx tsc -p tsconfig.json --noEmit
npm test                     # node --test(先 build 再 test,测的是 lib/ 产物)

本仓库不 npm install:scripts/build.sh 从 ~/.dsh/profiles/node_modules 或
/usr/lib/node_modules/@deepseek-ai/dsh/node_modules 探测一份 DSH 依赖树,把
@deepseek-ai/* 软链进本地 node_modules 后用系统 tsc 编译。lib/ 是产物但入库
(files 含 lib),这样 dsh plugin add / git 直装不需要构建步骤。

两个踩过的坑(都来自真实部署,别重犯)

  1. 不要 import 'schemastery'。部署树里没有顶层 schemastery 包,只有
    @deepseek-ai/schemastery(官方包与已发布第三方插件一律 import 这个 scoped 名)。
    用顶层名会「本地构建通过、真机 failed to import」——本插件第一版就是这样在远端被拒的。
    同理:不要靠 build 时生成的 node_modules/ 软链在运行期解析裸名。
  2. 服务句柄必须惰性取。实测 headless profile 在 apply() 时
    goals/agents/subagents/tools 全部尚未就绪(到 agent/created 才齐);
    装配期抓死句柄会直接坏掉。本插件的 inject 因此留空。

License

BSD-3-Clause

常见问题

5 问
答案由本站依据条目字段整理,不引用上游原文
dsh-goal-guard 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:sskkde/dsh-goal-guard` 即可。

dsh-goal-guard 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-goal-guard 安全吗?

低风险。

dsh-goal-guard 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-goal-guard 用的是什么许可证?

上游标注为 BSD-3-Clause。商用或二次分发前请到仓库确认许可证原文。

模型与账号接入
按星标排序,可作替代方案

archify

archify

从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

L4 · 沙盒安装通过 8.0 万 星

nocobase

nocobase

L3 · 安装规范通过 2.5 万 星

dsh-our-free-model

dsh-our-free-model

为 DeepSeek Harness 挂载免登录、免 API Key 的免费前沿模型通道,装完即用,并附用量看板与 OpenAI 兼容本地转

未标注验证等级 8,064 星

dsh-purge

dsh-purge

dsh-purge 是一款 DeepSeek Harness 设置插件,可修改默认副本、权限策略和工具限制,并添加规则卡片以分组应用补丁,支

L5 · 运行验证通过 4,573 星

sskkde 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。