【项目博客】系统核心功能模块开发
在完成系统基础框架和开发环境搭建之后,项目进入核心功能开发阶段。本阶段的主要目标是完成游玩模式相关核心模块的设计与实现,使系统能够具备完整的交互式叙事运行能力。
本阶段首先完成了基于RAG的小说知识检索模块开发。由于角色大模型需要在推理过程中保持与原作设定的一致性,因此仅依靠提示词无法稳定获得符合小说背景的行为结果。我完成了RAG流程的设计与实现,对小说原作知识进行了结构化拆分,将世界观信息、角色设定以及原作剧情片段分别存储到Qdrant向量数据库中。在角色被调度时,系统根据当前世界状态构造查询,通过向量检索获取相关原作信息,并与当前世界信息共同组成角色大模型的输入提示词。这样能够保证角色行为在较长时间的运行过程中仍然尽可能符合原作设定。项目整体采用“世界信息 + 原作信息 + 任务描述”的三段式提示词结构完成角色推理流程。
在模型能力方面,团队完成了行为理解层ActionParser模型的微调。ActionParser基于Qwen2.5-1.5B-Instruct模型进行LoRA微调,能够将自然语言行为解析为系统可执行的结构化动作数据。通过这一模块,角色层与控制层之间建立了清晰的接口边界,使控制层不需要理解复杂自然语言,而只需要处理统一格式的行为数据。
在后端控制层,我完成了游戏运行框架、启动器以及调度器的设计和实现。由于游玩模式需要实现持续运行的多智能体环境,传统的请求响应式Web业务逻辑无法满足需求。为此,系统设计并实现了GameRuntime与GameRuntimeManager运行框架,由后台线程持续执行游戏主循环。启动器负责初始化游戏会话、世界状态和事件日志,并创建对应的运行实例;调度器则负责在每个时间步选择需要激活的角色,组织观察信息并触发角色推理。这样系统能够在没有用户持续操作的情况下自动推进剧情发展。
与此同时,规则校验模块也完成了基础实现。项目没有直接将大模型输出写入世界状态,而是在行为解析之后增加规则处理流程,对结构化行为进行合法性校验、实体绑定以及状态更新。这样能够避免角色行为直接修改世界信息所带来的混乱问题,使系统运行过程具有明确的数据流转逻辑。控制层、行为理解层、角色层和世界信息层共同形成了完整的游玩模式运行闭环。
在前端部分,团队完成了游玩模式界面的设计与开发。界面采用世界状态展示区、角色状态展示区以及用户操作区的布局方式,并通过WebSocket实现与后端的实时通信。用户可以查看当前场景状态、情节状态和角色状态,也可以在游戏运行过程中随时介入、暂停或结束游戏。为了支持游戏启动流程,还设计了可玩情节节点选择界面,使用户能够从小说中的不同情节阶段开始游玩。
截至目前,项目的核心功能模块已经基本开发完成。系统已经具备小说知识检索、角色推理、行为解析、规则执行、多智能体调度以及前端交互等关键能力,整体运行链路已经能够从用户开始游戏一直贯通到剧情自动推进,为后续的平台功能完善、系统联调和测试工作奠定了基础。
