Skip to content

AI 游戏项目:智能 NPC 与动态剧情篇

项目边界| 本文是风格化 3D 在线 RPG 的示例项目与工程设计,没有真实游戏代码、玩家实验、线上事故或收益数据。可以用它训练架构设计、最小实现和面试表达,但不能表述为已经上线。

目录

1. 项目摘要

1.1 30 秒项目回答

我设计的是一个面向风格化 3D 在线 RPG 的智能 NPC 系统,目标不是让模型自由编故事,而是在角色设定、玩家权限、世界状态和成本约束下,生成可验证的对白、动作与支线任务提案。系统以 Godot Headless Server 保存唯一权威状态,AI 服务通过 RAG、分层记忆和受控 Agent 生成 NpcDecisionProposal,再由确定性规则校验后才进入游戏。当前只有设计、接口、故障演练和验收方案,因此我能说明如何实现与验证,不能声称改善了玩家留存。

1.2 用户、角色和输出

角色关注问题系统输出不应交给模型的决策
玩家NPC 是否记得我、回应是否自然、任务是否可完成对白、情绪、动作和受控支线奖励结算、公平性和账号资产
剧情策划人设与世界观是否一致、分支是否可运营角色版本、任务模板、审核记录核心剧情事实与正式发布
客户端工程师状态、动画和资源能否稳定落地结构化提案、稳定资产 ID把自由文本直接映射为任意脚本
服务端工程师并发、幂等、状态版本和回放是否可靠权威事件、状态快照、审计 Trace接受过期状态下的副作用
安全与运营是否剧透、越权、违规或失控策略结果、原因码、降级模板无审核自动放开高风险内容

1.3 项目真正的难点

这个项目最难的不是“调用一次 LLM”,而是在开放表达与确定性游戏规则之间建立可证明的边界:模型可以建议 NPC 说什么、做什么,却不能自行修改背包、任务进度、奖励和世界历史。设计必须同时处理低延迟、多人隔离、角色一致性、状态竞争、内容安全和资产可用性。

2. 业务目标与验证边界

2.1 原流程与问题

传统固定对白便于控制,但容易出现重复、对玩家历史无感、支线生产成本高等问题。直接让 LLM 接管 NPC 又会引入剧透、状态幻觉、不可完成任务、不可预测成本和内容风险。项目采用“确定性主干 + 受控生成支线”:核心剧情与经济系统保持人工和规则控制,普通闲聊、关系反馈和低风险支线允许 AI 提案。

2.2 业务问题与技术映射

业务问题 ID业务问题目标或护栏指标对应技术点证据来源继续、切换或停止条件
BP-G01固定台词重复,玩家历史无法影响回应角色一致性、记忆支持率、重复表达率TP-08、TP-09对话回放集、人工标注、Trace记忆错误或串线时关闭长期记忆写入
BP-G02自由生成容易剧透或违背世界观知识支持率、剧透违规率、安全拦截率TP-08、TP-12权限样本、引用、策略原因码高风险剧情只返回固定内容
BP-G03动态任务可能无法完成或奖励失衡任务可达率、规则拒绝率、重复奖励事件TP-06、TP-10状态快照、规则日志、事件账本任一经济副作用绕过服务端即停止发布
BP-G04模型延迟会阻塞游戏节奏首段响应、端到端延迟、降级率、单次成本TP-01、TP-11分段 Trace、缓存命中、账单超出场景预算时改用模板或小模型
BP-G05内容生产快不等于玩家体验更好中断率、任务完成、举报、分层留存TP-13A/B 实验、埋点、质检样本护栏变差或结果不显著时停止放量

2.3 指标口径

首次评测不预设虚构阈值,而是在固定角色、剧情、硬件、模型和预算下建立人工基线,再锁定发布门槛。

指标层级指标公式与分母窗口与分群能证明什么不能证明什么
技术角色一致率通过人设 Rubric 的回答数 / 有效回答数按 NPC、剧情阶段、模型版本人设约束是否被遵守玩家是否更喜欢角色
技术动作合法率通过服务端规则的提案数 / 全部动作提案数按动作类型、场景、状态版本提案是否可执行执行后是否产生业务价值
过程有效对话完成率正常结束且未降级中断的会话 / 发起会话按新老玩家、设备、区域链路是否可用长对话一定更有趣
结果支线完成与分层留存实验组与对照组的差异预注册窗口,按玩家随机在控制条件下的相关或因果证据所有变化都由 AI 单独造成
护栏剧透与举报率违规事件 / 可审计交互按剧情章节、语言、策略版本安全风险是否受控零举报等于零风险

3. 小白场景与专业映射

小白先这样理解:一场不能乱发道具的沉浸式剧场

玩家小林进入一场沉浸式剧场,扮演守城学徒。他曾经帮过铁匠,所以铁匠演员记得这件事;但小林还没解锁王室密室,演员不能因为观众追问就泄露结局。演员可以临场组织语言,舞台监督却必须核对剧本进度、道具清单和安全规则,真正发放“宝剑道具”的动作还要由后台管理员确认。

生活元素技术对象作用
NPC 演员LLM 与角色 Prompt在允许范围内组织对白和动作建议
世界设定手册世界知识 RAG提供可引用的角色、地点与剧情事实
演员笔记玩家与 NPC 分层记忆保存可追溯的互动与关系摘要
舞台监督Agent 编排和策略层装配上下文、调用工具、检查结果和收敛失败
后台管理员权威游戏服务器验证任务、奖励、资产与状态版本并执行事件
服装和道具库美术资产注册表把稳定资产 ID 映射到已审核模型、动画和特效

回到专业机制:LLM 输出的是带 Schema 的提案,服务端根据当前 world_state_version、玩家权限、任务模板和资产注册表验证。通过后生成权威 GameEvent;失败则返回原因码或固定降级对白。

这个类比解释了“受控即兴”和“最终裁决”的区别,但忽略了网络抖动、并发写入、模型概率性、数据删除和跨区域延迟。生产方案仍需幂等、版本、Trace、故障注入和安全评测。

图:教学插图|智能 NPC 的权威裁决边界

替代文本: 铁匠 NPC 在舞台左侧生成对白、情绪和动作提案;舞台监督在中间核对角色、任务、道具和资产条件;右侧权威金库只为通过校验的提案打开奖励通道,未获批准的提案撞上关闭门禁并沿退回路径返回。

铁匠 NPC 只提交表达和动作提案,舞台监督验证后由权威服务器决定是否打开任务与奖励门禁

读图结论: AI 的自由度停在“提出候选”这一侧;金币、任务和世界事件始终锁在服务端权威边界之后,批准路径与拒绝路径都必须可见。

这张 gpt-image-2 教学图把主链明确标为“玩家输入 → AI 生成提案 → 服务端规则校验 → 批准后执行”,底部同时标出“校验失败 → 拒绝提案 → 模板对白降级”。颜色只帮助分组,文字、箭头、开放门、关闭门和回退路线共同表达状态含义。

4. 系统架构与权威边界

4.1 组件职责

图:架构|Godot 在线 RPG 与 AI NPC 服务边界

替代文本: Godot 客户端只提交交互意图并渲染已批准结果,Godot Headless Server 保存权威世界状态;AI 编排服务从 PostgreSQL/pgvector 和 Redis 取得受权限约束的知识与记忆,通过 LLM Gateway 生成提案,规则校验与资产注册表通过后才写入事件账本并复制给客户端,OpenTelemetry 覆盖全链路。

图表加载中…

读图结论: AI 服务拥有表达自由但没有游戏资产写权限;权威服务器、规则校验和资产注册表共同构成不可绕过的副作用边界。

4.2 技术调用流程

图:技术调用流程|玩家对话、AI 提案、规则验证与失败降级

替代文本: 客户端提交带幂等键的交互,权威服务器固定状态版本并调用 AI 编排;编排完成权限检索、记忆读取和模型生成后返回提案,服务端在状态仍新鲜且规则通过时提交事件,否则丢弃过期结果或返回降级对白;超时只降级表达,不盲目重复副作用。

图表加载中…

读图结论: request_id 用于追踪,idempotency_key 用于副作用去重,world_state_version 用于拒绝过期提案;三个句柄不能互相替代。

5. 五层状态管理

5.1 状态分层

状态层单一事实源典型内容写入者恢复方式
引擎运行时状态Godot SceneTree/HFSM当前场景、交互焦点、动画、导航、UI客户端确定性逻辑场景重建与服务器快照
权威游戏状态Headless Server + Event Store背包、任务、奖励、世界事件、NPC 生死服务端命令处理器快照加事件回放
NPC 行为状态服务端 NPC HFSMIdle、Perceive、Converse、Plan、Act、Cooldown服务端状态机按事件和超时恢复
Agent 工作流状态AI Orchestrator检索、生成、校验、重试、降级、终止编排服务Checkpoint、deadline、原因码
长期记忆状态PostgreSQL/pgvector事件记忆、关系摘要、来源和有效期异步记忆管线从权威事件重建或删除

长期记忆是派生上下文:如果记忆摘要写着“玩家拥有王冠”,但权威状态没有对应事件,系统必须信任权威状态并把记忆标记为冲突,而不是补发王冠。

5.2 NPC 行为状态机

图:状态机|NPC 运行状态与 AI 提案边界

替代文本: NPC 从空闲感知到玩家后进入对话,只有需要复杂建议时才进入规划;服务端验证通过后执行动作并冷却,超时或拒绝则进入安全降级,玩家离开、状态过期或连接断开会取消当前请求并返回空闲,不允许迟到的 AI 结果直接执行。

图表加载中…

读图结论: AI 只参与 Plan,不能跳过 Validate 直达 Act;迟到响应必须按请求状态和世界版本丢弃。

5.3 恢复与隔离案例

  • 断线重连: 客户端不恢复未确认副作用,只用 event_id 查询服务端已提交结果。
  • 存档加载: 从权威快照和事件恢复任务;记忆摘要异步重建,不阻塞主流程。
  • 旧响应丢弃: request_id 已取消或 world_state_version 变化时,只保留 Trace,不执行提案。
  • 跨玩家隔离: 检索键必须包含 tenant/game_id + player_id + npc_id,服务端身份不可由 Prompt 字段替代。
  • 结果未知: 提交事件超时先按幂等键查询,不直接重试奖励写入。

6. AI NPC 与动态剧情方案

6.1 角色与知识版本

NpcProfileVersion 保存角色身份、说话节奏、价值观、已知事实、秘密、禁区和允许动作。世界知识切块必须携带地点、阵营、剧情章节、可见条件、有效版本和来源。查询先做硬权限过滤,再做关键词/向量混合召回与重排;Reranker 不能补回被 ACL 正确过滤或候选阶段漏掉的证据。

6.2 分层记忆

记忆层内容写入条件使用方式删除与冲突
会话记忆当前轮对话和临时指代每轮,受 Token 预算限制上下文窗口会话结束压缩或删除
事件记忆玩家帮助、欺骗、交易等事件来自权威事件并满足重要度门槛按玩家、NPC、时间检索撤销事件同步 Tombstone
关系状态信任、敌意、欠债等可解释字段确定性规则或审核后的事件直接作为结构化条件与事件账本对账重建
长期摘要多次互动的压缩描述异步生成并绑定来源事件辅助角色表达不得覆盖权威事实

6.3 动态任务

动态任务采用人工定义的 QuestTemplate,模型只能填充允许参数:目标 NPC、地点、叙事理由和对白变体。服务端验证前置任务、地点可达性、目标存活、奖励表、冷却、互斥关系和重复领取。核心主线、付费内容、竞技公平和稀缺经济资产不进入自由生成范围。

json
{
  "template_id": "escort_local_merchant_v3",
  "parameters": {"target_npc_id": "npc_merchant_017", "destination_id": "gate_east"},
  "reward_policy_id": "reward_sidequest_tier_1",
  "required_world_state_version": 1842,
  "narrative_reason": "商人担心最近出现的盗匪",
  "evidence_refs": ["lore:bandit-event:12", "memory:event:8f2a"]
}

上例不是可直接执行的奖励命令;reward_policy_id 只能引用服务端已审核策略。

6.4 模型路由与降级

  • 普通招呼优先命中规则模板或语义缓存;
  • 关系反馈和支线对白使用低延迟结构化模型;
  • 关键但允许生成的剧情节点使用质量更高、预算更严格的模型;
  • 限流、超时、Schema 错误或安全风险时返回本地化固定对白;
  • 降级不得伪造记忆、任务或奖励,且记录 fallback_reason

7. Godot 主实现与接口

7.1 模块职责

模块运行位置职责不能承担的职责
NpcController.gd客户端收集输入、显示等待态、消费批准结果决定奖励与任务状态
NpcStateMachine.gd客户端/服务端对应实现维护允许状态迁移和取消令牌把模型文本当作状态命令
NpcAiClient.gdHeadless Server调用 AI 服务、传播 deadline、解析原因码在客户端暴露服务密钥
NpcProfileResource.gd客户端只读资源保存显示名、语音、默认动画等静态配置保存玩家秘密和权威状态
AnimationBridge.gd客户端将白名单 animation_cue 映射到 AnimationTree按任意字符串执行方法
SaveGameService.gd服务端为主管理快照、事件和兼容版本让本地存档覆盖在线权威状态
AssetRegistry.gd客户端与构建管线稳定资产 ID 到已批准 Resource 的映射动态执行未审核资源

7.2 接口契约

POST /v1/npc/interactions 只接受服务端身份,不直接暴露给不可信客户端。

json
{
  "request_id": "req_01JGAME9",
  "idempotency_key": "player42:npc17:interaction:9031",
  "player_id": "player_42",
  "npc_id": "npc_17",
  "scene_id": "town_blacksmith",
  "utterance": "你还记得我上次帮忙吗?",
  "world_state_version": 1842,
  "locale": "zh-CN"
}
json
{
  "dialogue": "当然记得,那批铁料能及时送到,多亏了你。",
  "emotion": "grateful",
  "animation_cue": "npc_blacksmith_nod_v2",
  "action_proposals": [],
  "quest_proposal": null,
  "evidence_refs": ["memory:event:8f2a"],
  "safety_result": {"decision": "allow", "policy_version": "npc-policy-7"},
  "versions": {"model": "benchmark-winner", "prompt": "npc-12", "knowledge": "lore-31"},
  "fallback_reason": null
}

服务端拒绝以下结果:状态版本过期、幂等键已提交但内容不一致、知识权限不匹配、任务模板不存在、奖励策略越界、动画资产 ID 不在批准清单。

8. 技术点清单与横向选型

8.1 技术清单

本册登记运行时与 AI 链路技术点;TP-02~TP-04 的美术与资产方案见美术资产与 Godot 引擎实践篇

技术点 ID技术点/环节类型采用方案链路职责版本/证据边界
TP-01游戏引擎与客户端架构引擎/基础设施Godot 4.6、GDScript、Headless Server承载客户端表现、权威状态与 AI 服务接入Godot 4.6 为 2026-07-14 官方支持分支;项目尚无实测
TP-05引擎运行时状态机控制机制自定义 HFSM + AnimationTree隔离行为状态、动画状态和 AI 提案HFSM 为参考实现;需用状态迁移测试验证
TP-06权威状态与网络同步协议/存储Headless Server + 事件账本 + 幂等键保存世界真值、提交副作用、复制批准结果仅设计;吞吐与一致性需压测
TP-07Agent 编排与工具权限服务/框架Python 显式状态机 + 工具白名单管理检索、模型、校验、超时与降级不绑定特定 Agent 框架;需故障注入
TP-08世界知识 RAG检索/存储PostgreSQL + pgvector 混合检索按剧情与玩家权限提供可引用事实适合首版统一治理;规模阈值待基准测试
TP-09NPC 分层记忆存储/数据模型PostgreSQL 事件记忆 + Redis 热状态保存会话、事件、关系和长期摘要记忆是派生上下文,不能覆盖权威状态
TP-10动态任务与剧情约束规则/数据模型QuestTemplate + 参数填充 + 规则验证受控生成支线并保证可达、幂等和奖励合法不适用于核心剧情与自由经济写入
TP-11模型路由与降级模型/服务LLM Gateway + 模板/小模型降级按场景路由质量、延迟和成本具体模型 ID 必须以固定基准集选择
TP-12内容安全与剧透隔离安全/策略硬 ACL + 输入输出策略 + 人工升级防越权知识、注入、违规和高风险发布无单一检测器可保证零风险
TP-13Trace、评测和版本治理可观测/评测OpenTelemetry + EvalCase 回放集绑定请求、状态、知识、模型、规则与资产版本只有设计字段;需运行 Trace 证明完整性

8.2 横向对比

技术点 ID候选方案优点缺点/代价适用场景不适用场景选择结论与依据
TP-01Godot 4.6开源、轻量、可检查底层机制大型商业生态和现成工具较少教学原型、可控定制、中小团队依赖成熟 AAA 专有管线本示例选择,仍需同资产基准验证
TP-01Unity 6 / Unreal 5.8商业生态或高品质 3D 工具更成熟许可、复杂度、构建与团队成本更高成熟跨平台产品或 AAA 项目只需低成本透明原型作为迁移候选,按团队和目标平台决定
TP-05自定义 HFSM + AnimationTree边界显式、易写状态测试复杂决策树需要自行建设工具状态有限且重视可审计海量设计师可视化行为编排本项目先用 HFSM,复杂度上升再引入行为树
TP-05行为树/第三方可视化插件设计师可观察分支和优先级插件维护、状态共享和调试成本大量可组合 NPC 行为简单线性状态或插件不可控通过插件版本、性能和导出测试后再采用
TP-06事件账本 + 快照可回放、可审计、便于幂等对账存储、Schema 演进和运维复杂在线任务、奖励和关系状态纯单机无审计原型权威副作用采用该方案
TP-06当前状态覆盖保存实现简单、读取直接难追溯重复写入和历史原因低风险单机原型在线经济和复杂恢复仅用于非权威客户端偏好
TP-07显式状态机编排超时、权限和失败收敛清晰集成多工具时样板代码增加高风险、短链路、需强控制大量动态工作流快速试验本项目首选,先证明边界再抽象
TP-07Agent 图框架Checkpoint、图编排和生态集成丰富框架升级、抽象泄漏和锁定成本长流程、多工具和人工节点只需少量确定步骤非功能收益超过引入成本时切换
TP-08PostgreSQL + pgvector + 全文检索事务、元数据和向量统一治理极大规模 ANN 与独立扩缩容受限首版、中等规模、强权限过滤超大向量规模和独立检索团队本项目默认,按召回延迟和运维证据切换
TP-08专用向量库 + 全文引擎ANN 扩展、检索能力和独立伸缩更强多系统一致性与运维成本更高大规模、多租户、复杂混合检索小团队和低规模原型当统一库不能满足 SLA 时迁移
TP-09事件记忆 + 结构关系 + 摘要可追溯、冲突可处理、可删除写入判断和重建复杂长期关系与隐私治理一次性 NPC 对话本项目采用,写入必须来自可验证事件
TP-09全部历史直接塞入 Prompt实现快、早期调试直观Token 成本高、噪声与泄露风险大极短会话和本地演示长期在线、多玩家隔离只作基线,不作生产方案
TP-10模板骨架 + AI 填参 + 规则校验可达性、奖励和运营边界可控新颖性受模板集合限制在线支线和可审计运营完全开放沙盒叙事本项目采用,优先保证可执行性
TP-10LLM 自由生成完整任务创意空间大、原型快状态幻觉、经济风险和难回归无副作用的创意草案正式奖励与主线任务只进入策划草稿,不直接发布
TP-11托管模型 Gateway上线快、模型选择多、弹性好成本、区域、数据和供应商依赖需求波动、快速验证强数据驻留或离线场景以固定基准集选主模型并保留降级
TP-11自托管小模型 + 模板数据控制和稳定成本更清晰推理运维、质量和峰值容量压力高稳定流量、隐私和离线要求团队无模型服务能力作为普通对白与断网降级候选
TP-12硬 ACL + 策略层 + 人工升级权限先于生成,风险分层可解释策略维护和人工成本剧情、未成年和商业内容只靠单次模型自审本项目采用纵深防御
TP-12仅用系统 Prompt 约束接入简单、延迟低可被注入绕过,无法替代授权低风险本地原型剧透、隐私和资产动作只能辅助风格,不承担安全边界
TP-13OpenTelemetry + 固定回放集跨服务关联、版本可追溯、可回归埋点设计和存储成本多服务生产链路一次性脚本本项目采用,先定义 Trace Schema
TP-13仅记录应用文本日志成本低、调试起步快难关联候选、上下文、模型和状态版本本地单进程实验线上跨服务排障仅作开发日志,不满足验收

9. 故障演练与排障闭环

9.1 生产问题闭环表

证据边界| 下列均为故障演练,不代表真实线上事故。

问题现象与影响定位证据根因临时止损长期修复回归验证防复发
NPC 剧透未解锁玩家听到密室信息,破坏体验player_id、剧情阶段、候选过滤和 evidence_refsACL 在向量召回后才补做或元数据错误关闭生成,回退章节固定对白身份可信化、召回前硬过滤、撤权主动失效未解锁/已解锁成对权限集回放剧透率告警与版本发布门禁
跨玩家记忆串线NPC 把 A 的经历告诉 B,造成隐私和剧情污染memory_key、tenant、player、npc、写入事件缓存键缺 player_id 或摘要任务上下文复用停止长期记忆读取并删除污染缓存强复合键、行级权限、异步任务隔离并发双玩家和随机污染测试跨玩家命中率必须为零的护栏
任务不可完成目标 NPC 已死亡仍发出护送任务状态版本、模板条件、拒绝原因和事件顺序模型依据旧快照,服务端未二次验证拒绝提案并返回普通对白提交前检查版本、目标存活与可达性状态在模型调用期间变化的竞争测试stale proposal 指标与任务规则测试
重复奖励断线重试后奖励出现两次,破坏经济idempotency_key、event_id、账本唯一约束结果未知时盲目重试或键不稳定冻结相关模板并对账稳定业务幂等键、唯一约束、查询后重试成功但响应丢失和服务重启注入重复副作用告警与账本审计
迟到动画玩家已离场,NPC 突然播放旧动作request 状态、scene_id、响应时间、客户端日志未传播取消或未检查场景世代丢弃动作并清理等待态cancel token、scene generation、旧响应检查离场、切图、断线三类测试orphan response 指标
角色漂移模型升级后语气和禁区失效model、prompt、persona、评测集版本无回归门禁直接切换模型回滚旧路由和角色版本固定基准集、影子流量、分层灰度同问题多版本盲评角色一致率和禁区违规门禁

9.2 排障顺序

  1. request_id 确认原始输入、玩家身份、NPC、场景和 deadline;
  2. 核对 world_state_version、权限过滤、候选知识和记忆来源;
  3. 检查 final_context、Prompt、模型、Schema 与安全策略版本;
  4. 检查服务端规则拒绝原因、资产 ID、幂等键与事件账本;
  5. 最后检查客户端是否消费了已取消或旧场景响应;
  6. 用固定样本回放,不以“重新问一次没复现”作为修复证据。

10. 评测、业务实验与验收

10.1 离线评测集

至少包含:固定人设题、秘密与剧透题、跨玩家记忆题、状态竞争题、非法奖励题、资产不存在题、Prompt 注入题、模型超时题和多语言题。每个样本保存预期规则、允许证据、禁止事实、状态版本和评分 Rubric。

10.2 系统与成本验证

  • 分别记录上下文装配、检索、模型首 Token、完整生成、规则校验和复制耗时;
  • 统计缓存命中、模型路由、降级、无效 Schema、过期提案和单次成本;
  • 用并发玩家、热点 NPC 和模型限流压测,不只测平均延迟;
  • 注入依赖超时、Redis 不可用、数据库只读、服务重启和响应丢失;
  • 检查 Trace 是否能重建一次决策,而不是只显示 HTTP 200。

10.3 在线实验

以玩家为随机单元,固定版本、区域和活动,比较固定对白基线与受控 AI 支线。过程指标观察有效对话和任务完成,结果指标观察分层留存或内容消耗,护栏观察举报、剧透、延迟和成本。若只增加对话时长而任务完成、满意度或留存没有改善,不能宣称体验提升。

11. 面试表达与演进

11.1 2~3 分钟项目回答

这个示例项目服务在线 RPG 玩家和剧情团队,原流程要么固定重复,要么让生成模型承担了不该承担的状态决策。最难的不是生成一句自然对白,而是在多人、低延迟和世界状态持续变化的约束下,同时保证角色一致、任务合法和副作用幂等。我选择 Godot Headless Server 保存权威状态,AI 服务只通过 RAG、分层记忆和受控 Agent 生成结构化提案,任务采用模板骨架加规则校验;模型超时、状态过期或资产不存在时都降级为无副作用对白。故障演练重点覆盖剧透、跨玩家记忆、重复奖励和迟到响应,并用 request_id、状态版本、evidence_refs 和事件账本回放验证。当前证据只有设计与验证路径,不能声称已经提升留存;下一步是完成最小可运行切片并建立固定回放基线。

11.2 可复用经验

  • 生成模型负责提出候选,确定性系统负责授权和提交副作用;
  • 记忆必须可追溯、可删除、可冲突处理,不能升级成新的权威事实源;
  • 游戏状态、Agent 状态和客户端表现状态必须分层,否则迟到响应会污染世界;
  • 模型质量成功与接口成功分开观测;
  • 角色和任务评测样本应与版本一起发布,而不是模型变更后再临时抽查。

12. 证据与参考资料

12.1 已有证据和待补证据

  • 已有: 本文的架构、接口 Schema、状态机、技术横评、故障演练和测试设计;
  • 待补: Godot 可运行 Demo、真实 GLB 资产、服务端事件账本、模型基准、Trace、压测与玩家实验;
  • 升级为真实项目经历所需: Commit、构建版本、接口响应、回放集、指标看板、实验记录和个人贡献边界。

12.2 官方资料

13. 简明总结

一句话记忆: 在线 RPG 的智能 NPC 应当“可以受控即兴,但不能越过权威服务器替游戏做决定”。

  • Godot Headless Server 保存世界真值,AI 只提交结构化提案;
  • 五层状态分离解决迟到响应、断线恢复、记忆污染和副作用幂等;
  • RAG、记忆和动态任务都必须带权限、来源、版本与确定性校验;
  • 质量、延迟、成本、安全和业务结果要分层评测;
  • 当前是示例设计,完成 Demo、Trace、压测和玩家实验后才能升级为真实项目证据。