news 2026/4/28 6:12:10

基于LLM Wiki的分层规则驱动游戏开发系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于LLM Wiki的分层规则驱动游戏开发系统

基于LLM Wiki的分层规则驱动游戏开发系统

核心理念:AI 编码的效率,不在算法之精准,而在多智能体协同之无冲突;智能体的精度,不在模型之强弱,而在框架约束之恰如其分。

本文构建一套**从用户规则 → 项目规则 → Skill → 上下文管理 → 自带Agent → Cursor三层规则**的完整规范体系,让零编程游戏开发落地为可复用的工程化工具。

目录

  1. 规则分层总览

  2. 用户规则(User Rules)

  3. 项目规则(Project Rules)

  4. Skill(可复用能力模块)

  5. 上下文管理(Context Management)

  6. 自带Agent设置(Built-in Agents)

  7. Cursor三层规则(Three-tier Rules in Cursor)

  8. LLM Wiki 集成与反馈进化

  9. 完整部署示例


1. 规则分层总览

本系统通过6层规则体系,实现从用户偏好到编辑器行为的全链路约束,确保多智能体协同无冲突、开发流程标准化、成果可复用。各层级规则的核心信息如下表所示:

层级名称作用范围存储位置示例
L1用户规则特定用户(跨项目)用户配置文件“我喜欢简洁的注释”
L2项目规则当前游戏项目项目根目录 `.rules/`“必须使用Canvas API”
L3Skill全局可复用能力中心Skill仓库“平台跳跃任务拆解模板”
L4上下文管理动态会话内存 + LLM Wiki当前设计文档片段
L5自带Agent固定角色智能体系统预置策划师Agent配置
L6Cursor三层规则编辑器级行为`.cursor/rules/`全局、项目、本地规则

设计原则:下层规则继承上层,但可以被上层覆盖;规则越具体,优先级越高。


2. 用户规则(User Rules)

用户规则定义个人偏好,适用于该用户创建的所有游戏项目,确保不同项目中保持一致的开发习惯。规则存储在 `~/llm_wiki/user_rules.json`,支持自定义配置和动态加载。

2.1 规则格式

{"user_id":"alice@example.com","preferences":{"language":"zh-CN","code_style":"2 spaces, no semicolons","complexity":"simple",// simple | moderate | complex"feedback_mode":"auto",// auto | manual"default_platform":"web","asset_level":"placeholder"// placeholder | ai_generated | professional},"custom_rules":["对于任何游戏,优先考虑单人模式,不要提联网功能。","所有提示词必须包含中文说明。","任务拆解粒度不超过15分钟。"]}

2.2 在系统中加载用户规则

后端启动时自动读取用户规则,并将其注入到LLM的system prompt中,确保所有智能体都遵循用户偏好,核心代码如下:

asyncfunctionloadUserRules(userId){constuserRulesPath=path.join(USER_RULES_DIR,`${userId}.json`);if(awaitfs.exists(userRulesPath)){returnJSON.parse(awaitfs.readFile(userRulesPath));}returndefaultUserRules;}// 在调用LLM前注入用户规则systemPrompt+=`\n【用户规则】\n${JSON.stringify(userRules.custom_rules)}\n请遵守以上规则。`;

3. 项目规则(Project Rules)

项目规则针对具体游戏项目,用于约束该项目的技术选型、代码风格、设计规范等,所有参与该项目的Agent都会严格遵循。规则存储在项目根目录的 `.rules/` 文件夹中,支持按模块拆分管理。

3.1 目录结构

my_game_project/ .rules/ tech_stack.md# 技术栈约束coding_style.md# 代码风格game_design.md# 设计规范tasks_format.md# 任务拆分格式docs/ src/...

3.2 示例:`tech_stack.md`

# 技术栈规则 (Project Rule) 1. 前端:HTML5 + Canvas API + Vanilla JavaScript (ES6+) 2. 禁止:React, Vue, jQuery, Phaser等任何第三方框架 3. 游戏循环:requestAnimationFrame,目标60FPS 4. 碰撞检测:轴对齐包围盒(AABB),不使用第三方物理库 5. 资源:所有图片/音效内嵌为base64或相对路径,不依赖外部CDN

3.3 项目规则加载

在协调器(Orchestrator)启动时,会为每个项目创建一个隔离的规则上下文,根据Agent角色分发对应的规则,确保规则精准作用于目标智能体,核心代码如下:

classProjectRuleContext{constructor(projectPath){this.rules=this.loadAllRules(projectPath);}getRulesForAgent(agentRole){// 根据Agent角色返回相关规则if(agentRole==='Programmer')returnthis.rules.tech_stack+this.rules.coding_style;if(agentRole==='Designer')returnthis.rules.game_design;returnthis.rules.all;}}

4. Skill(可复用能力模块)

Skill 是跨项目的原子能力单元,类似可调用的函数,封装了特定场景下的完整能力(如平台跳跃机制设计、任务拆解等)。每个Skill包含触发词、输入参数、输出格式和关联规则,存储在中心仓库 `/skills/`,可被多个项目引用,提升开发效率。

4.1 Skill 结构

# skills/platformer_jump_skill.yamlname:platformer_jump_skilldescription:为平台跳跃游戏生成跳跃机制的提示词和设计建议triggers:-"跳跃手感"-"跳跃高度"-"跳跃机制"parameters:-name:jump_typetype:enumoptions:[fixed,variable]default:variable-name:air_controltype:booleandefault:trueoutput:format:markdowncontent:|## 跳跃机制设计 类型:{jump_type} 空中控制:{air_control} 推荐提示词:请实现{ jump_type == "variable" ? "按得越久跳越高" : "固定高度" }的跳跃...rules_applied:-总是先询问跳跃类型再生成代码-可变跳跃需包含计时器逻辑

4.2 Skill 调用方式

在对话中,用户或系统可通过 `@skill 技能名称` 的方式调用Skill,后端解析后会自动执行技能逻辑,并将输出结果注入到当前会话上下文中,核心代码如下:

// 解析消息中的 @skill 指令functionparseSkills(text){constskillRegex=/@skill\s+([a-zA-Z0-9_]+)/g;letmatch;while((match=skillRegex.exec(text))!==null){constskillName=match[1];constskill=loadSkill(skillName);if(skill){// 执行Skill,返回结果替换 @skill 占位符text=text.replace(`@skill${skillName}`,executeSkill(skill));}}returntext;}

4.3 Skill 与 LLM Wiki 的联动

每次Skill执行后,系统会将其输入输出、用户反馈记录到LLM Wiki的 `/skills/logs/` 目录,用于后续分析优化Skill本身,实现能力的持续迭代。


5. 上下文管理(Context Management)

上下文管理负责维护会话状态、项目知识、临时记忆,确保多轮对话和Agent之间的信息不丢失、不冲突,为智能体决策提供完整、准确的依据。

5.1 三层上下文结构

层级内容生命周期存储
会话层当前对话历史、用户临时输入单次会话内存
项目层设计文档、任务清单、代码版本整个项目周期LLM Wiki (`/sessions/`)
知识层规范库、Skill定义、用户规则持久化LLM Wiki (`/specs/`, `/skills/`)

5.2 上下文注入策略

每次调用LLM前,系统会动态构建上下文,整合各层级信息,确保智能体获取所需的全部约束和信息,核心代码如下:

asyncfunctionbuildContext(sessionId,userInput,stage){constsession=sessions.get(sessionId);constprojectId=session.projectId;// 1. 会话历史(最近10轮,避免上下文过长)constrecentHistory=session.history.slice(-10);// 2. 项目设计文档当前版本(从Wiki读取)constdesignDoc=awaitreadWikiFile(projectId,'ALIGNMENT.md');// 3. 当前阶段的任务清单(如果存在)consttasks=awaitreadWikiFile(projectId,'tasks.json');// 4. 匹配的规范(基于用户输入的关键词)constrelevantSpecs=awaitmatchSpecs(userInput);// 5. 用户规则constuserRules=awaitloadUserRules(session.userId);return{history:recentHistory,design:designDoc,tasks:tasks,specs:relevantSpecs,userRules:userRules,stage:stage};}

5.3 上下文冲突解决

当不同来源的规则发生冲突时,遵循以下优先级(从高到低),确保规则执行的一致性:

用户规则 > 项目规则 > 会话层指令 > 知识层规范


6. 自带Agent设置(Built-in Agents)

系统内置5个专业Agent,覆盖游戏开发全流程(策划、架构、编码、测试等)。每个Agent拥有独立的角色定义、边界约束、提示词模板和允许使用的Skill列表,配置统一存储在 `config/agents.json`,支持灵活调整。

6.1 Agent配置示例

{"agents":[{"name":"Planner","role":"游戏策划师","model":"doubao-1.5-pro","system_prompt_file":"prompts/planner_system.txt","allowed_skills":["clarify_mechanic","art_style_selector"],"rules_scope":["game_design.md"],"output_format":"markdown","user_interaction":"must_confirm_before_next"},{"name":"Architect","role":"架构师","model":"doubao-1.5-pro","system_prompt_file":"prompts/architect_system.txt","allowed_skills":["task_decomposer","mermaid_generator"],"rules_scope":["tech_stack.md","tasks_format.md"],"output_format":"markdown+mermaid","user_interaction":"auto_continue"},{"name":"Programmer","role":"程序员","model":"deepseek-v3","system_prompt_file":"prompts/programmer_system.txt","allowed_skills":["canvas_game_loop","collision_aabb"],"rules_scope":["coding_style.md","tech_stack.md"],"output_format":"html+css+js","user_interaction":"silent"},{"name":"QA","role":"测试官","model":"deepseek-r1","system_prompt_file":"prompts/qa_system.txt","allowed_skills":["playtest_simulator","performance_check"],"rules_scope":["test_report_format.md"],"output_format":"markdown","user_interaction":"report_only"}]}

6.2 Agent 调用流程

协调器根据用户需求,选择合适的Agent链并依次调用。每个Agent执行时,会自动加载其专属的system prompt、允许使用的Skill和对应的项目规则,确保输出符合约束,核心代码如下:

asyncfunctionrunAgent(agentName,input,context){constagentConfig=getAgentConfig(agentName);constsystemPrompt=awaitreadFile(agentConfig.system_prompt_file);constprojectRules=loadProjectRulesForAgent(agentConfig.rules_scope);constfullPrompt=`${systemPrompt}\n\n【项目规则】\n${projectRules}\n\n【输入】\n${input}`;constresponse=awaitcallLLM(agentConfig.model,fullPrompt,context);returnresponse;}

7. Cursor三层规则(Three-tier Rules in Cursor)

Cursor编辑器提供三层规则机制,用于控制AI编码行为。本系统生成的最终提示词会自动适配该规则格式,便于用户直接复制到Cursor中使用,实现系统与编辑器的无缝对接。

7.1 Cursor三层规则定义

层级文件名/位置作用范围示例内容
全局规则`~/.cursor/rules/global.mdc`所有项目“总是使用中文注释”
项目规则`<项目根>/.cursor/rules/*.mdc`当前项目“使用Canvas API”
本地规则`<项目根>/.cursor/rules/local/*.mdc`当前用户在该项目的覆盖“我的API Key: xxx”

7.2 规则文件格式(`.mdc`)

Cursor规则采用Markdown + YAML Frontmatter格式,便于编辑和识别,示例如下:

---description:项目技术栈约束globs:*.js,*.htmlalwaysApply:true---# Canvas游戏开发规范1. 必须使用 `requestAnimationFrame` 实现游戏循环。 2. 碰撞检测使用AABB算法,不允许使用第三方库。 3. 所有游戏状态变量统一定义在 `gameState` 对象中。 4. 禁止使用 `eval` 和 `innerHTML` 动态生成代码。

7.3 从本系统生成Cursor规则

系统可自动将项目规则(`.rules/`)和用户规则转换为Cursor规则文件,无需手动编辑,核心代码如下:

functiongenerateCursorRules(projectRules,userRules){letcursorRules=[];// 转换技术栈规则if(projectRules.tech_stack){cursorRules.push(`--- description: 技术栈约束 globs: *.js,*.html alwaysApply: true ---${projectRules.tech_stack}`);}// 转换用户代码风格规则if(userRules.preferences.code_style){cursorRules.push(`--- description: 代码风格(用户偏好) globs: *.js alwaysApply: false ---${userRules.preferences.code_style}`);}// 写入 .cursor/rules/ 目录writeCursorRules(cursorRules);}

7.4 三层规则在开发中的实际效果

  • 全局规则:保证所有项目的基本质量(如禁止 `eval`,避免安全风险)。

  • 项目规则:确保当前游戏符合技术选型(如强制使用Canvas,避免框架依赖)。

  • 本地规则:允许开发者临时覆盖规则(如调试时放宽性能要求,提升开发效率)。

本系统会将项目规则映射为Cursor的项目规则,用户规则部分映射为本地规则,实现开发流程的无缝衔接。


8. LLM Wiki 集成与反馈进化

LLM Wiki 是系统的知识底座,负责存储所有规则、会话记录、Skill和反馈日志,结合Obsidian实现可视化管理,同时通过反馈链路实现系统的自进化。

8.1 Wiki 结构(兼容Obsidian)

Wiki目录结构设计兼容Obsidian,支持双链、图谱视图等功能,便于规则的可视化管理和维护,结构如下:

/llm_wiki/ .cursor/# Cursor全局规则会链接到这里user_rules/# 用户规则JSONprojects/{projectId}/ .rules/# 项目规则(git跟踪)sessions/# 会话记录specs/# 从反馈提炼的规范skills/# 项目级自定义Skillglobal_skills/# 全局Skill库specs_index.json# 规范索引

8.2 反馈 → 规范 → 规则 的转化链路

系统通过闭环反馈机制,实现规则的持续优化,具体链路如下:

  1. 用户在某次对话中对智能体输出点击“不满意”(反馈)。

  2. 规范提炼Agent分析反馈内容,生成新的规范条目(存入 `specs/`)。

  3. 系统管理员(或自动机制)将高频、通用的规范,提升为项目规则或用户规则。

  4. 项目规则会自动同步到Cursor的项目规则文件中,影响后续代码生成。

8.3 Obsidian 双链与规则可视化

在Obsidian中打开 `/llm_wiki` 仓库后,可实现规则的可视化管理和快速关联:

  • 每个规则文件(`.mdc` 或 `.md`)可相互链接,形成知识网络。

  • 用 `[[项目规则/tech_stack]]` 引用技术栈规则,点击即可跳转查看。

  • 用 `[[用户规则/alice]]` 查看特定用户的偏好设置。

  • 支持图谱视图,直观查看规则之间的引用关系和层级关联。

注:Obsidian客户端可通过官网 https://obsidian.md/ 下载,打开 `/llm_wiki` 文件夹即可完成集成。


9. 完整部署示例

以下为系统的完整部署步骤和实际使用示例,帮助开发者快速上手,实现零编程游戏开发。

9.1 搭建步骤

  1. 克隆系统仓库(假设已有仓库,若需获取完整代码,可参考文末说明)。

  2. 安装依赖:在项目根目录执行命令 `npm install`,安装express、chokidar、openai等依赖。

  3. 配置用户规则:编辑 `config/default_user_rules.json`,设置默认的用户偏好和自定义规则。

  4. 配置项目规则:在目标游戏项目目录下创建 `.rules/` 文件夹,放入 `tech_stack.md`、`coding_style.md` 等规则文件。

  5. 启动服务:执行命令 `npm start`,启动后端服务。

  6. Cursor配置:将项目根目录作为Cursor项目打开,系统会自动生成 `.cursor/rules/` 规则文件,无需手动配置。

注:GitHub仓库 https://github.com/example/llm-game-builder 目前解析失败,暂无法获取完整代码,后续可检查链接后重新获取。

9.2 示例:做一个“太空射击游戏”

用户规则(alice)
{"custom_rules":["所有游戏必须支持键盘和触摸两种操作"]}
项目规则(space_shooter/.rules/tech_stack.md)
使用Canvas API,玩家飞船为三角形,敌人为圆形。
系统运行流程
  1. 用户输入:“做太空射击游戏”。

  2. 协调器加载用户规则(支持键盘+触摸)和项目规则(Canvas、飞船/敌人形状)。

  3. 策划师Agent提问:“射击方式是单发还是连发?”(根据规范自动澄清关键细节)。

  4. 用户回答后,架构师Agent拆分任务(如飞船绘制、敌人生成、碰撞检测等)。

  5. 程序员Agent生成代码,自动遵循项目规则中的“三角形飞船”“Canvas API”约束,同时满足用户规则的操作要求。

  6. 最终代码可直接复制到Cursor中,Cursor加载项目规则进一步辅助编码,确保代码符合规范。


结语

本文构建了一套从用户到编辑器、从规则到技能的完整AI辅助游戏开发规范体系。通过分层规则、Skill复用、上下文隔离、自带Agent以及Cursor三层规则的有机结合,实现了“零编程、高复用、自进化”的游戏开发工具,降低游戏开发门槛,提升开发效率。

后续工作

  • 实现规则的可视化编辑界面(基于Obsidian插件开发)。

  • 建立公共Skill市场,支持开发者上传、下载、分享可复用Skill。

  • 支持更多的目标平台(如微信小游戏、Unity),扩展工具的适用场景。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 6:04:47

linux命令杂记 - 杂乱无章

1.巡检 磁盘使用率 df -h 查看文件目录使用 du -sh * 内存使用率 free -h CPU空闲率 sar -u 1 5 网络连接数(tcp连接数) netstat -alntp|grep tcp|wc -l查看指定目录所在磁盘逻辑卷的使用率 df -h /data2.>重定向到文件(覆…

作者头像 李华
网站建设 2026/4/28 6:03:20

深度学习优化与GPU加速核心技术解析

1. 深度学习优化技术概览深度学习优化技术在过去几年经历了爆炸式发展,从最初的简单梯度下降演变为如今复杂的混合优化策略。这些技术的核心目标可以概括为三个维度:训练速度、计算效率和模型性能。现代优化方法已经不再局限于传统的反向传播算法&#x…

作者头像 李华
网站建设 2026/4/28 6:03:09

K8S部署MySQL主从复制实现高可用数据库

K8S部署MySQL主从复制实现高可用数据库 一、创建MySQL 1.编写YAML文件 #mysql.yaml apiVersion: v1 kind: Service metadata:name: mysqllabels:app: mysql spec:ports:- port: 3306targetPort: 3306selector:app: mysqlclusterIP: None # Headless --- apiVersion: apps/…

作者头像 李华
网站建设 2026/4/28 5:58:20

如何使用拨测构建企业可观测方案

在当今复杂分布式系统环境下,企业亟需一套完善的可观测性体系来保障业务连续性。拨测(Synthetic Monitoring)作为可观测性体系的核心组件,通过模拟用户行为主动检测系统健康状况,能有效弥补真实用户监控(RU…

作者头像 李华
网站建设 2026/4/28 5:57:21

SYSSPEC框架:规范驱动文件系统开发新范式

1. 文件系统开发的范式革命:从手工编码到规范驱动在操作系统领域,文件系统始终扮演着数据持久化的关键角色。传统开发模式下,开发者需要直接面对底层存储硬件的复杂性,同时还要满足上层应用不断变化的需求。这种双重压力使得文件系…

作者头像 李华