前言¶
在 DeepSeek Harness(DSH)里做智能体或对话开发时,模型经常要处理 JSON 校验、日志解析、traceback 定位这类「格式活」和「诊断活」。常见做法是每次让模型现写 shell 或脚本:引号、编码、PowerShell 版本一换,结果就不稳定,也难以复现。DSH 生态按「一切皆插件」扩展能力;社区插件目录在 SkillHub 等站点维护,与 DeepSeek / 幻方无官方从属关系。
下面介绍维护者 ax2 发布的合装包 dsh-toolbox-bundle(GitHub:ax2/dsh-toolbox-bundle):一条命令写入四个独立插件的配置,共 46 个纯本地、无网络、无安装期脚本的确定性工具,覆盖 JSON/YAML/CSV/编码/正则等日常处理,以及 JVM、Python、Windows 生产侧常见诊断输入的解析。
这是什么¶
dsh-toolbox-bundle 本身不实现工具逻辑,而是在 DSH 的 bundle 层一次插入四行配置,依赖并拉取四个 npm 插件(各自独立版本、独立测试):
| 插件 | 工具数 | 侧重 |
|---|---|---|
| dsh-deterministic-tools | 29 | JSON 校验(精确行列)、JSONPath、diff、CSV/YAML 互转、文本统计、正则、编解码与哈希等 |
| dsh-jvm-doctor | 5 | thread dump(含 Java 级死锁环)、GC 日志、Maven/Gradle 依赖冲突、异常链、Spring 配置 diff |
| dsh-py-doctor | 6 | traceback、pytest、Django migrations/N+1/checks、celery 报告(均带解析覆盖率) |
| dsh-win-native | 6 | 编码检测与转换、Windows 路径合法性、netstat 解读、只读磁盘巡检与重复文件 |
README 标明:214 个测试通过;许可证 MIT;npm 包当前版本 0.1.2(以仓库 package.json 为准)。前身包名 dsh-zidev-toolbox、@ax2zicode/dsh-dev-toolbox 已在 npm 废弃并指向本包。
核心能力与设计取向¶
四个插件的回执遵循统一契约:结构化 { result, meta },超预算拒绝(如 INPUT_TOO_LARGE),文本截断按 code point 并标注 truncated,解析工具上报覆盖率与未识别行;声明能力边界(例如 jwt_inspect 不验签、netstat_parse 不编造文本里没有的进程名)。
46 个工具里仅 2 个只读访问磁盘:dir_usage、file_duplicates(有文件数/字节预算,不跟随符号链接与 junction)。其余工具只在用户提供文本或字节时分析,不发网络请求、不依赖额外二进制。
与「完全交给模型心算」相比,README 的立场是:模型往往算得对,但插件提供的是更高的一次成功率、固定实现下的可复现输出,以及明确的边界行为——适合输入远大于输出、或 shell 一行难以可靠完成的聚合任务。
安装与启用¶
npm 包名是 dsh-toolbox-bundle,与 GitHub 仓库 ax2/dsh-toolbox-bundle 对应。
Web 版 profile 安装:
dsh plugin --profile web add dsh-toolbox-bundle
装完后重启 DSH 应用(bundle 列表在启动时读取)。桌面版将 web 换成 desktop:
dsh plugin --profile desktop add dsh-toolbox-bundle
离线或固定版本可从 Release 拉取 tarball:
dsh plugin --profile web add https://github.com/ax2/dsh-toolbox-bundle/releases/latest/download/dsh-toolbox-bundle.tgz
不要与本合装包已包含的四个插件单独混装,否则会重复注册同名工具。家族总览入口:zicode.com/software。
运行环境:package.json 要求 Node.js >= 20.10。
典型用法¶
安装并重载后,在对话里粘贴生产侧常见片段,由模型选用对应工具即可。README 给出的 Python traceback 示例:
Traceback (most recent call last):
File "svc.py", line 42, in handle
KeyError: 'user_id'
模型可调用 python_traceback,得到结构化字段(异常类型、最深栈帧、cause_hints、coverage 等),便于下一步改代码或查数据,而不是在长文本里人工扫行号。
其他对照关系(摘自 README):
| 用户意图(示意) | 工具 | 输出要点 |
|---|---|---|
| 校验带尾逗号的 JSON,要精确行列 | json_validate |
line/column/position + 错误文案 |
检查 C:\temp\CON.txt 是否合法 |
path_inspect |
保留 DOS 设备名等规则 |
| 分析 jstack 是否死锁 | java_thread_dump |
死锁环、锁竞争、状态直方图 |
| GC 日志 p99 停顿 | java_gc_log |
停顿分位数、Young/Full 等 |
从 netstat -ano 找监听 8080 |
netstat_parse |
监听项与 PID/进程名(仅基于文本) |
| 查看目录占用 | dir_usage |
总字节、最大文件、扩展名直方图 |
Token 成本与按需裁剪¶
工具 schema 随每次请求发送,安装即占用 prompt,即使用户不调用工具。README 实测(非估算):在干净 headless base(75 个工具名、约 11,931 inputTokens)上增加本 bundle 的 46 工具后,工具名约 121 个,首次请求约 19,608 inputTokens(+7,677)。单次「校验 JSON 并给精确行列」:不装插件约 3 步、13.0 s;装插件约 2 步、6.1 s,但 raw token 可能反而更多——一次性小活不一定更省 token,更适合大输入压缩进工具、结果远小于输入、或模型易算错的场景。
若只需常用子集,可在 profile 自己的 profiles/<name>/cordis.patch.yml 里按插件 id 配置 only 与 toolPrefix(README 示例针对 deterministic-tools)。勿用 dsh --patch 去改 bundle 层未暴露的 id,否则会报 patch: entry "deterministic-tools" not found。
适用场景与注意¶
适合:需要在 DSH 对话中稳定处理 JSON/YAML/CSV、正则与编码;粘贴 JVM thread dump / GC 日志、Python traceback / pytest / Django 报告;在 Windows 环境解读 netstat、路径与磁盘占用(只读)的开发者与智能体场景。
注意:
- 插件以当前 dsh 进程权限运行;安装前请自行审阅 GitHub 源码 与各子插件仓库及 MIT 许可证。
- 合装包是配置聚合层,四个插件也可单独从 npm 或各自
releases/latest/download/<repo>.tgz安装;与 bundle 二选一,避免重复。 - SkillHub 目录分类为「模型推理」;仓库星标以目录页为准(当前为 0),不代表功能完整度——应以 README 与测试说明为准。
结尾¶
dsh-toolbox-bundle 用一条 DSH 命令把四套确定性、离线工具链挂进 profile,把格式处理与 JVM/Python/Windows 诊断从「每次现写脚本」收成固定实现与结构化回执。目录页:SkillHub — ax2/dsh-toolbox-bundle;源码与安装说明:github.com/ax2/dsh-toolbox-bundle。