npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-touchstone

v0.2.0

Published

DSH 试金石:给「自改造」补上评测这一环——用一套金标准用例,把改动前 vs 改动后跑一遍、打分、对比,好就留、不好就撤。

Readme

dsh-touchstone · 试金石

为 DeepSeek Harness 的自适应改造提供评测环节。 对 harness 的任何改动(提示词、家规、预设)均可在同一组基准用例上,与"改动前"进行对照运行、评分并生成对比报告:评分提升则保留,退步则回退。

DeepSeek Harness 插件 · MIT · 兼容桌面版与网页版

English | 简体中文


目录


概述

试金石为 DeepSeek Harness 提供一个变更评测台。对 agent 配置的任何一处改动,都可以放到一组基准用例上,与改动前的版本并排运行,得到逐条用例的得分对比:

用例          改动前    改动后    变化
先说结论        0%      100%    +100%

并输出基于证据的结论:✓ 评分提升,建议保留。 / ✗ 评分退步,建议回退。 / – 无显著差异。

评分仅反映当前用例集上的表现,最终决策仍由使用者作出。

背景与动机

DeepSeek Harness 以「一切皆插件」为设计核心:提示词、工具、预设乃至 agent 循环均可替换。其官方文档指出,harness 距离真正的自适应演化,尚缺少关键的一环:

DSH 已将 agent 拆分为可定位、可替换的组件,但尚缺完整的"学习闭环"——提出修改,并以 Eval 评估该修改是否有效。

当前生态已提供撤销/回退能力(变更失败时可恢复),但缺少评测能力(在提交变更前先做量化)。试金石补足的正是这一环节。

实现上刻意保持轻量:仅使用 ctx.llm.stream() 这一公开接口,不修改 harness 本体,也不依赖任何内部服务,因此同时兼容 DSH 0.1.x(网页版)与 0.2(桌面版)。

快速开始

  1. 安装(选择对应的 profile):

    dsh plugin --profile desktop add dsh-touchstone      # 桌面版
    dsh plugin --profile web add dsh-touchstone          # 网页版

    安装后重启 DSH。

  2. 打开:进入设置(桌面端:左下角账号菜单 → 设置,或 Ctrl + ,),在左侧选择 🪨 试金石。

  3. 新建用例:在「基准用例」区域点击 + 加一条用例,填写:

    • 名称:便于识别,例如「先说结论」。
    • prompt:发送给 agent 的输入语句。
    • 检查项:点击「+ 加一条检查项」,选择「必须包含」,并填入期望出现的文本。
  4. 新建候选:在「候选方案」区域点击 + 加一个候选,填写:

    • 名称:例如「加一条开场格式」。
    • 提示词:拟测试的系统提示内容。
    • 模式:追加到现状(在当前基础上追加)或 整篇替换。
  5. 运行:点击候选旁的 跑一遍。

  6. 查看报告:在「对账」区域查看逐条得分与总体结论。

注:输入框采用失焦保存(blur),输入完成后点击其他区域或按 Tab 即自动保存。

使用示例

场景:为 agent 增加一条"开场格式"规则,需要确认模型是否会遵守。

| 字段 | 取值 | |---|---| | 用例 · 名称 | 开场格式 | | 用例 · prompt | 用一句话介绍什么是人工智能。 | | 用例 · 检查项 | 必须包含 → 笔记: | | 候选 · 名称 | 加个开场标记 | | 候选 · 提示词 | 回答的开头必须恰好是「笔记:」四个字,然后继续正文。 | | 候选 · 模式 | 追加到现状 |

点击「跑一遍」,约数十秒后得到报告:

加个开场标记        改动前 0% → 改动后 100%
用例          改动前    改动后    变化
开场格式        0%      100%    +100%
✓ 评分提升,建议保留。

该报告为判断提供了数据依据:在改动前配置下该指令未生效,在候选配置下生效。

核心概念

| 概念 | 说明 | |---|---| | 用例(Case) | 一条 prompt 及若干检查项,用于约束 agent 的稳定表现 | | 检查项(Check) | 对输出的一条断言:必须包含 / 必须不含 / 匹配正则 / 模型裁判 | | 候选(Variant) | 一份待测提示词;模式为追加或整篇替换;对照组为内置的「现状(不改)」 | | 对账(Report) | 候选平均分与对照组之差,含逐条 delta 与总体结论 |

检查项

| 类型 | 判定方式 | 适用场景 | |---|---|---| | 必须包含 | 输出中出现指定文本 | 最易实现、最可复现;适用于"必须出现某结论/格式" | | 必须不含 | 输出中不出现指定文本 | 禁止类约束 | | 匹配正则 | 输出匹配指定正则 | 格式类校验,例如 ^笔记: | | 模型裁判 | 另调用一次模型,仅返回 PASS / FAIL 及一句理由 | 主观标准,例如"结论先给,再给理由" |

建议优先使用规则检查而非模型裁判:规则评分可复现性最高;裁判本身也是模型,存在偏差。 检查项可设置权重(默认 1),评分为加权通过率。

运行流程

  1. 取所有已启用的用例,与所选候选(以及始终参与的对照组「现状」)组合。
  2. 对每个组合构造一次模型调用:system 为该候选的提示词,messages 为该用例的 prompt;通过 ctx.llm.stream() 收集全文与用量。
  3. 计分:规则检查在本地判定;模型裁判另行调用一次模型。
  4. 保存本次运行并返回报告。

全过程仅读取配置、调用模型,不会修改任何文件。

配置与数据

  • 运行模型:在 DSH 设置中为 dsh-touchstone 配置 provider / model / temperature / maxOutput;可另行为裁判指定模型(judgeProvider / judgeModel,留空则与运行模型相同)。
  • 数据位置:$DSH_HOME/touchstone/bench.json(DSH_HOME 默认为 ~/.dsh),保存用例、候选及最近 40 次运行记录。
  • 如需重置,删除该文件即可(系统会重建)。

适用边界

  • 本插件为文本层评测:比较的是"同一 prompt 下模型输出的差异",不运行完整 agent 回路。
    • 适用于「修改提示词 / 家规 / 预设文案」类改动;
    • 不适用于「修改工具实现」这类需要真实副作用的改动。
  • 模型裁判本身存在偏差,规则检查的可复现性更高。评分宜作为参考证据,而非最终判决。
  • 评分仅反映当前用例集上的表现;用例设计不当会导致评测失真。

常见问题

Q:一次运行耗时与成本如何? A:每个「用例 × 方案」组合消耗一次模型调用(使用模型裁判时再加一次)。用例少、输出短时开销较小,建议先用一两条用例验证。

Q:能否直接对比两个候选? A:当前每个候选均与「现状」对照。候选之间比较可查阅两份报告(同一组用例、同一基线)。

Q:输入框中的中文为何乱码? A:早期开发版本存在该问题——输入框曾按每次按键写回服务端,会中断输入法合成。当前版本已修复:文本编辑保持在本地,失焦时才落盘。

Q:是否会修改我的文件? A:不会。仅读取配置并调用模型。

开发

npm install
npm run build      # src/index.ts -> lib/index.js ; src/client/index.ts -> lib/client.js
npm run typecheck
npm test           # 纯逻辑单测(针对构建产物运行,无需 DSH)
  • 宿主侧(src/index.ts):存储、运行引擎、路由与配置 schema。
  • 浏览器侧(src/client/index.ts):设置页「试金石」。
  • 本地迭代:node build.mjs --watch,随后刷新页面(客户端改动即时生效)。

作者与许可

  • 作者:Hwayn(幻弈)
  • 协作者:Yucheng Xiao(肖宇成) —— 方向、需求与测试
  • 许可:MIT