前言¶
在 DeepSeek Harness(DSH)里做智能体,常见做法是让主模型在对话里「想一步、答一步」:选动作、估置信度、打分级。主模型擅长生成,但把领域判断拆成很多轮零散提问时,同一份状态会被重复发送,成本和延迟都会上去。社区插件目录里有一类「模型推理」插件,专门把判断能力接到外部决策模型上。dsh-judgment 走另一条路:一次调用带上一份状态和一批评名问题,拿回一批带概率的结构化答案;循环、阈值和重试留在你的 agent 侧。下面按安装、配置和消费方式说明它当前能做什么。
这是什么¶
dsh-judgment 由维护者 j62268781-alt 发布,归类为模型推理。它在 DSH 里注册 ctx.judgment 服务,不向模型暴露工具(零工具面);README 的表述是「它判断,消费者决定」——插件只做批量概率判定,不提供观察、寻址、loop 转移等循环逻辑。
一次判断调用的形状是:一份状态 + 一批命名问题 → 一批概率答案。状态每批只发一次;README 称相对「一次问一个问题」约有 38 倍量级的成本差异(以文档表述为准)。
当前实现的三种问题原语:
| 原语 | 语义 | 答案 |
|---|---|---|
noul |
单个概率 p ∈ [0,1](是/否) | { probability } |
choice |
2–255 个互斥候选单选 | { optionId, probabilities }(完整分布) |
score |
2–10 个有序级别 | { value, probabilities }(value 为级别位置,可为小数) |
类型契约在包导出路径 dsh-judgment/contract,仅类型、零运行时依赖,便于消费方 import type 对齐接口。
核心功能(文档中的能力清单)¶
以下均来自仓库 README 的「诚实清单」,未标注为可用的不写入。
- Service 与配置:
ctx.judgment;连接层 × 用途层两层配置;设置页(增删改、密钥、自检按钮)。 - 调用面:
ask()批量判断、health()远端自检;README 写明已在 SystemOne 真端点实测(约 500ms 量级)。 - 协议:
system-one(noul)真网实测;openai-decisions(predicate)按公开文档核对,文档注明仍无真机。 - 严格校验:答案集合一致、分布完整、归一化容差 0.02、argmax 1e-6、模型名快照等;失败即拒、不自动修复。
- 校验失败信息:结构化字段(规则、候选数、Σp、容差)并记入 ledger,供消费方确定性决定如何缩候选重采。
- 审计与计量:发包前落审计 ledger;记录 token、耗时、
request_id、指纹;落盘失败不阻断判断。 - 本地配额:连接层 / 用途层可选护栏,默认不限(
0);文档强调这是本地护栏,不是账户额度。 - 未实现:工具面
judgment/llm-face为可选组件,默认关闭。
插件更新后需重启 DSH(host 半为 Node 侧模块,进程启动时加载一次);自检若报 HTTP 404 或 transport failure,多与 host 未重载有关。
安装与启用¶
安装命令以 README 为准:
# 从 npm(推荐;当前 0.1.0)
dsh plugin --profile <profile> add dsh-judgment@0.1.0
# 或从 GitHub 装(仓库根带 cordis.patch.yml,可直接作为插件包安装)
dsh plugin --profile <profile> add github:j62268781-alt/dsh-judgment
# 或本地路径(开发用;profile 名见 ~/.dsh/profiles)
dsh plugin --profile <profile> add /绝对路径/dsh-judgment
装完后重启 DSH,在 设置 → 决策 里配置连接;连接卡片右上角 ⋯ 菜单中有自检。许可证为 MIT(package.json)。
密钥不写进 YAML:通过 credentialRef 引用环境变量名(如 JUDGMENT_API_KEY_1),或在设置页填写;优先级为启动环境 > 存储文件 > 项目 dotenv > 用户 dotenv。运行中新增环境变量不会被读到,需在启动 DSH 前设好。
配置:连接与用途¶
配置可在设置页完成,也可写入 profile 的 cordis.patch.yml。连接层是一条 (协议, 地址, 模型, 凭据) 元组;用途层给消费者稳定的逻辑名,未知用途名直接报错,不静默换连接。
- id: judgment/provider
name: dsh-judgment
config:
connections:
typesafe-main:
protocol: system-one # system-one | openai-decisions
baseUrl: https://api.typesafe.ai/v1/systemone
model: typesafe/jev-1.13
credentialRef: JUDGMENT_API_KEY_1
timeoutMs: 10000
purposes:
browser.action: { connection: typesafe-main }
compaction.retain: { connection: typesafe-main }
defaultConnection: ''
第二套协议示例(端点 /v1/decisions,模型名以你账户为准):
connections:
openai-decisions:
protocol: openai-decisions
baseUrl: https://api.openai.com/v1/decisions
model: gpt-6-luna
credentialRef: JUDGMENT_API_KEY_2
README 注明:openai-decisions 官方可传消息数组与图片,本插件的 state 以 JSON 字符串发出,不支持图像输入;视觉判断应走主模型侧。
典型用法¶
README 给出的消费方示例(类型来自 dsh-judgment/contract):
import type { ApiVersion, Judge } from 'dsh-judgment/contract'
const EXPECTED: ApiVersion = 1
const judge = ctx.get('judgment') as Judge | undefined
if (!judge || judge.apiVersion !== EXPECTED) return useFallbackJudge()
const state = { page: 'a11y 摘要……' }
const questions = {
action: {
kind: 'choice',
prompt: '哪一步最能推进当前任务?',
options: { e0: '点击「搜索」', e1: '在输入框输入' },
},
goal_done: { kind: 'noul', prompt: '任务目标已经达成' },
retain: { kind: 'score', prompt: '这段输出要逐字保留多少?', levels: ['丢弃', '截断', '保留'] },
}
const result = await judge.ask(state, questions, { purpose: 'browser.action' })
for (const [id, answer] of Object.entries(result.answers)) {
if (answer.kind === 'abstain') continue
if (answer.kind === 'choice') console.log(id, answer.optionId, answer.probabilities)
}
const now = judge.fingerprint(state, questions, { purpose: 'browser.action' })
if (now !== result.fingerprint) return 'stale_state'
文档列出的实战消费方包括 dsh-agent-browser:通过 ctx.get('judgment')、apiVersion 与 status().purposes[].usable 门控后再批量 ask。动作域用途预设 browser.action 建议 choice 候选数 ≤ 16;候选过多时可能触发 distribution-normalized 类校验失败,消费方应缩候选重采,而非指望插件放宽容差。
校验失败时可用 JudgmentError 的 invalid-response 与 validation 字段做确定性重试策略(provider 本身不重试)。
适用场景与注意¶
适合谁:需要在 agent 循环里把「选动作、是否完成、保留强度」等判断拆成结构化概率题,并接到 TypeSafe Jev、OpenAI Decisions(Luna)或兼容端点的团队;愿意自己实现循环、指纹比对和 invalid-response 重采逻辑。
权限与安全:插件以当前 DSH 进程权限运行,会访问你配置的远端 API 与本地 ledger;安装前请阅读源码与 MIT 许可证,自行评估凭据与出站请求。
生态说明:DSH 采用「一切皆插件」;SkillHub 插件目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。GitHub 仓库当前星标数为 1(以目录页信息为准)。
结尾¶
dsh-judgment 把「领域判断」收敛成「状态 + 批量命名问题 → 概率答案」,用严格校验、审计 ledger 和用途层配置把推理端点接到 DSH 里,而把策略与循环留给 agent。若要查看简介与分类,可打开 SkillHub 目录页;源码与完整设计见 GitHub:j62268781-alt/dsh-judgment。