dsh-tool-qrcode:在 DSH 里规划容量、生成 SVG 二维码并可选读码

前言

在 DeepSeek Harness(DSH)里让模型「生成一个二维码」,往往不止导出一张图。同一串 URL 用数字模式还是字节模式、纠错选 L 还是 H、版本 1 还是版本 40,会直接决定能不能放下、印出来多大才扫得动。若工具只提供「生成」而没有「先算清楚」,失败后再猜原因会浪费多轮对话。

下面介绍社区插件 dsh-tool-qrcode(维护者 yuehancn,分类:模型推理)。它在 DSH 中提供四个工具:先规划符号容量,再用内置编码器零依赖出 SVG;可选配置外部程序出 PNG 或读码。插件在 GitHub 上标注与 dsh 0.2.0-rc.2(preview)构建测试;apply(ctx) 规范相对稳定,若你使用更新版本需自行核对兼容性。

这是什么

dsh-tool-qrcode 是面向 DeepSeek Harness 的自建工具插件:内置从零实现的 QR 编码器,不安装额外依赖即可生成 SVG;同时把「能不能放下、用什么模式、纠错等级、余量多少」拆成独立的规划工具,与出图步骤分开。

DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

插件暴露四个工具,长任务前可先查环境,再规划,再出图或读码。

qrcode_status

汇报当前能力:内置 SVG 编码器始终可用;并说明是否配置了外部编码器(用于 PNG 等)和解码器(用于读码)。避免等到调用失败才发现未安装 qrencode 等。

qrcode_plan(text, level?)

只算不画。返回自动判定的编码模式(numeric / alphanumeric / byte / kanji)、能放下的最小版本、纠错等级、容量余量,以及放不下时的补救建议。模式选择会显著影响体积(例如 README 举例:纯数字 36 位可塞进版本 1,同样内容按字节模式只能塞 17 位)。

qrcode_make(text, level?, …)

出图,默认 SVG,使用内置编码器,零外部依赖。

参数 说明
level l / m / q / h,默认 l;放不下会自动降级并在 notes 中说明
outputName 文件名,默认按内容生成
scale 每模块像素,默认 8
quietZone 静区模块数,默认 4(标准要求,不宜改小)
lightColor / darkColor 前后景色,默认 #ffffff / #000000
margin 是否留白

需要 PNG/JPEG 须配置外部编码器;未配置时插件会明确报错并说明如何配置,而不是静默返回改名的 SVG。

qrcode_read(path, format?)

将二维码图片读回文本,需配置解码器(如 zbarimg、zxing)。失败时会列出可能原因(静区被裁、图太小或模糊、颜色反相等),便于模型在看不到图的情况下调整参数。

设计要点:qrcode_plan 是独立工具,不是 qrcode_make 的参数——「能不能放下、印多大」属于决策,生成属于执行。

安装与启用

支持的 profile:desktop(桌面版)、web(Web 版)。安装后重启 dsh。

dsh plugin --profile desktop add github:yuehancn/dsh-tool-qrcode

Web 版将 --profile desktop 换成 --profile web 即可。

可选配置写在 ~/.dsh/profiles/<profile>/cordis.patch.yml 中,例如:

- id: tool-qrcode
  config:
    outputDir: C:/Users/you/Pictures/qrcode-output
    encodeCommand: qrencode            # 可选:要出 PNG 才需要
    encodeArgs: ["-o", "{output}", "-t", "PNG", "-l", "{level}", "{text}"]
    decodeCommand: zbarimg             # 可选:要读码才需要
    decodeArgs: ["--raw", "-q", "{input}"]

常用配置字段(其余见仓库 README):

字段 默认 说明
outputDir qrcode-output 产物目录
encodeCommand "" 外部编码器,空则仅 SVG
decodeCommand "" 外部解码器,空则 qrcode_read 不可用
scale 8 默认每模块像素
quietZone 4 默认静区模块数
timeoutMs 60000 单次调用超时
status/plan/make/read true 可按需关闭单个工具

encodeCommand 可写成解释器加脚本(如 node + 脚本路径);qrcode_status 会穿透解释器探测脚本能力。

典型用法

README 中的调用关系可概括为两步:先规划,再生成。

qrcode_plan(text="https://...")  →  byte 模式 / 版本 3 / 纠错 L / 还剩 12 bit 余量
qrcode_make(text="https://...")  →  29×29 的 SVG,无外部依赖

在 DSH 对话中,让模型先调用 qrcode_status 确认环境,对长 URL 或中文 payload 先 qrcode_plan,再按需要的 level、scale 调用 qrcode_make。读已有图片时配置好 decodeCommand 后使用 qrcode_read。

适用场景与注意

适合谁:需要在智能体工作流里稳定产出可扫描二维码的开发者;希望模型在出图前就知道版本与纠错是否合适;默认只要 SVG、不想为编码单独装系统工具的场景。

运行与安全(来自 README):

  • 外部命令仅通过 spawn(command, argsArray) 调用,不拼接 shell 字符串。
  • 内置编码器不出网;SVG 为纯文本写盘;覆盖已存在产物会被拒绝(除非文件名不冲突)。
  • 插件以当前 dsh 进程权限运行;安装前请自行查看源码与 MIT 许可证,确认外部编解码命令路径与参数符合你的环境策略。

实现与质量:编码遵循 ISO/IEC 18004;仓库提供 Node 测试套件(README 称 268 条断言)及 Python 独立校验脚本 _test/verify-qr.py,可与 OpenCV、qrcode 库对照。

结尾

dsh-tool-qrcode 把 QR 的容量规划与 SVG 生成拆开,内置编码器保证零依赖出图,可选外部工具扩展 PNG 与读码。若你在 DSH 里频繁处理链接、Wi-Fi 口令或短文本入码,可先装插件、用 qrcode_plan 看清约束再 qrcode_make 出图。

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

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

小夜