dsh-klbq:在 DSH 里按昵称查卡拉彼丘战绩并生成长图

前言

在 DeepSeek Harness(DSH)里给 agent 接游戏数据,常见做法是手写 HTTP 请求、再自己拼展示。卡拉彼丘(Strinova)的公开战绩在 dakanu.com,还要看段位、总览、模式、角色和最近对局,若再做成可分享的图,工作量会落在插件之外。下面介绍社区插件 dsh-klbq(维护者 CSAHuan):从 dakanu 取数、渲染长图,并把工具 klbq_query 交给 agent 调用。

这是什么

dsh-klbq 是 DSH 的联网工具类插件,在 SkillHub 目录 与 GitHub 可查看源码与说明。它解决两件事:按游戏昵称或 UID 拉取 dakanu.com 上的战绩摘要,以及把排位段位、总览、模式、角色、最近对局等内容渲染成一张 PNG 长图。图片落在本机临时目录,工具返回路径与字节数,不塞 base64 进上下文,便于「模型读 JSON 摘要、人在本地看图」。

核心功能:klbq_query

插件向 agent 暴露工具 klbq_query,参数与返回结构以 README 为准。

参数 类型 说明
nickname string(必填) 游戏昵称或 UID
maxMatches number 最近对局条数 0~20,默认 10

成功时返回 JSON,包含等级、当前/历史最高排位段位、summary(局数、胜率、KDA、场均伤害等)、recent 最近对局列表,以及 imagePath、imageBytes。图片写入系统临时目录下的 dsh-klbq-cards/。

取数侧实现上,README 说明本机直连 https://dakanu.com 可能在 TLS 阶段被重置,因此请求采用「连 IP、servername 为空字符串、设置 Host 头、rejectUnauthorized: false」等方式访问公开战绩;该通道仅用于公开数据,不应用于传输密钥或隐私。排位与挑战赛的段位体系在渲染时需区分,卡片右上角使用排位体系。

渲染不依赖 canvas / puppeteer,而是用系统 Edge 或 Chrome 无头模式:先 --dump-dom 量高度,再按高度截图。可通过环境变量 KLBQ_BROWSER 指定浏览器路径。

安装与启用

本插件有两条 npm 发行通道,按 QQ 接入方式二选一(命令来自 README,勿自行拼接 dsh plugin add github:...)。

通道 安装 版本线 行为
QQ 官方机器人(@tencent-connect/dsh-qqbot) npm i dsh-klbq 0.2.x 工具 + 向 system prompt 注入 /klbq 用法
自建 OneBot 桥接(SnowLuma / OneBot v11) npm i dsh-klbq@sl 0.1.x 纯工具,不注入 system prompt
npm i dsh-klbq@latest   # 官方机器人
npm i dsh-klbq@sl       # 自建桥接 / SnowLuma

本地开发可用 link 安装:在 ~/.dsh/profiles/<profile>/package.json 里声明 dsh-klbq 的 link: 依赖,并把插件目录软链到该 profile 的 node_modules/dsh-klbq,在 dsh.bundles 中加入 dsh-klbq,重启 DSH 生效。

package.json 要求 Node >= 22.12.0,peer 依赖 @deepseek-ai/cordis 与 @deepseek-ai/dsh;当前资料中版本号为 0.2.1,许可证 MIT。

典型用法

在 agent 回合中:让模型调用 klbq_query,传入 nickname(可选 maxMatches)。根据返回的摘要字段回答用户;需要展示图片时,使用返回的 imagePath 在本机打开或通过 IM 通道的交付能力发送(见下)。

与 QQ 官方机器人配合:安装 0.2.x 通道后,在私聊或群聊发送例如:

/klbq 才知道左键能开枪

/klbq 并非注册在 qqbot 命令表里的斜杠命令,而是作为普通消息进入 agent;插件在 system-prompt/assemble 注入说明,引导 agent 调用 klbq_query,再用 present 把 imagePath 声明为交付物,由 dsh-qqbot 在轮末发图。可在 cordis 配置里用 integrations.qqbot.promptInjection 关闭或自定义注入文案(默认约 150 token/轮);未装 dsh-qqbot 时插件会跳过注入。

自建 OneBot 桥接侧通常自行实现 /klbq 与发图(如 qq-bridge 的 src/klbq.js),只需 dsh-klbq@sl 提供的工具即可。

适用场景与注意

  • 适合谁:在 DSH profile 里做卡拉彼丘战绩查询、或要在 QQ / IM 里一键出图的开发者;分类上属于联网工具,依赖外站 dakanu.com 的公开接口与页面结构,站点或网络策略变化可能影响可用性。
  • 权限与安全:插件以当前 DSH 进程权限运行,会访问外网并写本地临时文件;安装前请阅读 源码 与 MIT 许可证,确认是否符合你的环境合规要求。
  • 性能:0.1.1 起对 dakanu 双 IP 并行、连接复用与短缓存做了优化,README 给出了实测耗时对比;重复查询仍会受缓存 TTL(搜索映射 10 分钟、详情 90 秒)影响。

结尾

dsh-klbq 把「dakanu 取数 + 长图渲染 + agent 工具」收成一个 DSH bundle,并针对 QQ 官方机器人与自建桥接分了安装通道。需要功能细节、更新日志(如 0.2.0 QQ 适配、0.1.1 取数提速)或 issue,见 SkillHub 目录页 与 GitHub 仓库。

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

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

小夜