dsh-decide:在 DSH 里用多路决策模型做路由、门禁与评判

前言

在 DeepSeek Harness(DSH)里做智能体,常见做法是选一个对话模型,用提示词让模型「判断该走哪条路」。对话模型会流式输出自然语言,成本高、格式也不稳定。另一类服务是决策模型(decision model):输入一段文本 state 和若干带类型的命名问题,返回概率、标签或分数,不生成散文、不流式、不拼消息。

dsh-decide 是社区插件,维护者 calmzealA(package.json 中署名「老陈聊AI」),归类为模型推理。它在 DSH 里增加一组 agent 工具和一个 Settings → Decisions 配置页,而不是在模型选择器里挂一个新聊天模型——这与决策模型的语义一致。下面介绍它对接哪些厂商、如何安装,以及在对话里如何调用。

这是什么

dsh-decide(npm 包名 dsh-decide,版本 0.1.0,MIT)为 DSH 提供统一的决策模型能力,覆盖 TypeSafe Jev、基元律动 TokenRhythm NeoHorse-Jev、OpenAI Decisions(beta)以及本机 System One 端点。README 明确:决策模型不是聊天模型;插件通过工具与设置页接入 Harness。

仓库:https://github.com/calmzealA/dsh-decide
社区目录页:https://www.skillhub.cn/plugins/calmzealA/dsh-decide

支持的 Provider

四个内置 provider 可用 defaultProvider 固定默认;也可按方言(System One 或 OpenAI Decisions)添加自定义端点。第一个已启用且密钥可用的 provider 会作为默认,除非你在配置里指定。

id 服务 默认模型 密钥环境变量
typesafe TypeSafe Jev(System One 方言) jev-latest TYPESAFE_API_KEY
tokenrhythm 基元律动 NeoHorse-Jev NeoHorse-Jev-4B TOKENRHYTHM_API_KEY
openai OpenAI Decisions(beta) gpt-6-luna OPENAI_API_KEY
local 本机 System One(如 Laya / Unsloth 自托管) laya 可选,可无密钥

各厂商文档链接见 README 的 Providers 表;provider 卡片上的外链会附带 aichen 推荐标签。

核心能力:Agent 工具

decide

对 state(字符串,JSON 需先序列化)和 questions 数组发起一次决策请求。问题类型包括 yesno、choice、score 等。每个问题返回答案及 probability / choice / score,在供应商支持时还有 confidence;结合 Behavior 里配置的阈值会得到 uncertain。设 includeProbabilities: true 可拿到完整分布;provider 可覆盖默认供应商。

典型请求结构(摘自 README):

{
  "state": "I was charged twice for my March subscription.",
  "questions": [
    { "name": "billing", "type": "yesno", "instructions": "Is this about billing?" },
    {
      "name": "team",
      "type": "choice",
      "instructions": "Which team should handle this?",
      "choices": [{ "label": "billing" }, { "label": "technical" }]
    },
    {
      "name": "urgency",
      "type": "score",
      "instructions": "How urgent is this?",
      "levels": [{ "label": "not urgent" }, { "label": "this week" }, { "label": "today" }]
    }
  ]
}

decide_gate

默认提出一道 yes/no:该操作是否可能不可逆地删除、覆盖或暴露真实数据? 将概率映射为 allow、review 或 deny。适合在危险 shell 或写操作前做一层门禁;失败以错误报告,不会误判为通过。

decide_rerank(beta)

用查询对多段 documents 打分并排序,适合 RAG 检索结果过多、写入上下文前再筛一轮。

decide_judge(beta)

对候选回答或工具输出做显式 yes/no 检查列表,返回每项概率及总体 PASS / FAIL,可作评审门禁或 LLM-as-a-judge。

实验:loop triage

在 Behavior → Experimental 开启后,插件监听 agent/pre-step,用决策模型判断新消息更适合 quick、deep 还是 tool,并向本轮追加短提示。默认关闭;每轮多一次决策调用,行为可能在版本间变化。

设置页

Settings → Decisions 分四个标签:

  1. Providers:逐个启用/禁用、模型、base URL、路径、密钥状态、保存、测试、列举模型、设默认、自定义 provider 表单。
  2. Examples:可复制提示词与完整 tool 请求,便于不开文档先跑通。
  3. Behavior:置信度阈值、请求上限、缓存、审计、可选执行守卫(execution guard)。
  4. Usage:按 provider 统计今日与近 7 日请求/ token/ 费用估算,以及近期决策记录。

界面语言跟随 DSH;中英文完整,其他已发货语言主界面有翻译,长帮助文本回退英文。API 密钥经 DSH 凭证服务写入,页面只显示是否已设置及来源。不要把密钥放进 state,state 会发往所选 provider。

安装与启用

包上架 npm 后,官方发布安装方式为:

dsh plugin --profile desktop add dsh-decide

安装后需重启 DSH(宿主机插件不支持热加载)。本地开发可用 link: 指向检出目录,README 示例:

dsh plugin --profile desktop add link:F:\path\to\dsh-decide

(将路径换成你的检出位置;不要用 git clone 代替上述 dsh plugin 流程。)

运行环境要求 Node 20+(见 package.json 的 engines)。

典型用法

README 建议的五步流程:

  1. 打开 Settings → Decisions → Providers,选一个 provider,点 Test,再 Use as default。
  2. 在对话里说明要用 decide 做什么,例如:「Use decide to route this ticket to billing / technical / sales and score its urgency.」无需单独安装 skill;智能体按工具描述选用,点名 decide 可让选择更确定。
  3. 有风险命令前说明:「call decide_gate first and continue only if it says allow.」
  4. RAG 或评审流程可要求 decide_rerank / decide_judge。
  5. 可选在 Behavior 中开启 execution guard 或实验性 loop triage(均默认关;README 提醒勿与 dsh-jev-guard 同时叠 guards)。

更完整的走查、示例与排障表见仓库 docs/usage.md 与 docs/usage.zh.md。

无 UI 时的配置

可在 profile 里写 YAML 片段,优先级:profile config > ~/.dsh/decide/settings.json(设置页写入)> 默认值。密钥不得写在配置文件中。

- id: decide
  name: dsh-decide
  config:
    defaultProvider: tokenrhythm
    maxQuestions: 8
    timeoutMs: 20000
    maxRetries: 2
    thresholds:
      choice: 0.7
      score: 0.7
      yesnoLow: 0.35
      yesnoHigh: 0.65
    providers:
      tokenrhythm:
        enabled: true
        dialect: systemone
        baseURL: https://tokenrhythm.studio/v1
        path: /systemone
        apiKeyEnv: TOKENRHYTHM_API_KEY
        model: NeoHorse-Jev-4B

各 provider 在本地校验问题数、选项数、state 体积等上限,超限会给出可操作的错误。不同厂商的置信度算法不同,不要跨 provider 复用同一组阈值;支持按 provider 覆盖阈值。超时与纯网络失败不重试;429/5xx/529 会重试(API 无文档化幂等键)。

隐私、审计与成本

  • state 发往所选 provider;local 则留在本机。
  • 默认审计写入 ~/.dsh/decide/decisions.jsonl,仅哈希与字符数;storeState: full 需显式开启。
  • 费用估算依赖 usage.input_tokens 与各 provider 单价(README 举例 TypeSafe 输入约 $0.042/M,输出免费;TokenRhythm、OpenAI 单价待配置)。

适用场景与注意

适合需要在 Harness 内做结构化判断的场景:工单路由、urgency 打分、破坏性操作门禁、检索重排、输出合规检查等。不适合指望它替代主对话模型写长文。

DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。安装插件即以其在 当前 dsh 进程权限下运行;上架前请自行查看源码与 MIT 许可证,确认密钥与 state 的外发范围符合你的合规要求。已知项:README 注明 tools/pre-execute guard 已实现但默认关闭,且勿与 dsh-jev-guard 混用。

结尾

dsh-decide 把多家决策 API 收成一套 DSH 工具与配置面,让智能体用概率和标签做决定,而不是用聊天补全「假装在思考」。若你已在用 Jev、NeoHorse-Jev、OpenAI Decisions 或自建 System One,可在桌面 profile 安装后从 Settings → Decisions 测通再接入对话流程。

羽毛球分组比赛记分
小程序二维码

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

小夜