dsh-blackjack:DeepSeek Harness 的事件溯源 21 點插件

前言

對於使用 DeepSeek Harness 做插件擴展的開發者,一個插件包往往要同時承擔宿主側服務、瀏覽器側 UI 和會話事件記錄。dsh-blackjack 面向這個場景:它把 21 點桌面的規則、發牌員決策、閒聊輸出和瀏覽器 UI 放進同一個 DSH bundle。

這個插件裏,模型擔任發牌員,通過輔助 LLM 調用逐步決定 hit / stand;回合事件會寫入會話日誌,可以按事件重放;如果 LLM 路由缺失或失敗,則會退化爲按人格預設的臺詞。

這是什麼

dsh-blackjack 是 DeepSeek Harness 的 21 點插件。已覈實資料中的版本爲 0.1.0,許可證爲 MIT。倉庫線索頁面如下:

  • 目錄頁:https://www.skillhub.cn/plugins/WhiseNT/dsh-blackjack
  • GitHub:https://github.com/WhiseNT/dsh-blackjack

它的核心定位是一個雙面對 DSH bundle:一個包同時包含宿主遊戲服務和瀏覽器側邊欄 UI。

主要能力包括:

  • 模型擔任發牌員:通過輔助 LLM 調用逐步決定 hit / stand。
  • 可選擇兩個人格:大肥魚 / Big Fat Fish,以及雌小鬼 / Brat。人格選擇通過 blackjack/persona 事件持久化。
  • 跨回合記憶:發牌員提示詞攜帶累計分數和共享閒聊歷史。
  • 事件溯源:blackjack/game-start、blackjack/hit、blackjack/stand、blackjack/dealer-hit、blackjack/settle、blackjack/banter、blackjack/emotion、blackjack/persona 等回合事件可重放。
  • 確定性牌局:標準 52 張牌,seed 存於 game-start 事件;Aces 爲 11/1,face cards 爲 10;dealer draws to ≥17;Busts lose immediately;equal totals push。
  • 瀏覽器 UI:側邊欄底部入口,在右側詳情列打開 21 點桌面;包含桌牌、發牌員心情徽章、生涯記錄、閒聊流和表情快捷欄。
  • UI 不保留遊戲狀態:瀏覽器側通過自掛載 blackjack Remote namespace 與宿主通信。
  • 使用已發佈依賴:使用已發佈的 @deepseek-ai/* npm 包 0.1.0-rc.6,無需同級 monorepo 或未發佈內部包。

安裝與啓用

插件以當前 dsh 進程權限運行。安裝前應先檢查源碼、許可證和依賴範圍。

先執行安裝:

dsh plugin --profile <name> add github:<owner>/dsh-blackjack

命令中的 <name> 是 DSH profile 佔位符,<owner> 是倉庫 owner 佔位符,需要替換爲你確認後的倉庫 owner。

由於 Git 安裝會獲取源碼,首次 add 需要允許一次 self-contained prepare build。做法是把對應的 pnpm key 複製到該 profile 的 pnpm-workspace.yaml 的 allowBuilds 中,然後重新執行 add。只允許信任的源碼。

驗證配置層:

dsh --profile <name> --dump-config

這條命令用於確認 dsh-blackjack 的配置是否進入當前 profile。

啓動 web 界面:

dsh --profile <name>

或者:

dsh web
dsh --profile <name> web

啓動後,瀏覽器側邊欄底部會出現牌桌入口;打開後在右側詳情列顯示 21 點桌面。

配置

在 profile 的 cordis.patch.yml 中覆蓋 blackjack 配置。示例如下:

- id: blackjack
  config:
    dealerPersona: 雌小鬼
    randomBanterChance: 0.3

其中 dealerPersona 是初始人格;按會話的持久化選擇仍通過 blackjack/persona 事件記錄。randomBanterChance 表示 hit 之後觸發非請求閒聊或吐槽的概率。

本地開發

如果直接維護源碼,可以使用倉庫內的 pnpm 流程:

pnpm install
pnpm run build
pnpm test

測試覆蓋 136 個用例,其中 92 個 host 測試,44 個 UI 測試。

適用場景與注意

適合用於以下場景:

  • 給 DSH web 增加一個包含瀏覽器側欄 UI 和宿主服務的雙面對 bundle。
  • 驗證插件如何把回合事件寫成可重放的會話事件。
  • 觀察 LLM 路由缺失或失敗時的降級路徑。
  • 作爲包含宿主服務、Remote namespace、React UI 和測試的插件結構參考。

注意事項:

  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼、許可證和依賴。
  • 許可證爲 MIT,版本爲 0.1.0。
  • Git 安裝會獲取源碼,首次 add 需要在 pnpm-workspace.yaml 的 allowBuilds 中允許一次 self-contained prepare build。
  • LLM 路由缺失或失敗時,發牌員會使用按人格預設的臺詞。
  • 已覈實資料中的 package.json 存在截斷,peerDependencies 完整範圍無法完全確認;安裝前應查看完整依賴列表。

結尾

dsh-blackjack 把 21 點規則、模型發牌員、人格輸出和瀏覽器 UI 放進一個 DSH bundle,並提供事件溯源和降級路徑。它適合用來觀察 DSH 插件的宿主側與瀏覽器側協同方式。

目錄頁:https://www.skillhub.cn/plugins/WhiseNT/dsh-blackjack

GitHub:https://github.com/WhiseNT/dsh-blackjack

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

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

小夜