本项目是一个基于多智能体协作框架构建的狼人杀游戏系统。每个 Agent 根据其分配的角色(狼人、预言家、女巫、守卫、村民)拥有独立的目标和策略。系统在严格的信息隔离约束下,通过大语言模型驱动 Agent 进行推理、发言与决策。
| 模块 | 文件 | 说明 |
|---|---|---|
| 数据模型 | backend/models/game.py |
Pydantic 定义的角色、阵营、阶段、行动等数据结构 |
| 对局引擎 | backend/engine/game_engine.py |
状态机驱动的昼夜交替、技能结算、投票放逐、胜负判定 |
| Agent 策略 | backend/agents/base_agent.py |
各角色 LLM Agent 的策略实现与结构化输出 |
| 后端服务 | backend/server.py |
FastAPI + WebSocket 异步游戏主循环 |
| 前端观战 | frontend/src/App.tsx |
React 实时渲染对局状态 |
| 评测系统 | backend/evaluate.py |
自动化对局分析与 Agent 天梯榜 |
GameEngine.get_player_view 严格限制每个 Agent 的可见信息:
- 狼人:互相知道同伴身份
- 女巫:知道解药/毒药剩余情况,持有解药时可看到昨夜死者
- 预言家:知道自己的查验历史
- 平民/守卫:仅能看到公开发言和存活状态
cd backend
python -m venv venv
# Windows: .\venv\Scripts\activate
# Linux/Mac: source venv/bin/activate
pip install -r requirements.txt
$env:OPENAI_API_KEY="your-api-key"
python server.pycd frontend
npm install
npm run devcd backend
python evaluate.py- 游戏引擎与 Agent 决策逻辑完全解耦
- 结构化数据记录(Pydantic),便于过程回溯与定量分析
- 异步并发执行 Agent 决策,大幅提升对局推进效率
- WebSocket 实时推送对局状态,直观呈现多 Agent 博弈过程
- 多维可量化评测体系,支持不同模型 Agent 同台竞技
| ID | 角色 | 阵营 |
|---|---|---|
| 1 | 预言家 | 好人阵营 |
| 2 | 女巫 | 好人阵营 |
| 3 | 守卫 | 好人阵营 |
| 4 | 狼人 | 狼人阵营 |
| 5 | 狼人 | 狼人阵营 |
| 6 | 村民 | 好人阵营 |
| 7 | 村民 | 好人阵营 |