dsh-jev-judge:用小型 Jev 裁判分担编码智能体的例行判断

前言

在 DeepSeek Harness(DSH)或其它编码智能体宿主里,一次任务往往伴随大量「小判断」:工具输出要不要进上下文、抓取页里有没有面向模型的指令、回合结束声称「已完成」时是否真有验证、用户是否真的要求执行某条命令。若全部交给主模型,既慢又占 token;若全部写成硬规则,又容易在真实输入上失效。

dsh-jev-judge(仓库名 jev-judge,npm 包名 dsh-jev-judge)是维护者 HunterXing 提供的判断内核(judgment kernel):在固定决策点上,用 bounded question 和较小状态调用小型 Jev 裁判,主模型保留上下文与 token 做需要推理的工作;每次裁决写入 ledger,便于从真实会话里评估是否启用某决策点。插件在 SkillHub 目录中归类为模型推理。

安装前建议阅读 README 中的 scope 说明:该层针对的是上下文预算,不参与编译、缓存或性能优化,只改变模型所见内容;作者在自用机器上 55 天实测后曾卸载(见仓库 docs/verification.md 的 R10),更适合宿主上下文确实紧张、或输出以「扫描」为主(shell 日志、自省 dump、浏览器快照)的场景。

这是什么

一句话:A judgment kernel for coding agents: routine judgments go to a small Jev judge, and every verdict is recorded in a ledger.

设计思路参考 mu 在 pi 编码智能体中加载判断内核的做法;本项目把同一类决策点做成与宿主无关的实现,可在 DSH 插件 bundle、Claude Code / Codex 的 command hooks、OpenCode / Cursor 等通过 MCP 接入的环境运行。当前 npm 版本为 0.1.4,许可证 MIT,运行需 Node.js >= 20,DSH 版本要求 >=0.2.1-alpha.1 且 <0.3.0-0。

核心功能:决策点与模式

内核在若干命名决策点上提问,每个点都有与「未安装本包时」等价的确定性 fallback;无裁决或裁判超时、不可达、不确定时 fail open,不阻塞智能体循环。

决策点 问题含义 默认模式
judge.items 对大量条目(日志行、文件、发现)问一个 yes/no,而不必读完全部 被调用时开启
tool.admission 长工具结果里哪些块对本任务必要,其余不进上下文 active
tool.injection 抓取内容里哪些段落像「给模型的指令」而非读者材料 active
turn.completion 「已完成」声称是否有任何验证支撑 active
turn.continue 回合是否在已宣布的下一步前停下,或重复索要已有授权 active
memory.capture 消息是 worth keeping 的纠正,还是下一个任务 active
tool.risk 规则已标记的命令:用户是否真的要它 shadow

tool.risk 故意从 shadow 起步:其裁决只能放宽策略,需凭你自己 ledger 里的记录再改为 active。

设计约束(摘自 README):裁决不会替智能体决定「是否该问用户」;只改变模型所见或是否继续工作;裁判读摘要与元数据而非大块正文;API 密钥只存在于你的私有配置,不会进入日志、ledger 或错误信息。

在 DeepSeek Harness 中安装与启用

DSH 侧以插件 bundle 形式加载 cordis.patch.yml。

1、按 profile 添加插件(命令来自官方 README):

dsh plugin --profile <profile> add dsh-jev-judge
dsh --profile <profile> --dump-config   # 查看该层是否出现在配置中

2、也可在 Web GUI 的 Settings → Plugins 中,通过 registry 名称、git 地址或本地路径安装。

3、配置 Jev 提供方(私有记录,格式与 typesafe-ai-jev-skill 一致):

环境变量 JEV_SKILL_CONFIG 默认指向 ~/.config/typesafe-ai-jev-skill.json,示例:

{
  "providerName": "your-provider",
  "baseUrl": "https://api.your-provider.example",
  "model": "jev",
  "apiKeyEnv": "JEV_API_KEY",
  "protocol": "systemone",
  "endpointPath": "v1/systemone",
  "authHeader": "Authorization",
  "authScheme": "Bearer",
  "timeoutSeconds": 30
}

4、内核可选配置位于 ~/.config/jev-judge/kernel.json,例如模式、路由、ledger 路径:

{
  "modes": { "default": "shadow", "tool.admission": "active" },
  "routes": { "turn.continue": ["jev"] },
  "tiers": ["jev"],
  "ledger": { "path": "~/.config/jev-judge/ledger.ndjson", "recordState": false },
  "options": { "judge.items": { "maxItems": 20 } },
  "timeoutMs": 8000
}

5、安装后可用 CLI 自检(不联网的 verify 只报告契约,不输出密钥):

jev-judge verify    # offline; reports the contract, never the key
jev-judge doctor    # what will happen: judges, modes, ledger
jev-judge ledger    # 阅读 ledger;加 --json 按存储格式打印

在 DSH 中调整 tool.admission 等选项时,写入插件行的 config.options,即 profile 的 cordis.patch.yml。例如限定只对部分工具名、超过一定字符才裁剪:

{ "options": { "admission": { "toolNames": ["bash", "mcp__*"], "minChars": 4000 } } }

默认只对「体积非用户精确指定形状」的工具输出做 admission,工具名列表包括 bash、web_fetch、mcp__* 等;read、grep、write 等按智能体请求形状返回的工具默认整段通过。

其它宿主与 MCP

Claude Code / Codex 可用 settings.json / hooks.json 中的 command hooks;OpenCode、Cursor、Cline 等可挂 MCP 服务器:

claude mcp add jev-judge -- npx -y dsh-jev-judge mcp

各宿主的具体配置与「裁决能做什么」见仓库 docs/agents.md。

实测与 ledger

README 引用 docs/verification.md:在 81 行、含两处失败的测试日志上,live provider 每次判 20 条时,81 行压缩为 5 行选中,3047 字节中约 191 字节(6.3%) 需要阅读,耗时约 7.9 s;同一日志若问题指向修复而非 triage,选中的是断言与错误文本而非摘要行。

ledger 是决策点从 shadow 升到 active 的依据,而非乐观配置。

适用场景与注意事项

更适合:上下文窗口紧张、工具输出以日志/列表/页面快照为主、希望用小型模型做高频二元或选择类判断并留痕的团队或个人。

使用前请知悉:

  • 插件以当前 DSH 进程权限运行;安装前请自行审阅 GitHub 源码 与 MIT 许可证。
  • 社区目录 SkillHub 插件页 为独立生态站点,与 DeepSeek / 幻方无官方从属关系;DSH 理念是「一切皆插件」,本文介绍的是社区插件而非官方应用商店条目。
  • 无运行时依赖、无构建步骤;本地路径 dsh plugin add <path> 可直接加载 checkout。开发自测:node --test(README 称 217 个测试、无网络)。

结尾

dsh-jev-judge 把编码智能体循环里大量例行判断从主模型拆到小型 Jev 裁判,并用 ledger 记录每次裁决,在 bounded state 与 fail open 之间取得可测量的折中。若你的痛点主要是上下文被 shell、抓取和 MCP 输出撑满,可先 doctor / verify 配好 provider,再以 shadow 观察 ledger,再按需打开各决策点的 active。

  • 目录页:https://www.skillhub.cn/plugins/HunterXing/jev-judge
  • 源码与文档:https://github.com/HunterXing/jev-judge
羽毛球分组比赛记分
小程序二维码

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

Xiaoye