dsh-jev-plugin:在 DeepSeek Harness 里批量向 Jev 提 typed 问题

前言

在 DeepSeek Harness(DSH)里跑 coding agent 时,常见重复判断会堆在日志行、工具输出、失败测试、搜索结果或候选文件上。把这些内容全部塞进大模型上下文,或逐个开 subagent 去读,成本和延迟都会上去。机械条件用 grep 更合适;需要语义判断、又要结构化概率时,就需要专门接口。下面介绍社区插件 dsh-jev-plugin(维护者 RaulLazaro),它把 TypeSafe 的 Jev(System One 决策模型)挂进 Harness,通过 jev 工具对同一段 state 并行提问,返回带概率的 typed 答案,并在 Settings → Plugins → Jev 里按用户配置 Provider 与密钥。

这是什么

dsh-jev-plugin 属于 DSH 社区插件目录中的「模型推理」类条目(目录页:skillhub.cn/plugins/RaulLazaro/dsh-jev-plugin)。插件不负责写长文或生成 prose,而是返回 judgements:每个问题在同一段文本上并行评估,README 说明一次请求里带 50 个问题与带 1 个问题的耗时和成本大致相当,适合 agent 需要对大量条目做同类判断的场景。

插件向 Harness 注册两类表面:

表面 作用
jev 工具 发送 state + questions,返回 typed 答案、概率与 confidence
Settings → Plugins → Jev 按用户选择 Provider、可选 model override、Custom 时的 Base URL、API key,以及 Test connection

源码与说明见 GitHub:RaulLazaro/dsh-jev-plugin(package.json 版本 0.2.2,许可证 MIT,要求 Node >=20、dsh >=0.1.1-rc.1)。社区目录与 DeepSeek / 幻方无官方从属关系;插件在当前 dsh 进程权限下运行,安装前请自行审阅源码与许可证。

核心功能

  1. 批量 typed 问题:state 为字符串(可含多段,用稳定标签如 ### ITEM 1 引用);questions 为对象,每题指定 type 与 instructions(及 choice / score 所需的 criteria)。
  2. 三种问题类型:
    - noul:返回 yes 的概率(0–1)
    - choice:返回 choice、probabilities、confidence
    - score:有序 rubric 上的 score、probabilities、confidence
  3. 多 Provider:TypeSafe 直连、Vercel AI Gateway、Laya Studio、OpenCode Zen、Custom;各 Provider 使用独立 API key,也可通过对应环境变量回退(如 TYPESAFE_API_KEY)。密钥存入 DSH credentials store,不写入 settings.yaml。
  4. 连接测试:Settings 内 Test connection 会做一次真实往返,报告解析到的 provider、model、延迟、input tokens 与答案。

README 在相同任务与数据上给出了与「直接用模型」「用 subagent」的对比测量(含 median subagent 9 次请求、48 s、$0.035 等),并注明在机械标准上不如 grep;完整证据见仓库内 docs/MEASUREMENTS.md,刻意不做的事见 docs/DECISIONS.md。设计问题可参考 TypeSafe 官方 typesafe-ai/skills 与 agent-skill 文档。

安装与启用

包内自带 bundle patch,安装一条命令即可。dsh plugin 会转发到 pnpm,本地路径、git spec、registry 名称均可:

dsh plugin --profile web add /path/to/dsh-jev-plugin         # 本地 checkout
dsh plugin --profile web add github:RaulLazaro/dsh-jev-plugin  # 从 GitHub
dsh plugin --profile web add dsh-jev-plugin              # 发布后从 registry

上述命令会添加依赖、把 dsh-jev-plugin 写入 profile 的 bundle 列表,并按 cordis.patch.yml 合成配置。不启动进程即可确认合成结果:

dsh --profile web --dump-config | grep -A4 'dsh-jev-plugin'
# - id: jev
#   name: dsh-jev-plugin
#   config:
#     enabled: true
#     provider: typesafe

必须重启 Harness 才能挂载新 bundle;运行中的进程不会热加载。API key 在 UI 填写,不必写进 composition。卸载:

dsh plugin --profile web remove dsh-jev-plugin

配置

打开 Settings → Plugins → Jev:

  1. Provider — Jev 服务来源(见下表)。
  2. Model override — 可选;留空则用该 Provider 默认模型。
  3. Base URL — 仅 Custom Provider 需要。
  4. API key — 见上文 credentials store;界面会提示是否已配置。
  5. Test connection — 真实 round trip 与结果摘要。
Provider Endpoint 默认 model 凭证 / 环境变量
TypeSafe (direct) https://api.typesafe.ai/v1/systemone jev-latest TYPESAFE_API_KEY
Vercel AI Gateway https://ai-gateway.vercel.sh/typesafe/v1/systemone typesafe-ai/jev AI_GATEWAY_API_KEY
Laya Studio https://api.laya.studio/v1/systemone auto-routed LAYA_API_KEY
OpenCode Zen https://opencode.ai/zen/v1/systemone jev-1.13 OPENCODE_ZEN_API_KEY
Custom 自建 URL jev-latest JEV_API_KEY

评估接口走 TypeSafe 兼容的 POST …/v1/systemone,不是 OpenAI / Anthropic 兼容端点。Laya Studio 与 Jev 同 wire、同题型,但有截断与选项数等限制(README 有说明);自建 Laya 可通过 Custom 指向例如 http://127.0.0.1:<port>/v1/systemone。

典型用法

向 jev 工具传入 JSON 形参(README 示例):

{
  "state": "### ITEM 1\nTypeError: x is undefined\n\n### ITEM 2\nAll 42 tests passed in 1.2s",
  "questions": {
    "item1_failed": { "type": "noul",   "instructions": "Does ITEM 1 report a failure?" },
    "item2_failed": { "type": "noul",   "instructions": "Does ITEM 2 report a failure?" },
    "worst": {
      "type": "choice",
      "instructions": "Which item is the failure?",
      "criteria": { "item1": "a code exception", "item2": "a passing run" }
    }
  }
}

使用上 README 强调:原子化提问(每题窄、按标签引用条目);instructions / criteria 用英文,state 语言不限;看概率而不只看选项,平坦分布表示在猜,noul 上 confidence 约 0.4–0.6 信息量少,是否门控动作需在自己 workload 上标定。

适用场景与注意

适合:对大量同质条目做并行语义判断(是否失败、选哪一项、打分等),在 agent 流程里用代码组合多题答案,而不是一次问整篇文档。

不要用 Jev 做(README 明确拒绝):

  • 写作、摘要、翻译或重排版 — 不能生成文本
  • 精确字符串或算术 — 不是正则或计算器
  • 需要长链推理 — 应拆成原子问题,在代码里组合

与 grep 的分工:标准可机械匹配时用 grep;需要语义与概率时再调 jev。

DSH 生态理念是「一切皆插件」;本插件是社区贡献的模型推理扩展,按 profile(示例为 web)安装后需在 Settings 配好 Provider 与密钥,重启 Harness 即可在 agent 中调用 jev 工具。

更多说明与变更记录见 GitHub 仓库 README,插件索引见 SkillHub 目录页。

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

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

Xiaoye