dsh-sts2:用 DSH 接管《殺戮尖塔 2》整局流程

前言

在 DSH 裏做遊戲向智能體時,常見做法是手寫腳本或零散 API,只能讀到部分界面信息,出牌、選路、商店和事件還要人工補步。下面介紹的 dsh-sts2 是獨立 npm 插件,通過遊戲內 AiTeammate Mod 的本地 TCP 橋接,把完整局面和操作面暴露給 agent,並支持自動循環玩到本局結束。

這是什麼

dsh-sts2(倉庫 YuWan886/dsh-sts2)由維護者 YuWan886 發佈,許可證 MIT,當前 npm 版本 0.7.2。它不負責改遊戲邏輯,只作爲 DSH 與 Mod 之間的客戶端:經 127.0.0.1 上的行 JSON TCP 協議通信,不經過公網。Mod 側見 YuWan886/STS2-AiTeammate 及 dsh-agent-bridge 文檔。

核心功能

插件向 DSH 註冊一組 sts2_* 工具,覆蓋讀局、等待輸入、操作 UI、決策與社交等場景。

連接與狀態

  • sts2_status:連接自檢(CONNECTED / NOT CONNECTED、端點、是否允許操作、當前局進度)。
  • sts2_state:階段、角色、血量、金幣、遺物、藥水、手牌、敵人意圖、可選項等;detail=delta 僅返回相對上次快照的變化。
  • sts2_wait:阻塞到遊戲需要輸入或狀態變化,是自動對局主循環;同樣支持 detail=delta。
  • sts2_read:深讀牌堆、遺物、地圖、單卡等。

對局與菜單

  • sts2_start_run / sts2_continue_run:從主菜單開新局或讀檔繼續;支持 standard、custom、daily 等模式(每日挑戰的種子與 modifier 規則以 README 爲準)。
  • sts2_host:開多人大廳;daily / custom 大廳會自動加入 AI 隊友並置爲準備。
  • sts2_choose、sts2_proceed、sts2_select_cards:地圖、獎勵、商店、事件、主菜單與大堂按鈕等 UI 選擇。
  • sts2_play_card、sts2_use_potion、sts2_end_turn 等:在 controlled.kind=local 時直接代打 UI。

AI 決策與自動接管

  • sts2_decide:回答 phase=ai_decision 或本地 hand_select 類決策(JSON 由快照中的 decision 字段說明)。
  • sts2_autoplay:開啓/關閉自動接管;遊戲等待輸入時插件經 ctx.agents 喚醒 agent,無需每回合手動說「繼續」。
  • sts2_handoff:把當前局交給新對話繼續。

其它

  • sts2_note:本局長期筆記,Mod 會注入後續決策提示詞。
  • sts2_chat_send:遊戲內聊天回覆;reply_to 需使用快照或 <sts2_chat> 中的 seq。
  • sts2_set_nickname、sts2_screenshot(需遊戲內開啓截圖與視覺模型)、存檔/暫停/放棄等控制工具見 README 工具表。

快照裏 controlled.kind 區分兩種玩法:local 用 UI 動作工具;ai(「AI 獨自爬塔」或帶 AI 隊友的多人局)用 sts2_decide 替內置 AI 做決策,Mod 負責執行。

安裝與啓用

前置條件

  1. dsh ≥ 0.2.1-rc.5(插件 engines.dsh 限定 0.2.x)。
  2. Slay the Spire 2 並已啓用 AiTeammate 的外部 Agent 橋接。
  3. Node.js ≥ 22(dsh 自帶環境即可)。

安裝插件

桌面端在應用 設置 → 插件 中從 npm 安裝包名 dsh-sts2,或從本地倉庫目錄安裝,然後重啓應用。

命令行 profile(web / headless):

# 安裝到 web profile
# dsh profile 的 pnpm-workspace 把 profile 自己作爲 workspace 根,所以需要 -w
dsh plugin --profile web add -w dsh-sts2

# 如果使用別的 profile 名,替換 web
dsh plugin --profile <name> add -w dsh-sts2

重啓 dsh 後,在啓動日誌或 dsh --profile web --dump-config 中應能看到 dsh-sts2。升級與卸載:

dsh plugin --profile web add -w dsh-sts2@latest
dsh plugin --profile web remove dsh-sts2

插件配置

在 側邊欄「插件」→ 已安裝 dsh-sts2 → sts2 行 → 配置 中可改 host / port / token(默認可與遊戲內橋接端口 26333 對齊);host、port、token 改完立即生效。首次裝上帶瀏覽器半區的版本或升級後需 重啓 dsh 才能看到配置卡片。

遊戲內 Mod 設置

路徑:設置 → 模組設置 → AI 隊友 → 外部 Agent(dsh)。

  1. 打開 啓用外部 Agent 橋接。
  2. 確認 橋接端口 與插件一致(默認 26333)。
  3. 可選:遊戲與插件填寫相同 訪問 token。
  4. 需要 agent 操作時打開 允許外部 Agent 操作遊戲(只讀狀態可關閉)。

連接爲懶連接:插件加載約 1.5 秒後會探測一次;遊戲未開時遊戲側顯示「尚無 dsh 連接」屬正常,開遊戲並啓用橋接後重啓 dsh 或調用任意 sts2_* 工具即可。也可在對話中詢問是否連上,agent 會調用 sts2_status;遊戲設置頁會顯示 運行中:127.0.0.1:26333 — 已連接 N 個 dsh 客戶端。

典型用法

在 dsh 對話中可以這樣說(README 示例):

你來玩這局《殺戮尖塔 2》。先調用 sts2_autoplay 打開自動接管,然後一直玩到本局結束。

之後 agent 會循環:sts2_wait → 讀狀態 → 出牌/選擇/回答決策 → 再等待;戰鬥、地圖、獎勵、商店、篝火、事件等由工具鏈處理。多人局出現 AI 隊友且開啓自動接管時,插件還可通過輪詢認領 Mod 發出的接管邀請並新建對話開局。

適用場景與注意

適合希望在 DSH 裏做 STS2 全自動或半自動 agent、需要完整局面 JSON 與統一工具面的開發者或玩家。插件以 當前 dsh 進程的權限 運行,安裝前建議閱讀 GitHub 源碼 與 MIT 許可證;社區目錄 skillhub.cn 插件頁 與 DeepSeek / 幻方無官方從屬關係,僅爲社區索引。

只讀監控時可關閉遊戲內「允許外部 Agent 操作遊戲」。聊天回覆必須調用 sts2_chat_send,僅在對話裏打字玩家看不到;插件未輪詢或 dsh 斷開時,Mod 會回退自帶聊天后端。

結尾

dsh-sts2 把《殺戮尖塔 2》的讀局與整局操作收斂到 DSH 工具集,配合 AiTeammate 本地橋接與 sts2_autoplay,可實現從主菜單到本局結束的連續 agent 驅動。詳情以倉庫 README 爲準:GitHub — YuWan886/dsh-sts2,目錄頁:skillhub.cn/plugins/YuWan886/dsh-sts2。

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

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

小夜