dsh-xiangqi:AI 思考時可以下中國象棋的 DSH 客戶端插件

前言

用 DSH 跑任務時有一段不好安排的時間:模型在思考、在推理,Web GUI 上暫時沒有別的事可做,只能乾等。dsh-xiangqi 把這段空檔利用起來——一隻抱着「象」字棋子的卡通寵物懸浮在 DSH Web GUI 上,邀請你在 AI 思考的間隙下幾步中國象棋。

對局是純消遣的人機對弈,與對話 agent 完全獨立,不阻塞主循環。下面介紹這個插件的功能、安裝方式與使用注意。

這是什麼

dsh-xiangqi 由 ovdoesw 開發,MIT 許可證開源,當前版本 0.1.0。一句話定位:DSH Web 客戶端插件,AI 思考時可以下中國象棋的消遣寵物,內置自寫引擎與離線臺詞,LLM 局勢點評可選。

先說明兩個基本屬性:

1、完全離線可玩。本地規則引擎負責走法與臺詞,不依賴任何在線服務;LLM 點評只是錦上添花,不用也不影響對局。
2、它是 Cordis 客戶端插件包,dsh.client.platformweb,peer 依賴 @deepseek-ai/cordis >=0.1.0react >=17

核心功能

功能圍繞「一隻寵物 + 一副棋盤」展開:

  • 懸浮寵物:拖拽可移動,位置持久化;懸停時棋子升起,彈出隨機邀請氣泡。
  • 小面板棋盤:點擊寵物展開,支持點選走子、難度切換、新局、悔棋、點評,以及放大全屏。
  • 全屏棋盤:放大到全屏對弈,按 Esc 收起;背板保持點擊穿透,不影響底層應用的操作。
  • 本地臺詞:開局定式名(當頭炮 / 仙人指路 / 屏風馬 / 順手炮 / 列手炮等)與三國殺風格的擊殺、將軍、絕殺臺詞,全部離線即時觸發。
  • 狀態持久化:對局進度、難度、寵物位置、設置都保存在瀏覽器,刷新不丟。

內置引擎與難度分檔

引擎是作者自寫的純 TypeScript 實現:negamax + α-β 剪枝 + 迭代加深,以異步分片方式執行,不阻塞主線程。難度分三檔:

難度 策略
初級 easy 深度 1 + 隨機擾動,從分數接近的候選中隨機挑一個
中級 medium 深度 2 固定搜索
高級 hard 迭代加深到深度 4,或限時 5 秒

需要坦白的一點:作者自述初學象棋,內置引擎「比較菜」,只是簡化搜索加上簡單的子力/位置估值。對應解法見後面的典型用法一節。

LLM 局勢點評(可選)

  • 默認複用 DSH 已配置的 LLM 服務(ctx.llm);
  • 需要指定模型時,在插件設置裏填入 base / key / model,走 OpenAI 兼容的 /chat/completions 直連端點;
  • 支持每步自動點評與手動點評按鈕,風格可在「專業棋評 / 娛樂主播」間切換。

所有 LLM 失敗都會靜默降級爲 null,不會中斷或遮擋對局;斷網時本地臺詞仍讓體驗完整。

安裝與啓用

插件從源碼構建安裝。先克隆倉庫、裝依賴,再構建產物:

git clone https://github.com/ovdoesw/dsh-xiangqi.git
cd dsh-xiangqi
npm install
npm run build

npm run build 產出 lib/client.jslib/index.js。裝載方式見倉庫內的 INTEGRATION.md,其中有 cordis.patch.yml 配置與 dsh plugin 命令的說明;本地開發可用 link: 指向本目錄。

經過上面的步驟裝載後,建議先在純 Node 環境跑一遍核心層與 AI 層單測,確認構建正常——這一步不需要 DSH 前端環境:

npm test          # node --import tsx --test test/*.test.ts
npm run typecheck # tsc --noEmit

npm run typecheck 如需 DSH runtime 類型,要先裝載進 DSH 或安裝 peer 依賴。

典型用法

日常對弈:點擊寵物展開小面板,點選棋子走子,隨時切換難度、開新局或悔棋;想看得更清楚就放大到全屏,按 Esc 收起。全屏背板保持點擊穿透,不佔用底層應用。

配置點評:默認什麼都不用填,插件直接複用 DSH 的 LLM 服務;想換模型再去插件設置填 base / key / model。風格二選一:「專業棋評」或「娛樂主播」。

讓 Agent 調棋力:覺得對手太弱時,可以直接讓 DSH 裏當前的 AI Agent 改引擎——想更強,就加深 hard 的搜索(改 src/ai/search.tsmaxDepthsrc/ai/engine.ts 的時限),或加強 src/ai/evaluate.ts 的估值函數;想更休閒,就加大 easy 的隨機擾動或降低搜索深度。README 給的示例指令是「幫我讓高級難度下得更強,別 5 秒就隨便應招」。Agent 改完跑 npm run build 重新打包即時生效。

適用場景與注意

適合兩類人:一是經常在 DSH Web GUI 裏等長任務、想找點事做的用戶;二是想給 AI Agent 安排一個「看得見、改得着」的小項目——這套純 TypeScript 引擎零依賴、可單測,適合讓 Agent 就地修改。

安裝前有幾點需要知道:

1、插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。本項目爲 MIT 許可,源碼公開在 GitHub。
2、長將 / 長捉是簡化版仲裁:同一局面出現第三次判將方負,完整亞洲規則仲裁不在 v1 範圍。
3、擊殺臺詞爲文字呈現,暫無音頻播報。
4、LLM 點評依賴網絡與 token,失敗會靜默降級,不影響對局本身。
5、項目明確不做:聯網對戰、外部 UCI 引擎(如 Stockfish)、開局庫深度學習。

小結

dsh-xiangqi 不解決生產力問題,解決的是等待時間怎麼打發:本地方案、離線可玩、棋力不滿意還能讓 Agent 當場改。core / ai / client 分層加上 node –test 單測的結構,對想寫 DSH 插件的開發者也有參考價值。

項目源碼:https://github.com/ovdoesw/dsh-xiangqi
社區目錄收錄頁:https://www.skillhub.cn/plugins/ovdoesw/dsh-xiangqi (該目錄爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係)

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

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

小夜