AI 剧本杀(ai-murder-mystery)
一句话定位:多智能体 LLM 驱动的沉浸式谋杀悬疑推理游戏——每个角色都是独立 AI 智能体(人格/记忆/秘密),玩家对话、取证、指认凶手;「生成→批评→修订」三层管线防止凶手剧透。 类型:多智能体 AI 剧本杀 · 开源 · 许可:MIT · 仓库:ScottishFold007/ai-murder-mystery
1. 项目概述
中文开源「AI 剧本杀」的代表作。完整游戏流程:选/建剧本 → 与各嫌疑人对话收集线索 → 出示证物(类《逆转裁判》)→ AI 搭档分析 → 指认凶手 + 动机。核心难题是防剧透:凶手 AI 知道自己是凶手,如何保证它不会说漏嘴?作者用三层管线解决:角色初始回答 → 批评模型检测是否泄露 → 智能修订后再返回玩家。
2. 核心功能
- 多智能体角色:每个角色独立人格、记忆、对话策略与秘密(secret/violation 字段)。
- 三层 AI 防泄露管线:
respond_initial(生成)→critique(批评检测)→refine(修订),problems_detected返回布尔值。 - 剧本系统:预设剧本库 + 可视化剧本编辑器(AI 辅助创作、质检、润色)。
- 证物系统:证物发现/出示/组合/反应,支持 AI 生成证物图像。
- AI 搭档:基于玩家推理笔记做案件分析。
- 多 LLM 支持:Anthropic / OpenAI / DeepSeek / Groq / Ollama / OpenRouter;
OPENAI_API_BASE自定义端点 → 可全本地运行。 - 流式对话、语音与图像生成(火山引擎)外围能力。
3. 技术架构
- 后端:Python 3.12+ / FastAPI / SQLAlchemy(SQLite 开发、PostgreSQL 生产可选,
DB_CONN_URL不设即免数据库)。 - 前端:React 18 + TypeScript + Mantine 7(CRA,react-scripts 5),本地 IndexedDB 存储。
- AI 服务:
INFERENCE_SERVICE=openai+OPENAI_API_BASE直连任意 OpenAI 兼容端点。 - 图像生成:火山引擎(可选,缺省不影响核心玩法)。
4. 本机实测记录(✅ 三层管线全本地跑通)
- 后端
uvicorn main:app :10000→/health→{"status":"ok"}。 - 全本地管线:
.env配OPENAI_API_BASE=http://127.0.0.1:5002/v1+MODEL=qwen2.5-3b-instruct,零 API key。 - 实测
/invoke(管家老赵声称「案发当晚我在酒窖清点库存」):- 生成层输出辩护台词;
- 批评层正确识破:
发言承认了离开酒窖的事实。违反的原则:原则A,problems_detected: true; - 修订层返回最终回复。整轮 3.9 秒(本地 3B)。
- 踩坑:① Windows GBK 控制台打印 emoji 崩溃 →
PYTHONIOENCODING=utf-8;② CRA 前端构建撞沙箱 spawn 边界(后端全量验证,前端本机可正常构建运行)。
5. 如何运行(复现)
git clone https://github.com/ScottishFold007/ai-murder-mystery && cd ai-murder-mystery
cd api && cp .env.example .env # 填 INFERENCE_SERVICE=openai / OPENAI_API_BASE=<本地或云端> / MODEL
python -m venv venv && venv\Scripts\pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 10000
# 前端(另开终端):
cd ../web && npm install && npm start # http://localhost:5001
6. 优劣势分析
| 优势 | 劣势 |
|---|---|
| 三层防剧透机制设计精妙、可移植 | 3B 级本地模型修订质量有限(需 7B+ 才有完整效果) |
| 全本地可跑(OpenAI 兼容端点) | 前端 CRA 技术栈偏旧、构建较重 |
| 剧本编辑器 + 质检的创作闭环 | 依赖剧本质量,无内置高质量剧本库 |
| 中文原生、UI 完整(证物/搭档/推理提交) | 单机为主,无多人在线功能 |
7. 参考链接
- 仓库:https://github.com/ScottishFold007/ai-murder-mystery
- 同类:Rookiecoder-jsjs/Murder-Mystery-Game-Agentscope(阿里 AgentScope)、mufengyuan666/Veil、JianWang97/jubensha-ai(见 10 号文档)、wolfcha(AI 狼人杀)