当人工智能遇上沉浸式推理游戏,每一局都是独一无二的悬疑故事
AI剧本杀是一个创新的智能推理游戏平台,它将传统剧本杀的核心乐趣与前沿AI技术完美融合。在这里,你不再需要凑齐一群朋友,AI玩家将化身各种角色与你同台竞技——它们会撒谎、会推理、会伪装,就像真人玩家一样难以捉摸。
- 🤖 智能AI玩家:基于大语言模型的AI角色,拥有独立的记忆、目标和人格特征
- 📝 动态剧本生成:AI实时生成完整剧本,包含角色背景、时间线、作案手法和线索网络
- 🎪 沉浸式体验:多Agent协作系统(DM、Player、Judge、Summary)打造真实游戏氛围
- 🔍 智能搜证系统:场景探索 + 线索关联分析,还原真实侦探体验
- 🗣️ 自然语言交互:与AI玩家自由对话,质问、欺骗、推理,一切皆有可能
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 剧本生成 │ → │ 角色分配 │ → │ 剧本阅读 │ → │ 开场介绍 │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
↓
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 结局揭露 │ ← │ 投票指认 │ ← │ 讨论推理 │ ← │ 场景搜证 │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
| 阶段 | 说明 | 特色功能 |
|---|---|---|
| 剧本生成 | AI根据主题自动生成完整剧本 | 支持自定义主题、角色数量、难度等级 |
| 角色分配 | 玩家获得专属角色身份 | AI玩家同步生成,各自拥有独立目标和秘密 |
| 剧本阅读 | 阅读角色背景、时间线、任务 | Markdown渲染,支持随时回看 |
| 搜证阶段 | 探索场景,发现线索 | 可视化场景地图,点击交互 |
| 讨论阶段 | 与AI玩家实时对话推理 | WebSocket实时通信,自然语言交互 |
| 投票阶段 | 指认凶手,揭晓真相 | 支持多轮投票,AI也会参与决策 |
┌─────────────────────────────────────────────────────────────────────────┐
│ 前端层 (React 19) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 剧本大厅 │ │ 游戏房间 │ │ 搜证界面 │ │ 讨论界面 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│ WebSocket / HTTP
┌─────────────────────────────────────────────────────────────────────────┐
│ 后端层 (Spring Boot 3) │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ AI Agent 系统 │ │
│ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │
│ │ │ DM Agent │ │Player Agent│ │ Judge Agent│ │Summary Agent│ │ │
│ │ │ (主持人) │ │ (玩家角色) │ │ (裁判) │ │ (记录员) │ │ │
│ │ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 核心服务层 │ │
│ │ 游戏流程管理 │ 记忆管理系统 │ RAG检索 │ 剧本生成 │ 搜证系统 │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ MySQL │ │ Redis │ │ Milvus │ │ RabbitMQ │ │
│ │ 业务数据 │ │ 缓存会话 │ │ 向量数据库 │ │ 消息队列 │ │
│ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
| 技术 | 版本 | 用途 |
|---|---|---|
| React | 19.2 | UI框架 |
| Vite | 7.2 | 构建工具 |
| Tailwind CSS | 4.1 | 样式系统 |
| Framer Motion | 12.29 | 动画效果 |
| React Query | 5.90 | 数据获取 |
| 技术 | 版本 | 用途 |
|---|---|---|
| Spring Boot | 3.2.2 | 应用框架 |
| LangChain4j | 1.1.0 | AI交互框架 |
| LangGraph4j | 1.6.0 | 多Agent工作流 |
| Spring State Machine | 3.2.0 | 游戏状态管理 |
| Milvus SDK | 2.6.6 | 向量数据库客户端 |
| 组件 | 用途 |
|---|---|
| MySQL 8 | 关系型数据存储 |
| Redis | 缓存与短期记忆 |
| Milvus | 向量存储与语义检索 |
| RabbitMQ | Agent间消息通信 |
┌─────────────────────────────────────────────────────────────────┐
│ DM Agent (主持人) │
│ • 游戏流程控制 │ 氛围渲染 │ 线索发放 │ 阶段推进 │ 规则仲裁 │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
↓ ↓ ↓
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Player Agent │ │ Judge Agent │ │ Summary Agent │
│ (玩家角色) │ │ (法官) │ │ (记录员) │
├───────────────┤ ├───────────────┤ ├───────────────┤
│ • 角色扮演 │ │ • 逻辑校验 │ │ • 对话摘要 │
│ • 推理分析 │ │ • 行为监控 │ │ • 关键信息提取 │
│ • 隐藏秘密 │ │ • 一致性检查 │ │ • 进度评估 │
│ • 质疑反驳 │ │ │ │ │
└───────────────┘ └───────────────┘ └───────────────┘
采用三级记忆架构,确保AI玩家拥有真实的"记忆能力":
- 短期记忆 (Redis & caffeine):最近10-20条对话,保持上下文连贯
- 中期记忆 (Milvus向量库):游戏过程中的重要信息、线索关联
- 长期记忆 (Milvus向量库 + sql):角色背景、剧本设定、人物关系
玩家提问/发言
↓
┌─────────────────┐
│ 意图识别 │
└─────────────────┘
↓
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 向量检索 │ → │ 重排序 │ → │ 上下文组装 │
│ (Milvus) │ │ (Reranker) │ │ (Prompt构建) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
↓
┌─────────────────┐
│ LLM生成响应 │
│ (DeepSeek) │
└─────────────────┘
- 示例:
输入: "民国时期的上海滩,一场豪门宴会上发生命案"
AI生成工作流:
├── 剧本名称: 《华灯初上·血染百乐门》
├── 剧本大纲: 包含角色, 时间线, 场景, 线索, 秘密
├── 角色配置:
│ ├── 沈曼丽 - 百乐门头牌歌女 (被害人)
│ ├── 陈老板 - 富商,宴会主办者
│ ├── 赵探长 - 租界巡捕房探长
│ ├── 李医生 - 沈曼丽的私人医生
│ └── 小桃红 - 新来的歌女,沈曼丽的竞争对手
├── 场景加载: 每个场景加载其中的线索, 使用baidu api搜索图片
├── 核心诡计: 密室毒杀 + 时间误导
├── 线索网络: 15条核心线索,30+关联关系(进行迷惑线索的补充, 让游戏更有挑战性)
└── 整合剧本: 将上述内容整合起来, 构成整个游戏的完整剧本玩家: 点击卡片,获得线索信息,选择是否公开.
Player Agent: AI玩家同样具有搜证能力,也可以选择是否公开. 提示: 如果线索涉及到AI玩家的secret,他可能会隐藏起来并且撒谎哦
DM Agent: 操控整一个搜证环节
系统: 获得线索【神秘照片】、【约会纸条】...
玩家: "陈老板,听说你和沈曼丽关系不一般?"
AI Player (陈老板): "(脸色微变) 这位朋友,话可不能乱说。曼丽是我们百乐门的台柱子,我作为老板关心她是理所当然的。不过... (压低声音) 我倒是看到李医生今晚一直在后台转悠,鬼鬼祟祟的。"
- JDK 17+
- Node.js 20+
- MySQL 8.0+
- Redis 7.0+
- Milvus 2.3+
- RabbitMQ 3.12+
cd ai-jubensha-backend
# 1. 配置数据库(编辑 application.yml)
# 2. 启动依赖服务 (MySQL, Redis, Milvus, RabbitMQ)
# 3. 编译运行
./mvnw spring-boot:runcd ai-jubensha-frontend
# 1. 安装依赖
npm install
# 2. 启动开发服务器
npm run dev
# 3. 访问 http://localhost:5173# 启动所有依赖服务
docker-compose up -d
# 服务将运行在:
# - 前端: http://localhost:5173
# - 后端: http://localhost:8080
# - API文档: http://localhost:8080/swagger-ui.htmlai-jubensha/
├── ai-jubensha-backend/ # 后端项目
│ ├── src/main/java/
│ │ └── org/jubensha/aijubenshabackend/
│ │ ├── ai/ # AI Agent系统
│ │ │ ├── agent/ # Agent实现
│ │ │ ├── service/ # AI服务层
│ │ │ ├── tools/ # Agent工具
│ │ │ └── workflow/ # 工作流节点
│ │ ├── controller/ # API控制器
│ │ ├── service/ # 业务服务
│ │ ├── models/ # 实体/DTO/枚举
│ │ ├── repository/ # 数据访问层
│ │ ├── memory/ # 记忆管理
│ │ └── websocket/ # WebSocket服务
│ ├── src/main/resources/
│ │ ├── prompt/ # AI提示词模板
│ │ └── application.yml # 配置文件
│ └── pom.xml
│
├── ai-jubensha-frontend/ # 前端项目
│ ├── src/
│ │ ├── components/ # 通用组件
│ │ ├── pages/ # 页面组件
│ │ │ ├── GameRoom/ # 游戏房间
│ │ │ ├── GameList/ # 游戏列表
│ │ │ └── ...
│ │ ├── services/ # API服务
│ │ ├── hooks/ # 自定义Hooks
│ │ └── styles/ # 样式文件
│ └── package.json
│
├── doc/ # 设计文档
└── README.md
采用LangGraph实现复杂的多Agent协作流程,支持条件路由、循环、并行等复杂模式
结合Milvus向量检索和BGE Reranker,实现精准的语义搜索,为AI提供相关的上下文信息
使用Spring State Machine管理复杂的游戏状态转换,确保流程严谨可控
三级记忆架构(短期/中期/长期)让AI拥有真实的记忆能力,避免"金鱼记忆"
采用工作流编排实现剧本的分阶段生成,支持流式输出和实时预览
本项目作为小组作业开发,展示了现代AI技术在游戏领域的创新应用。
MIT License © 2025 AI-ScriptKill Team
🎭 "真相只有一个,但故事有千万种可能"
准备好开始你的推理之旅了吗?