Evolving-Werewolf:跨局進化的 AI 狼人殺引擎

前言

在 DeepSeek Harness (DSH) 插件生態中,構建具備複雜邏輯流和多智能體交互的應用,通常需要處理狀態機維護和信息隔離。Evolving-Werewolf 插件提供了完整的 9 人局狼人殺引擎解決方案。它不依賴 LLM 作爲遊戲主持人,而是由引擎託管流程,並引入跨局知識積累機制,讓 AI 玩家在多局遊戲後通過復盤提煉經驗,從而不斷提升策略水平。

是什麼

這是由 VegeFin 維護的 DSH 插件。其核心價值在於 AI 玩家會在每局遊戲結束後通過復盤提煉經驗,並將這些經驗寫入知識庫,在下局遊戲中通過角色人設注入,從而提升策略水平。目前插件包含完整的 9 人局配置(3 狼 / 1 預言家 / 1 女巫 / 1 獵人 / 3 村民)。

核心功能

  • 跨局知識積累與進化:遊戲結束後,引擎自動提煉復盤經驗,寫入按角色分類的知識庫。下局遊戲時,AI 玩家會攜帶這些經驗,避免已知錯誤。
  • 引擎託管:所有流程由狀態機驅動,不消耗 LLM Token 作爲遊戲主持人,避免信息失真。
  • 完整角色能力:支持狼人雙輪討論投票、預言家查驗、女巫救毒(首夜自救、每晚一瓶)、獵人遺言開槍等完整技能。
  • 標準白天流程:包含警長競選、競選演講、退水、警長投票、警長定向發言、警長 1.5 倍票權(平票重投)等標準流程。
  • 信息隔離:狼刀目標僅狼人及女巫可見,死亡原因不公開,角色頻道私有。
  • 防卡死機制:包含 60 秒催促、180 秒超時跳過、運行時感知(防止慢速玩家被誤殺)及推進互斥鎖。
  • 死亡凍結與復盤:出局玩家信息凍結,遊戲結束後輸出因果清晰的決策軌跡復盤。
  • 人類席位與面板:支持隨機分配人類席位,通過瀏覽器面板進行操作,與 AI 競爭。
  • 資產管線:集成智譜 AI (GLM-4V-Flash / CogView-3-Flash),用於 UI 頭像和角色素材生成。

安裝與啓用

確保已安裝 Node.js >= 18 和 DSH,然後執行以下步驟:

# 1. 克隆倉庫
git clone https://github.com/VegeFin/Evolving-Werewolf.git
cd Evolving-Werewolf

# 2. 安裝依賴
pnpm install   # 或 npm install

# 3. 添加到 DSH web 配置
dsh plugin --profile web add ./

# 4. 啓動 DSH Web
dsh web

啓動後,插件會自動加載 werewolf_* 工具。

配置

插件依賴 image-config.json 來配置智譜 AI 的 API Key,以啓用圖片生成與識別功能。

cp image-config.example.json image-config.json

編輯 image-config.json,填入智譜開放平臺註冊的 API Key:

{
  "apiKey": "your-api-key",
  "baseURL": "https://open.bigmodel.cn/api/paas/v4",
  "visionModel": "glm-4v-flash",
  "drawModel": "cogview-3-flash",
  "drawSize": "1024x1024",
  "assetDir": "ui/assets"
}

knowledge.json 用於存放知識庫種子,遊戲結束後引擎會自動追加經驗。

典型用法

主機視角工具

主機通過調用 DSH 工具來控制遊戲流程:

  • werewolf_start:開始遊戲,隨機分配身份,生成 8 個 AI 玩家。如果不指定 humanSeat,系統會隨機分配一個人類席位。
  • werewolf_act:玩家執行動作(18 種動作)。
  • werewolf_status:查看公共狀態,主機可見完整角色表和復盤報告。
  • werewolf_ask_rule:查詢規則或角色能力。
  • werewolf_abort:主機中止遊戲。
  • werewolf_look / werewolf_draw:使用視覺或圖生圖模型分析/生成圖片。

玩家動作 (werewolf_act)

主機調用 werewolf_act 時,需傳入 action 和相關參數:

  • speech + text:發言(白天競選發言或白天競選後發言)。
  • vote + target:棄票(0 爲棄票)。
  • sheriff_vote + target:警長投票。
  • sheriff_run / sheriff_not:競選警長 / 不競選。
  • direction + text=left/right:警長設置發言方向。
  • kill + target + text:狼人擊殺目標。
  • seer + target:預言家查驗。
  • witch_save / witch_poison + target / witch_none:女巫救人/毒人/不操作。
  • hunter + target:獵人開槍(0 爲不開槍)。
  • alive:在線確認。
  • review + text:提交復盤。

人類玩家面板

遊戲開始後,通過瀏覽器訪問 http://127.0.0.1:<port>/werewolf/panel。面板顯示身份卡、事件流、發言階段及操作區。

目錄結構

插件目錄結構如下:

Evolving-Werewolf/
├── lib/
│   └── index.js          # 靜態引擎主文件(v33)
├── ui/
│   ├── panel.html        # 人類玩家面板
│   ├── assets/           # UI 資源
│   └── protos/           # UI 原型
├── archive/              # 動態版本歸檔(開發調試用)
├── image-config.example.json
├── knowledge.example.json
├── package.json
└── cordis.patch.yml

適用場景與注意

該插件適合需要在 DSH 環境中運行多人邏輯遊戲或模擬對抗場景的開發者。它提供了一個完整的遊戲循環,並支持人類玩家通過瀏覽器參與。使用前請檢查源碼與許可證。資產管線爲可選功能,不影響核心玩法。

目錄

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

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

小夜