AI-drama-pound:用AI重构剧本杀创作与体验的开源引擎

> AI-drama-pound:一个将大语言模型与剧本杀机制深度融合,支持自动生成剧本、动态推理和多人互动的开源创作与游玩框架。 ## 一、项目定位:不只是“AI写剧本”,而是“AI驱动剧本杀” 在AI生成内容(AIGC)赛道拥挤的今天,绝大多数项目聚焦于“文本生成”——让AI写出小说、诗歌、营销文案。但剧本杀(Murder Mystery / Interactive Drama)有其独特的复杂性:它不仅是线性叙事,而是由**角色动机、线索链、时间线、玩家自由决策**共同构成的非线性交互系统。 POUND0423/AI-drama-pound(以下简称ADP)正是瞄准这一空白:它不仅仅用AI生成剧本文本,而是构建了一套**完整的剧本杀运行时**——AI既作为编剧(生成故事框架、人物小传、线索卡),又作为主持人(动态响应玩家行动、推进剧情、判定胜负),甚至可以作为NPC(扮演任意角色并保持性格一致性)。 项目GitHub Stars达493(截至撰写时),虽不算爆款,但社区活跃度与讨论深度表明其在垂直领域有真实需求。 ## 二、解决的痛点:传统剧本杀的“三座大山” 1. **创作门槛极高**:一个合格的剧本杀需要数周乃至数月打磨,涉及逻辑闭环、伏笔回收、角色平衡性。ADP通过提示词工程与结构化输出,让创作者在数小时内产出可游玩的初稿。 2. **主持人数稀缺**:线下剧本杀高度依赖DM(主持人)的临场发挥,线上文字房则常因DM精力有限导致体验下降。ADP将DM角色完全AI化,实现7×24小时不间断主持。 3. **重复可玩性差**:传统剧本杀一旦玩家知道真凶,便失去价值。ADP支持动态剧情分支,每次游玩都会生成不同的线索分布与结局,极大延长了内容生命周期。 ## 三、快速上手:从安装到第一个AI剧本 ### 环境要求 - Python 3.9+(推荐3.11) - 一个可用的LLM API(OpenAI兼容接口,如OpenAI、Claude、本地部署的vLLM等) ### 安装步骤 bash git clone https://github.com/POUND0423/AI-drama-pound.git cd AI-drama-pound pip install -r requirements.txt ### 配置模型 编辑`config.yaml`,指定你的模型端点与密钥: yaml llm: provider: "openai" # 或 "vllm" / "ollama" base_url: "https://api.openai.com/v1" api_key: "sk-xxx" model: "gpt-4o" temperature: 0.8 ### 启动一个AI主持的剧本杀 bash python run.py --mode host --scenario examples/murder_at_mansion.json 此时AI会扮演主持人,向玩家发送开场白,并等待玩家输入行动指令。 ### 代码示例:自定义一个简单场景 在`scenarios/`目录下创建`my_scene.json`: { "title": "密室窃案", "roles": [ {"name": "侦探", "description": "冷静理性,擅长推理"}, {"name": "嫌疑人A", "description": "紧张,隐瞒了关键事实"} ], "initial_prompt": "你是侦探,接到报案来到一间密室。请描述现场环境,并开始调查。", "win_condition": "找出真正的窃贼并找到赃物" } 然后运行: bash python run.py --mode play --scenario my_scene.json ADP会调用LLM,自动生成开场描述、分配角色、等待玩家轮流行动。 ## 四、核心亮点深度解析 ### 1. 动态剧情引擎(Dynamic Plot Engine) 这是ADP的灵魂。传统AI对话缺乏“状态管理”,而ADP内部维护了一个**剧情状态机**,包括: - 当前场景节点 - 已揭示的线索列表 - 各角色对玩家的好感度/怀疑度 - 时间线进度 每次玩家行动,ADP会先更新状态机,再调用LLM生成符合当前状态的回复。这避免了AI“忘记”前文或产生逻辑矛盾。 ### 2. 多角色一致性(Character Consistency Layer) 当AI同时扮演多个NPC时,很容易出现“角色串味”。ADP为每个角色维护独立的**人格档案**(包含性格、口癖、秘密、目标),并在每次生成时注入系统提示词中,强制LLM保持角色边界。实测中,即使连续对话50轮,角色语气依然稳定。 ### 3. 线索与推理验证(Clue & Deduction Verifier) 这是最具技术含量的模块。ADP允许创作者在剧本中定义**逻辑规则**,例如: - 线索A必须在玩家询问特定人物且好感度>50时才会出现 - 真凶只有在收集到至少3条关键线索后才能被指认 ADP通过规则引擎(基于Python的`lark`解析器)将自然语言规则编译为可执行逻辑,确保推理过程的公平性与可验证性。 ### 4. 多模态扩展接口 虽然核心是文本,但ADP预留了图像、音频接口。例如可对接Stable Diffusion生成角色立绘,或接入TTS让AI主持人语音播报。这为未来VR/AR剧本杀提供了基础。 ## 五、适用场景 - **剧本杀创作者**:快速生成初稿,测试逻辑漏洞,甚至用AI模拟玩家试玩。 - **线上互动娱乐平台**:如Discord机器人、网页版文字密室逃脱。 - **教育领域**:历史事件重演、法律案例模拟,让学生在互动中学习。 - **游戏开发**:作为独立游戏或大型游戏的支线任务生成器。 - **AI研究**:作为多智能体协作、长期对话一致性的测试床。 ## 六、同类项目对比 | 项目 | 定位 | 与ADP的差异 | |------|------|------------| | **AI Dungeon** | 开放世界AI叙事 | 无剧本杀机制,无胜负判定,玩家自由度极高但缺乏结构性 | | **Character.AI** | 角色扮演聊天 | 单一角色对话,无多角色协作与线索系统 | | **Inworld AI** | 游戏NPC引擎 | 偏商业SDK,侧重语音与表情,剧本杀逻辑需自行搭建 | | **LangChain 的 Agent框架** | 通用Agent | 需自己构建状态机与规则,ADP开箱即用且针对剧本杀优化 | ADP的最大优势在于**领域专精**:它不试图做通用AI,而是将剧本杀的“规则性”与LLM的“生成性”结合得恰到好处。 ## 七、局限性思考 1. **依赖LLM质量**:在弱模型(如7B本地模型)上,逻辑推理能力明显下降,容易产生“伪线索”或“自相矛盾”。 2. **规则编写门槛**:虽然比纯代码简单,但创作者仍需学习其DSL(领域特定语言)来定义复杂逻辑规则。 3. **长程记忆成本**:当剧情超过100轮,token消耗剧增,需配合向量数据库或摘要压缩,目前项目尚未内置该优化。 ## 八、未来展望 项目在README中透露了路线图: - 支持多人异步游玩(非实时,类似跑团论坛) - 提供可视化剧情编辑器(拖拽式节点图) - 集成LangSmith等可观测性工具,便于调试提示词 ## 九、结语 AI-drama-pound不是又一个“AI写故事”的玩具,而是一个**严肃的交互式叙事框架**。它把剧本杀的“游戏性”拆解为可计算的组件,再用LLM赋予其血肉。对于任何想在AI时代探索互动叙事边界的人,这是一个值得深入研究的开源宝藏。 项目地址:https://github.com/POUND0423/AI-drama-pound
查看工具