dsh-plugin-lol-mayhem:給接入了 QQ 機器人的 DSH agent 加一個海克斯大亂鬥查詢插件

前言

給 DSH agent 接 QQ 機器人之後,羣聊裏最常見的問題是這類:「提莫怎麼玩」「亞索帶什麼海克斯」「縮小引擎是什麼」「提莫和亞索誰強」。這些問法要麼沒有固定意圖,要麼答案隨版本變化,靠 agent 自己的知識既有時效性問題,也容易編出不存在的數據。

下面是介紹的插件 dsh-plugin-lol-mayhem(目錄頁 https://www.skillhub.cn/plugins/NormalAorii/dsh-plugin-lol-mayhem ,GitHub https://github.com/NormalAorii/dsh-plugin-lol-mayhem ,維護者 NormalAorii)解決這個問題的做法:把海克斯大亂斗的強度、強化、出裝、組合數據做成 13 個原生工具,agent 在羣裏直接調用,不憑記憶作答。

這是什麼

插件定位爲 DeepSeek Harness 原生 Host 插件,面向「已接入 QQ 官方機器人」的 agent。裝上後註冊 13 個 lol_* 工具,並注入一段 system prompt:用戶問海克斯大亂鬥時必須調本插件的工具,要圖時調 lol_card 再配合 qqbot_send_file 發送。

它屬於聯網工具分類,但數據並非每次請求都抓,而是內置離線快照加一個在線刷新入口,下面安裝與用法會說明。

核心功能:13 個工具

按分工分成四組來看。

查詢單個英雄的完整攻略:lol_champion 返回梯度與全服排名、勝率、選取率、海克斯強化 Top6(每條附機制說明與勝率選取率)、當前版本最強出裝(最強/最熱/備選三件套)、首件核心、技能加點、召喚師技能,以及這套出裝對應的三強化組合。

強化維度:lol_augments 是強化排行榜,傳英雄按該英雄適配排名,不傳則給全服強化強度榜,可按白銀/黃金/棱彩過濾;lol_augment 是單個強化檔案,包含中文效果說明、梯度、全服勝率/選取率、適配英雄;lol_search 做模糊搜索,支持「瞎子/狐狸/電耗子/提百萬」這類綽號。

出裝與組合:lol_build 按流派拆開三件套,可傳 tag 只看 AP、AD、Hybrid、On-Hit、坦克等某個流派;lol_trio 給出同一局能湊齊的三個海克斯套裝,按組合勝率排序並標註樣本局數。

對比與整活:lol_compare 對比兩個英雄的梯度、排名、勝率、選取率、各自 Top3 強化與最強出裝並給出結論;lol_tier 給 T1–T5 英雄梯度榜;lol_fun 找「勝率明顯高於自身基線但沒人拿」的強化或全服冷門高勝率英雄。

運維與展示:lol_meta 輸出數據版本、來源、覆蓋率、抓取時間與診斷;lol_update 在線刷新數據,寫運行時緩存而不改動包內快照;lol_card 生成 1080 寬 PNG 圖文卡,支持 champion、trio、augment、augments、tier、fun、meta 七種類型,由 agent 用 qqbot_send_file 發到羣裏;lol_help 提供菜單與示例問法。

數據來源與已知偏差

英雄級數據來自 aramgg 官方客戶端的公開只讀 JSON API:https://data.dtodo.cn/api/client/v1/,走 config → dataVersion → augments.json / champions.json / champions/<id>.json / items.json / summoner-spells.json。快照含 173 英雄、218 強化、306 物品,以及每個英雄的強化榜、出裝流派和三強化組合。

有一處需要知道:op.gg 沒有開放英雄級海克斯統計。op.gg 的海克斯數據只存在於模式主頁的 RSC flight 裏,由於沒有「某英雄 × 某強化」的勝率,其內部接口也未公開,因此插件不僞造這部分數據。原始需求裏的「接入 op.gg」無法按字面實現,這是已知偏差,lol_meta 會在來源說明裏講清楚。

數據是全服統計(騰訊服樣本),不是實時對局推薦,每張卡片 footer 都會標註這一點。上游也有兩個已知缺陷:三強化組合裏有 2 個上游未定義的強化 id(2083/2104,顯示爲「未知強化 #id」);約 7% 的單條強化因樣本不足勝率爲 null,卡片上顯示「—」而不是 0%。

安裝與啓用

這個插件沒有 dsh plugin add 形式的安裝命令,README 給了三種方式。

  1. 從 GitHub 下載:到 Releases 頁面下載 dsh-plugin-lol-mayhem-1.0.0.tgz,然後走下面第 2 條;或者 git clone https://github.com/NormalAorii/dsh-plugin-lol-mayhem.git 後走第 1 條。
  2. 本地目錄安裝(README 標註爲本機已用的方式):通過 plugin_manager 的 install_bundle,target 傳本目錄絕對路徑,例如 C:\...\dsh-plugin-lol-mayhem。DSH 會把它裝進 profile 並啓用,重載後 13 個 lol_* 工具即可用。
  3. 離線 tgz:把 tgz 拷到目標機器,plugin_manager install_bundle 傳 tgz 絕對路徑;或者在目標 profile 目錄 npm install <tgz>,並把 dsh-plugin-lol-mayhem 加進 profile 的 package.json 的 dsh.profile.bundles。
  4. 手工:把目錄放進 profile 的 node_modules/,並在 profile 的 cordis.patch.yml 裏添加:
- insert:
    - id: dsh-plugin-lol-mayhem
      name: dsh-plugin-lol-mayhem

前置條件有兩個,建議裝之前先確認。宿主需要有 tools 服務;lol_card 出圖需要 Windows PowerShell 加 System.Drawing,缺這個環境時其餘工具照常工作,卡片會返回文字兜底。

典型用法

數據維護有兩條命令,都在插件目錄下執行。

重新抓取全部數據(默認讀 lol-probe/cache/api 緩存,通常幾秒完成):

npm run crawl

離線自檢,不需要 DSH 宿主,會校驗快照、13 個工具、模糊匹配,並真實生成 4 張 PNG:

npm run verify

對話裏說「刷新數據」即可觸發在線刷新:lol_update 寫入 DSH_HOME/plugin-data/dsh-plugin-lol-mayhem/snapshot.json,這個運行時副本優先於包內快照。物料包內已含 data/snapshot.json 全量快照(約 1.2MB),離線也能跑。

出卡片的方式是:用戶要攻略圖時,agent 調 lol_card(傳 champion、trio、augment、augments、tier、fun、meta 之一)拿到 PNG,再用 qqbot_send_file 發到 QQ。README 的 docs/teemo-card.png 就是 lol_card 針對提莫的真實輸出,卡上依次是 Top6 強化(名字後直接跟機制說明)、當前版本出裝、同局三強化組合、首件核心/技能加點/召喚師技能,底部標註數據來源與版本。

適用場景與注意

適合已經給 DSH agent 接了 QQ 官方機器人、想讓它回答海克斯大亂鬥構築問題的開發者。插件按當前 DSH 進程權限運行,裝之前建議先讀一遍源碼,確認 scripts/crawl.mjs 訪問的接口和 cordis.patch.yml 的改動符合你的預期。許可證是 MIT,數據版權歸 aramgg / Riot Games,插件本體不含遊戲資源文件,只做個人查詢用途。

小結

給它一個宿主加一個工具服務,就能把海克斯大亂斗的版本強度、強化機制、出裝和三強化組合變成 agent 可調用的結構化答案,省掉自己抓數據和排版出圖的工作。目錄頁:https://www.skillhub.cn/plugins/NormalAorii/dsh-plugin-lol-mayhem ;源碼:https://github.com/NormalAorii/dsh-plugin-lol-mayhem 。

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

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

小夜