DeepSeek Harness 插件:dsh-decision-review

前言

DeepSeek Harness(DSH)的核心理念是「一切皆插件」,开发者可以通过插件扩展模型能力与工作流。在做复杂决策时,让同一个模型先输出结论再自我复核,往往只是重复一遍它的推理过程。独立复核的价值在于提供「第二意见」:复核方只看到问题、主模型的预选、证据与约束,不参与原始推理,也不掌握工具权限。dsh-decision-review 就是为这种场景设计的 DSH bundle,把独立复核做成一个工具,而不是替模型做决定。

是什么

  • 插件名:dsh-decision-review
  • 维护者:ninetyhe-90
  • 核心定位:主模型继续拍板,第二个模型只提供复核意见;不替模型做决定
  • 解决的问题:在 DSH 工作流中引入结构化的复核流程,通过置信度分层与权限隔离,在不影响主模型决策权的前提下,引入第二意见

核心能力

  • 三种运行模式
  • off:不注册工具,不产生任何调用
  • shadow:只记录复核过程与结果,不回灌给主模型
  • advisory:返回结构化建议,由主模型决定采纳或保留
  • 不替模型决策
  • 复核只返回建议与置信度,最终选择仍由主模型决定
  • 结构化输出
  • 固定返回 status、recommendation.choice、confidence、reasonCode
  • 置信度分层
  • 达到 minConfidence 可采纳
  • 未达标但高于 abstainBelow 保留但不推荐
  • 低于 abstainBelow 视为弃权
  • 失败不重试
  • 复核失败立即返回原因,主模型按原判断继续
  • 日志脱敏
  • 只记录点位、状态、原因码、模型、HTTP 状态、请求 id、输入指纹与耗时
  • 权限隔离
  • 复核方不获得任何工具、文件、网络或审批权限
  • 权限提升、用户确认、写操作、网络目标与工具白名单不进入复核范围

安装与启用

插件以 DSH bundle 形式提供,安装后默认 mode: off,不会产生任何调用。要启用,需要配置复核服务并显式设置 model 与 baseUrl。

dsh plugin --profile <name> add dsh-decision-review
dsh plugin --profile <name> add /path/to/dsh-decision-review
dsh plugin --profile <name> add github:ninetyhe-90/dsh-decision-review

启用时,在 DSH 配置文件中指定 mode、model、baseUrl 等字段,并将决策点加入 allowedDecisionPoints 白名单。

复核协议

复核端点不是 OpenAI 兼容的聊天接口,而是一个结构化决策接口。

POST {baseUrl}/v1/decision
Authorization: Bearer {DECISION_API_KEY}

请求体包含三个顶层字段:

字段 说明
model 复核模型名
state 上下文状态,包含 question、primaryChoice、evidence、constraints
questions 选项与推荐标准,包含 recommendation.criteria

返回值包含 answers.recommendation.choice 与 confidence,probabilities 仅透传给主模型参考,不参与判定。

baseUrl 是网关根地址,插件自行拼接 /v1/decision;如果地址已经以 /v1 或端点路径结尾,启动时会被拒绝。

配置项

字段 类型 默认 说明
mode off | shadow | advisory off 运行模式
model string 无 必填,复核模型名
baseUrl string 空 复核服务根地址,不含 /v1
apiKeyEnv string DECISION_API_KEY 存放凭据的环境变量名
allowedDecisionPoints string[] [] 允许调用复核的决策点名列表
timeoutMs number 5000 单次复核超时
minConfidence number 0.75 可采纳阈值
abstainBelow number 0.5 弃权阈值,不得高于 minConfidence
promptSection boolean true 是否注入提示段
promptSectionOrder number 30 提示段顺序
systemExtra string 空 追加到复核请求的领域约束

示例配置:

- insert:
    - id: decision-review
      name: dsh-decision-review
      config:
        mode: advisory
        model: your-decision-model
        baseUrl: https://your-gateway
        allowedDecisionPoints:
          - custom_review_point

失败码

reasonCode 含义
timeout / cancelled 本地超时,或父请求被取消
upstream_timeout 网关报告上游超时(HTTP 504)
credential_unavailable 凭据环境变量缺失
authentication_failed 凭据缺失或被拒绝(HTTP 401)
model_not_authorized 凭据无权使用该模型(HTTP 403)
model_unsupported 网关不认识该模型名
invalid_request 请求体被拒绝(HTTP 400)
route_unavailable HTTP 404,检查 baseUrl 是否为网关根地址
rate_limited / quota_exceeded 上游限流或额度耗尽
context_too_large HTTP 413
invalid_response / response_too_large 响应无法解析或超出上限
provider_error 其它网络或服务端错误

安全边界

  • 复核方不获得任何工具、文件、网络或审批权限
  • 权限提升、用户确认、写操作、网络目标与工具白名单不进入复核范围
  • 复核结果只是建议,不能绕过主模型的判断与宿主的确认流程
  • 日志不记录请求正文与原始错误,只记录结构化元数据

兼容性

  • Node.js 20.11+
  • DeepSeek Harness 0.2.x:需要 ctx.tools、ctx.logger;缺少 ctx.systemPrompt 时跳过提示段注入
  • @deepseek-ai/schemastery 3.18.x

项目结构

src/decision-core.mjs    配置校验、输入归一化、提示段与失败码
src/decision-model.mjs   工具注册、复核请求与结果映射
test/                    配置、协议与工具行为测试
cordis.patch.yml         bundle 层,默认 mode: off

开发与验证

npm install --include=dev
npm test
npm run check

路线图

  • [x] 三档模式与置信度分层
  • [x] 结构化失败码与日志脱敏
  • [x] 可配置决策点白名单
  • [x] bundle 安装形式
  • [ ] npm 发布
  • [ ] 复核服务的最小参考实现

适用场景与注意

  • 适合需要在 DSH 工作流中引入结构化复核、对决策权与权限隔离有要求的场景
  • 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证
  • 需要一个兼容 POST /v1/decision 的复核服务,并配置 model 与 baseUrl

小结

dsh-decision-review 通过「主模型继续拍板,第二个模型只提供复核意见」的方式,在 DSH 中实现结构化的独立复核流程。它提供三档运行模式、置信度分层与权限隔离,帮助你在不牺牲主模型决策权的前提下,引入可观测、可配置的第二意见。

  • 目录页:https://www.skillhub.cn/plugins/ninetyhe-90/dsh-decision-review
  • GitHub:https://github.com/ninetyhe-90/dsh-decision-review
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜