Skip to content

MilkyBoat/BoTC-AI

Repository files navigation

血染钟楼 AI 说书人

项目概述

这是一个基于大语言模型(LLM)开发的「血染钟楼」游戏AI说书人系统。该系统能够自动负责游戏的开局角色分配、夜晚/白天的规则推动、与玩家的交互,以及全局状态与标记的维护,为玩家提供沉浸式的桌上角色扮演游戏体验。

核心功能

  • AI驱动的角色分配:根据玩家数量、剧本要求和角色平衡规则自动生成合理的角色配置
  • 昼夜循环管理:自动处理夜晚角色技能执行和白天讨论、处决流程
  • 智能交互系统:通过命令行与玩家进行沟通,引导游戏进程
  • 状态管理:维护玩家身份、存活状态、特殊标记等游戏核心数据
  • 剧本解析:支持加载和解析不同的游戏剧本(暗流涌动、梦殒春宵、黯月初升等)
  • 规则执行:根据角色技能和游戏规则自动执行相应操作

目录结构

├── src/                      # 源代码目录
│   ├── main.js               # 程序入口
│   └── modules/              # 模块目录
│       ├── agent/            # LLM代理相关模块
│       ├── game/             # 游戏核心逻辑模块
│       ├── common/           # 通用工具模块
│       └── utils/            # 工具函数模块
├── game_script/              # 游戏剧本文件(JSON格式)
├── knowledge/                # 游戏规则和术语知识库
├── AGENT.MD                  # AI代理详细说明文档
├── QA.MD                     # 问答与澄清文档
├── package.json              # 项目依赖配置
├── .env.example              # 环境变量模板
└── README.md                 # 项目说明文档(当前文件)

环境配置

系统要求

  • Node.js 14.x 或更高版本
  • npm 或 yarn 包管理器

安装依赖

npm install
#
yarn install

环境变量配置

项目需要通过环境变量来配置LLM API的访问信息。请按照以下步骤操作:

  1. 复制 .env.example 文件并重命名为 .env
cp .env.example .env
  1. 编辑 .env 文件,填入以下必要信息:
# LLM API配置
BASE_URL=your_api_base_url      # LLM接口地址
MODEL=your_model_name           # 模型标识
API_KEY=your_api_key            # API访问密钥

注意:这些环境变量对项目运行至关重要,请确保填入正确的API信息。

运行项目

基本运行

node src/main.js

调试模式

调试模式下会固定剧本与玩家数量(默认8人),方便开发测试:

DEBUG=1 node src/main.js

使用方法

游戏流程

  1. 启动程序后,系统会自动初始化游戏环境
  2. 根据玩家数量进行角色分配
  3. 游戏进入夜晚阶段,AI说书人会引导角色发动技能
  4. 夜晚结束后进入白天阶段,玩家可进行讨论和发动技能
  5. 白天结束时进行处决投票
  6. 系统会检查胜利条件,若未满足则继续下一轮昼夜循环

命令行交互

  • 玩家输入格式:座位号 文本内容
  • 当AI说书人询问时,对应座位的玩家输入回应
  • 处决命令:execute 座位号none(不处决任何人)
  • 确认继续:在某些阶段输入 ok 确认继续游戏

扩展与开发

添加新剧本

game_script/ 目录下创建新的剧本JSON文件,推荐查阅钟楼博物馆

扩展知识

如果需要使用 RAG 能力,请先拉取官方 Wiki 数据至本地知识库:

node scripts/spider.js

该命令会将页面内容转换为 Markdown 并存放到 knowledge/ 目录下。参考钟楼百科

自定义AI行为

可以通过修改 src/modules/agent/ 目录下的文件来调整AI代理的行为和提示词设计。

注意事项

  • 本项目使用LLM API,请注意相关的使用成本和限制
  • 当前版本通过命令行与玩家交互,未来可扩展为Web或IM界面
  • 系统设计支持规则的灵活扩展,但某些特殊规则可能需要额外开发

License

本项目采用 Creative Commons Attribution-NonCommercial 4.0 International License(CC BY-NC 4.0)许可协议。

核心许可条款:

  • 署名:您必须给出适当的署名,提供指向本许可协议的链接,并表明是否进行了修改。
  • 非商业性使用:您不得将本项目用于商业目的。
  • 禁止附加限制:您不得适用法律术语、技术措施或其他手段来限制他人依法享有的本许可协议授予的权利。

详细的许可条款请参阅项目根目录下的LICENSE文件。

About

LLM based AI storyteller for Blood on the Clocktower(BoTC)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •