dsh-touchstone:给 DSH 自改造补上评测这一环

前言

DeepSeek Harness(DSH)把提示词、工具、预设乃至智能体循环都做成可替换的插件。改完一条 house rule、换一版 prompt 之后,常见做法是凭手感试几句,或者依赖 undo / rollback 在改坏时再撤。官方叙事里缺的一环是:先提出改动,再用 Eval 衡量它是否真的更好。

dsh-touchstone(试金石)就是填这个空:用同一套金标准用例,把「当前配置」和「候选改动」并排跑一遍,规则检查加可选 LLM 裁判打分,给出 before→after 报告。好就留,不好就撤;最终是否采纳仍由你决定。

插件由 Hwayn-pixel 维护,MIT 许可,分类为工作流;在 DSH 桌面端与 Web 均可使用。社区目录页:https://www.skillhub.cn/plugins/Hwayn-pixel/dsh-touchstone ,源码:https://github.com/Hwayn-pixel/dsh-touchstone 。

这是什么

试金石是挂在 DSH 上的评测插件:不 patch harness,只走公开的 ctx.llm.stream() 接口,不依赖内部服务,因此在 DSH 0.1.x(Web)与 0.2(桌面)上都能跑。

一次运行会产出类似下面的对账表:

case            current   candidate   change
lead-with-answer   0%       100%      +100%

并给出基于证据的结论:Better, keep it. / Regressed, revert. / No real difference. 分数只代表你配置的那些用例,不是全局真理。

四个核心概念

概念 含义
Case(用例) 一条发给智能体的 prompt,加上若干检查项
Check(检查) 对输出的断言:必须包含、不得包含、正则、或 LLM judge
Candidate(候选) 想试的 prompt 片段,append 叠在当前之上,或 replace 替换;对照组是内置的 current(无改动)
Report(报告) 候选均分减基线均分,逐用例 delta 加总评

检查项可设 weight(默认 1),得分为加权通过率。文档建议:优先用规则检查;LLM judge 多一次模型调用,也有偏差。

安装与启用

按使用环境选 profile 安装(命令来自官方 README):

dsh plugin --profile desktop add dsh-touchstone      # desktop app
dsh plugin --profile web add dsh-touchstone          # web UI

安装后重启 DSH。

在设置里打开:桌面端左下角账户菜单 → 设置(或 Ctrl + ,),左侧点 试金石。字段在失焦时自动保存(输入后点别处或 Tab)。

在 DSH 设置中为 dsh-touchstone 配置运行用的 provider / model / temperature / maxOutput;可选单独配置裁判模型 judgeProvider / judgeModel(留空则与运行模型相同)。

用例、候选与最近 40 次运行记录在 $DSH_HOME/touchstone/bench.json(DSH_HOME 默认为 ~/.dsh)。删除该文件可重置,会自动重建。

典型用法(约 5 分钟)

  1. 在「金标准用例」下点 + 加一条用例:填 name、prompt(你会发给智能体的话),再 + 加一条检查项,例如选 必须包含 并写上期望出现的词。
  2. 在「候选方案」下点 + 加一个候选:填 name、prompt(想试的规则或前缀),mode 选 append 或 replace。
  3. 在候选旁点 跑一遍 (Run),到 对账 (Report) 查看逐用例分数与总评。

可复现示例(来自 README):

字段 值
case · name opening format
case · prompt Introduce artificial intelligence in one sentence.
case · check must contain → 笔记:
candidate · name prefix marker
candidate · prompt Every answer must begin with exactly 「笔记:」, then continue normally.
candidate · mode append

跑完后可能看到:opening format 从 current 0% 到 candidate 100%,总评 Better, keep it. 说明的是:在当前配置下指令未生效,在候选下生效——而不是「我觉得可以」。

一次运行内部在做什么

  1. 对所有 已启用 用例 × 你勾选的候选(外加始终参与的 current)各构造一次模型调用:system 为候选 prompt,messages 为用例 prompt,经 ctx.llm.stream() 取文本与 usage。
  2. 规则检查在进程内执行;LLM judge 再各多一次模型调用。
  3. 写入本次 run 并返回报告。

插件只读配置、只调模型,不读写你的工作区文件。

适用场景与限制

适合:改 prompt、house rule、预设措辞等「同一输入下输出是否更符合预期」的文本层验证。

不适合:需要真实副作用的工具实现变更——这里不会跑完整 agent loop,也给不出工具链是否仍正确的证据。

成本:每个用例 × 每个候选一次模型调用;检查项若含 LLM judge 再加调用。用例少、输出短时较快较省;可从一两条例开始。

候选对比:每个候选都与 current 比;若要两个候选互比,可在相同用例与基线下并排看两份报告。

插件以当前 DSH 进程的权限运行;安装前建议浏览源码与 MIT 许可证,确认行为符合预期。SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-touchstone 把 DSH 自进化里缺的那半环——评测——做成薄而可复用的工作流:金标准用例、候选并排、规则优先打分、证据化留撤。改 prompt 或规则前先跑一遍,比纯手感或事后 rollback 更省时间。

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

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

Xiaoye