dsh-game-agent:把紅警 2 網頁對局做成 DSH 可編排的遊戲 Agent

前言

在 DSH 裏做直播互動時,常見做法是聊天回覆與畫面展示分開:觀衆說話進隊列,角色只負責念稿或表情,遊戲畫面仍是人工切鍵。若要把「觀察—決策—執行」做成 Agent 可選工具,並把觀衆指令插進決策優先級,還需要單獨記復盤、經驗和證據,一般得自己接控制器、再掛一層經驗庫。

dsh-game-agent(維護者 XiaoZheBrother,社區目錄分類爲工作流)面向這類需求:把遊戲操作封裝成工具集,聊天與遊戲執行分通道處理,經驗和復盤落在獨立 SQLite。當前爲 0.1.0-alpha.4 開發預覽,適配器僅支持項目使用的修改版紅警 2 網頁接口,不是任意原版 exe 控制器;插件以當前 DSH 進程權限運行,安裝前應閱讀源碼與 MIT 許可證。

這是什麼

dsh-game-agent 是 DeepSeek Harness 的遊戲向插件,與同級 dsh-live-studio 組合使用。它把觀察、生產、移動、進攻、佔領、部署、鏡頭與選址等操作做成 Agent 工具;觀衆指令優先於自主決策,回覆語音與遊戲執行分開處理。決策記錄、經驗採用、結果證據與復盤保存在獨立 SQLite 中。

核心功能

下面按 README 已寫明的能力歸納,不擴展未驗收項。

工具化遊戲操作

Agent 通過工具選擇與執行驅動對局,而不是在聊天裏硬編碼宏命令。工具執行正確不等於策略有效;插件側會把經驗、反例與修訂歷史分開記錄。

觀衆指令與自主決策

觀衆指令優先於自主決策。聊天內容只進入回覆隊列,與遊戲執行分路處理,避免「說完話順帶亂點單位」的耦合。

經驗與復盤(SQLite)

經驗條目含來源、適用情境、採用記錄、結果證據、反例和修訂歷史。復盤逐項校驗:合格項保留,錯誤項可重試且有上限。數據庫使用 WAL 與短事務。遊戲專用經驗暫由本插件管理;通用經驗接口在 dsh-agent-growth 中,尚未自動遷移兩者數據庫。README 註明未進行真實模型對局驗收。

直播佈局與內置舞臺

遊戲模式已包含直播能力:同一直播間只啓用遊戲插件或直播插件中的一個。控制台默認 http://127.0.0.1:3098/;直播素材地址爲 http://127.0.0.1:3098/?view=stream&audio=direct&layout=game。README 中的聯調截圖展示早期佈局(左側遊戲、右側角色與賬本),Live2D 與遊戲資源需自行準備,不隨插件分發。

配套 dsh-live-studio 0.2.0-alpha.3 起可配置本地 model 與 cubismCore,將遊戲畫面嵌入內置舞臺;未填寫時仍走原有 jingyuUrl。模型與 Cubism Core 不隨包分發。

自動續局

自動續局依賴支持保留速度設置的修改版遊戲客戶端;遊戲資產必須自行提供。自主控制默認暫停,需在控制台確認資源、頻道和對局狀態後再開啓。

依賴與版本

項 說明
Node.js >=22.19.0(package.json engines)
同級插件 dsh-live-studio ^0.2.0-alpha.3
兼容說明 可與直播插件 0.2.0-alpha.1 組合安裝;遊戲戰略、經驗和自動續局行爲不變
Python / 技能目錄 需同版本 dsh-live-studio 的 Python 依賴;另需 Node.js 與含 scripts/ra2ctl.mts、node_modules/tsx 的遊戲控制技能目錄
適配器 包內 adapters/ra2 提供固定上游版本的補丁與構建步驟;客戶端與遊戲資源需另行構建並導入

先安裝並驗證對應遊戲適配器,再啓用本插件。

安裝與啓用

官方 README 給出的安裝路徑是本地開發包(npm pack 生成 tgz),不是憑倉庫名拼接 dsh plugin add github:...。

  1. 在源碼目錄執行 npm pack,得到 tgz 的絕對路徑。
  2. 先把同版本直播插件 tgz 安裝到同一 DSH profile。
  3. 再安裝遊戲插件 tgz;安裝不會自動啓用。

PowerShell 示例(路徑按你的環境替換):

$env:DSH_HOME = 'D:\my-agent-data'
dsh plugin --profile web add '<生成的 tgz 絕對路徑>'

注意:開發包不得覆蓋正在運行的舊任務,請先停掉舊實驗啓動器;填寫配置後再設 enabled。目前不提供穩定版 Release。

配置要點

沿用直播插件的 home、persona、python、jingyuUrl、room、credential、ledger 等配置,併爲遊戲插件增加:

字段 含義
enabled 默認 false
port 默認 3098
gameSkill 含 scripts/ra2ctl.mts 與 node_modules/tsx 的技能絕對路徑
experience 遊戲經驗 SQLite 路徑;沿用原文件可保留全部經歷
channel 遊戲頻道,默認 1

本地舞臺(可選,配合 dsh-live-studio):配置 model 目錄與 cubismCore SDK 文件路徑後,可無需另外啓動鯨語;兩項未填則仍用 jingyuUrl。

典型用法流程

  1. 安裝並校驗 adapters/ra2 對應客戶端與 ra2ctl 技能目錄。
  2. 在同一 profile 裝好 dsh-live-studio 與本插件,停掉舊啓動器後寫入上述配置,enabled 保持 false 直至資源就緒。
  3. 打開 http://127.0.0.1:3098/ 控制台,確認頻道與對局狀態後開啓自主控制。
  4. 推流或預覽使用 http://127.0.0.1:3098/?view=stream&audio=direct&layout=game。
  5. 需要自動續局時,確認修改版客戶端支持保留速度設置。

適用場景與注意

適合誰: 已在 DSH 上跑直播棧、願意維護修改版紅警 2 網頁控制鏈路與 ra2ctl 技能目錄的開發者;需要觀衆指令插隊、可追溯復盤與經驗 SQLite 的 Agent 實驗。

務必注意:

  • alpha 預覽,尚未切換生產;默認 enabled: false。
  • 插件與 DSH 同進程權限,安裝前檢查源碼與 MIT 許可證。
  • 不與直播插件同開於同一房間;遊戲資產、Live2D、Cubism 均需自備。
  • SkillHub 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係;生態理念是「一切皆插件」,按需自行審計後再上機。

結尾

dsh-game-agent 把網頁紅警對局收成 Agent 工具鏈,並把觀衆指令、自主操作、續局與 SQLite 復盤放在同一條工作流裏,適合在 DSH 上做可重複的直播+策略實驗。詳情見 SkillHub 目錄頁 與 GitHub 倉庫。

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

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

小夜