DeepSeek Harness Hub
← 返回列表

JoaquinDG/dsh-governor

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

对 DeepSeek Harness…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/24 · 已提供中文文档

DeepSeek Harness 代理的行为监督:重试风暴、推理预算消耗,以及一种能在主机挂起后仍存活的兜底机制。

综合分
27.3
GitHub 分
27.3
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add JoaquinDG/dsh-governor
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-llm@deepseek-ai/dsh-tools
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-governor

对 DeepSeek Harness 智能体的行为监督。它监视运行中的智能体是否出现那些会悄悄浪费金钱的故障形态:重试风暴、推理预算消耗,以及超出其后备时限的会话。

状态:第 2 阶段。 观察是默认行为,且仍然不改变任何东西。强制执行通过 mode: 'enforce' 选择启用,因为一个在你亲眼看到它在你自己的流量上的发现之前就进行干预的监督器,是你不会信任的。

为什么是这三个检测器

它们不是猜测。每一个的存在都是因为它的某个朴素版本在五个提供商的真实流量上失败了,而修复方案从一开始就内置在这里。

重试风暴,按比例而非连续运行

统计“窗口内三次相同的失败”会把一个不稳定的提供商误读为一个卡住的智能体。在十二个原本富有成效的步骤中散布着四个 503,是供应商度过了一个糟糕的下午,在那里暂停会让用户损失一个可用的会话。

要求严格连续则会以另一种方式失败:一个在尝试之间进行思考的风暴仍然是风暴。

RetryStormDetector 要求重复的失败特征至少占据窗口的一半。两种形态都被覆盖,而不稳定提供商的情况是一个永久测试。

输出 token 被计费,却没有可见文本

推理模型首先将补全预算花在隐藏思考上。当上限在任何答案发出之前就被耗尽时,提供商会返回一个截断原因和一个空正文。在五个提供商上测量,有两个在 16 token 和 200 token 上限下都返回了零字符却计费了全部预算。

这在构造上对基于文本的监督是不可见的。重复、振荡和困境检测器都读取输出文本,而没有文本可读。只有 token 核算能看到它。

该 harness 使这比大多数运行时更容易捕获。llm/stream 将 text-delta 与 reasoning-delta 分开,并携带 TokenUsage,因此检测器可以报告答案为什么为空,而不仅仅是它为空:“计费了 200 个输出 token,没有可见文本;预算花在了推理上(72 个字符的隐藏思考)”。

一个能在笔记本电脑合上盖子后仍然存活的后备机制

performance.now() 是单调的,这对于测量工作是正确的,但当主机被挂起时它会停止前进。仅基于它构建的看门狗在一次睡眠期间会悄无声息地永不触发。挂钟时间能看到挂起的时间,但在 NTP 校正下可能会向后跳。

DualClock 取两者中较大的一个。稍微提前触发比永不触发是一个好得多的失败。

这一个是被艰难发现的:一次 1813 秒的运行越过了 1800 秒的后备时限,因为第一步发生在一台合着盖子的笔记本电脑上。

阶梯

发现会提高分数,干净的步骤会使其衰减,只有上层阶梯会触及智能体。

| 阶梯 | observe | enforce |
|---|---|---|
| ok | 无操作 | 无操作 |
| notice | 以 info 级别记录日志 | 无操作 |
| pause | 以 warn 级别记录日志 | agent/pre-step 返回 reject;工具调用返回 ask |
| stop | 以 warn 级别记录日志 | agent/pre-step 返回 reject;工具调用返回 deny |

ask 这一档是最有用的。它把决定权交给人类,而不是在让可疑的运行继续和直接终止它之间做选择,并且 harness 通过 PreToolDecision 原生支持它。

预设 gentle、standard 和 paranoid 会移动这些阈值。这些数字是起点,不是实测值。 Governor 的阈值是针对重放的会话调优出来的;这些还没有经过调优,你应该预期需要根据自己的流量来调整它们。兜底机制经过加权,使其在每种预设下都会立即达到 stop,因为它是用来兜住其他所有检测器漏掉的一切(包括检测器自身的 bug)的底线。

安装

npm install dsh-governor

cordis.yml
- name: 'dsh-governor'
config:
mode: 'observe'      # 'enforce' to let the upper rungs intervene
preset: 'standard'   # gentle | standard | paranoid
backstopMs: 1800000

关于 peer 版本的一点说明

@deepseek-ai 系列包目前发布的 latest dist-tag 不一致:在撰写本文时,dsh-tools 和 dsh-llm 将 latest 解析为 0.0.1-rc.1,而 0.1.1-rc.2 已经发布,且那个旧版本 peer 依赖一个古老的 dsh-agent。请显式固定这一组版本:

npm i @deepseek-ai/cordis@4.0.1 @deepseek-ai/dsh-agent@0.1.1-rc.2 \
@deepseek-ai/dsh-llm@0.1.1-rc.2 @deepseek-ai/dsh-tools@0.1.1-rc.2

开发

npm run typecheck   # tsc --strict, skipLibCheck off, against the real dsh declarations
npm test            # node:test via tsx

路线图

- 阶段 2: 升级阶梯。 已完成。
- 阶段 3: 集成测试。 已完成:其中 7 个测试驱动了一个真实的 Cordis Context。
- 下一步: 发布,待预设阈值针对真实会话调优之后。

来源

这些检测器移植自 Governor,它是 Sheepdog 三部曲的一部分,在那里它们是针对五个提供商进行实测的,而不是针对测试夹具设计的。误报防护、空输出检测器和双时钟之所以存在,是因为显而易见的版本错得离谱,而这种错误只有在真实流量上才会暴露出来。

许可证

MIT

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

💬 加入 DPharness 群聊

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

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