Skip to content

Zewang0217/ai-jubensha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

472 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎭 AI剧本杀 (AI-ScriptKill)

当人工智能遇上沉浸式推理游戏,每一局都是独一无二的悬疑故事

✨ 项目简介

AI剧本杀是一个创新的智能推理游戏平台,它将传统剧本杀的核心乐趣与前沿AI技术完美融合。在这里,你不再需要凑齐一群朋友,AI玩家将化身各种角色与你同台竞技——它们会撒谎、会推理、会伪装,就像真人玩家一样难以捉摸。

zread

🎯 核心亮点

  • 🤖 智能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间消息通信

🤖 AI Agent 系统

Agent 角色分工

┌─────────────────────────────────────────────────────────────────┐
│                         DM Agent (主持人)                        │
│  • 游戏流程控制 │ 氛围渲染 │ 线索发放 │ 阶段推进 │ 规则仲裁      │
└─────────────────────────────────────────────────────────────────┘
                              │
        ┌─────────────────────┼─────────────────────┐
        ↓                     ↓                     ↓
┌───────────────┐    ┌───────────────┐    ┌───────────────┐
│ Player Agent  │    │  Judge Agent  │    │ Summary Agent │
│   (玩家角色)   │    │    (法官)      │    │   (记录员)     │
├───────────────┤    ├───────────────┤    ├───────────────┤
│ • 角色扮演     │    │ • 逻辑校验     │    │ • 对话摘要     │
│ • 推理分析     │    │ • 行为监控     │    │ • 关键信息提取 │
│ • 隐藏秘密     │    │ • 一致性检查   │    │ • 进度评估     │
│ • 质疑反驳     │    │               │    │               │
└───────────────┘    └───────────────┘    └───────────────┘

记忆管理系统

采用三级记忆架构,确保AI玩家拥有真实的"记忆能力":

  1. 短期记忆 (Redis & caffeine):最近10-20条对话,保持上下文连贯
  2. 中期记忆 (Milvus向量库):游戏过程中的重要信息、线索关联
  3. 长期记忆 (Milvus向量库 + sql):角色背景、剧本设定、人物关系

RAG 检索增强生成

玩家提问/发言
     ↓
┌─────────────────┐
│   意图识别      │
└─────────────────┘
     ↓
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│  向量检索        │ → │  重排序           │ →  │  上下文组装       │
│  (Milvus)       │    │  (Reranker)     │    │  (Prompt构建)    │
└─────────────────┘    └─────────────────┘    └─────────────────┘
                                                       ↓
                                              ┌─────────────────┐
                                              │   LLM生成响应    │
                                              │  (DeepSeek)     │
                                              └─────────────────┘

🎨 核心功能展示

1. 智能剧本生成

  • 示例:
输入: "民国时期的上海滩,一场豪门宴会上发生命案"

AI生成工作流:
├── 剧本名称: 《华灯初上·血染百乐门》
├── 剧本大纲: 包含角色, 时间线, 场景, 线索, 秘密
├── 角色配置:
│   ├── 沈曼丽 - 百乐门头牌歌女 (被害人)
│   ├── 陈老板 - 富商,宴会主办者
│   ├── 赵探长 - 租界巡捕房探长
│   ├── 李医生 - 沈曼丽的私人医生
│   └── 小桃红 - 新来的歌女,沈曼丽的竞争对手
├── 场景加载: 每个场景加载其中的线索, 使用baidu api搜索图片
├── 核心诡计: 密室毒杀 + 时间误导
├── 线索网络: 15条核心线索,30+关联关系(进行迷惑线索的补充, 让游戏更有挑战性)
└── 整合剧本: 将上述内容整合起来, 构成整个游戏的完整剧本

2. 搜证环节

玩家: 点击卡片,获得线索信息,选择是否公开.

Player Agent: AI玩家同样具有搜证能力,也可以选择是否公开. 提示: 如果线索涉及到AI玩家的secret,他可能会隐藏起来并且撒谎哦

DM Agent: 操控整一个搜证环节

系统: 获得线索【神秘照片】、【约会纸条】...

3. 讨论环节

玩家: "陈老板,听说你和沈曼丽关系不一般?"

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:run

前端启动

cd ai-jubensha-frontend

# 1. 安装依赖
npm install

# 2. 启动开发服务器
npm run dev

# 3. 访问 http://localhost:5173

Docker 一键部署

# 启动所有依赖服务
docker-compose up -d

# 服务将运行在:
# - 前端: http://localhost:5173
# - 后端: http://localhost:8080
# - API文档: http://localhost:8080/swagger-ui.html

📁 项目结构

ai-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

📚 相关文档


🎓 技术亮点

1. 多Agent协作架构

采用LangGraph实现复杂的多Agent协作流程,支持条件路由、循环、并行等复杂模式

2. 向量检索 + 重排序

结合Milvus向量检索和BGE Reranker,实现精准的语义搜索,为AI提供相关的上下文信息

3. 状态机驱动的游戏流程

使用Spring State Machine管理复杂的游戏状态转换,确保流程严谨可控

4. 分层记忆管理

三级记忆架构(短期/中期/长期)让AI拥有真实的记忆能力,避免"金鱼记忆"

5. 流式剧本生成

采用工作流编排实现剧本的分阶段生成,支持流式输出和实时预览


👥 团队

本项目作为小组作业开发,展示了现代AI技术在游戏领域的创新应用。


📄 License

MIT License © 2025 AI-ScriptKill Team


🎭 "真相只有一个,但故事有千万种可能"

准备好开始你的推理之旅了吗?

About

AI-powered murder mystery game platform. Multi-Agent collaboration with LangChain4J, RAG memory system - Spring Boot + React

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors