游戏架构:从“状态机 (FSM)”到“GOAP”再到“LLM Agent”——游戏 AI 行为逻辑的底层重构
前言:别让你的 NPC 只是一个“触发器”
回想一下,在 2020 年以前的游戏里,如果你在一名 NPC 面前跳一支舞,他通常只有两种反应:要么视而不见继续走他的路,要么触发一段写死的代码:“嘿,别挡道!”。这种“人工智障”的根源,在于其底层的有限状态机 (FSM)。它们没有大脑,只有程序员预设的几条 if-else。现在情况发生了质变。在《GTA VI》或者最新的开放世界 RPG 中,你可能会发现:当你偷了 NPC 的鸡,他不仅会追杀你,还会记住你的长相,三天后在酒馆里向其他 NPC 描述你的特征,甚至集结一帮人来围堵你。这种“涌现式行为”,不是靠堆砌脚本实现的,而是架构的革命。从早期的 FSM 面条代码,到《F.E.A.R.》带来的 GOAP 策略,再到如今由 DeepSeek、Llama 等大模型驱动的 LLM Agent,游戏 AI 的心脏已经完成了一次移植。今天,我们将拆解这三次技术跃迁,并手把手教你如何在 开发环境中,搭建一套“LLM 大脑 + GOAP 肢体”**的混合架构。
第一阶段:旧时代——有限状态机与行为树
在很长一段时间里,FSM 是游戏 AI 的圣经。
1. FSM 的逻辑陷阱
FSM 的核心是“状态 ”与“转换 ”。
- 逻辑:如果(看见玩家)-> 切换到(追逐状态);如果(距离 < 1米)-> 切换到(攻击状态)。
- 痛点:状态爆炸 。
当你想要给 NPC 增加一个“受伤后寻找掩体吃药,但如果没有药就逃跑,如果逃跑路线被堵就殊死一搏”的逻辑时,你需要两两连接所有状态。对于一个复杂的 3A 角色,状态连线会变成一团无法维护的“意大利面条”。
2. 行为树的改良
后来,虚幻引擎 (UE) 大力推广行为树。它将状态变成了树状结构,从上到下评估。
- 优势:模块化,可读性强。
- 劣势:依然是“反应式” 的。NPC 不知道“为什么”要做这件事,它只是在执行指令。它没有“计划”的能力。

- 画面内容:一张对比图。左边是复杂的网状 FSM 连线图,线条错综复杂;右边是清晰的 Behavior Tree 树状结构图。
- 图注:传统架构之痛:从 FSM 的“状态纠缠”到行为树的“逻辑分层”,虽然解决了维护性,但并未解决智能上限。
第二阶段:目标导向行动计划 (GOAP)
这是游戏 AI 变聪明的转折点。最著名的案例是 2005 年的射击游戏《F.E.A.R.》。
1. GOAP 的核心逻辑:倒推法
GOAP 不再规定“怎么做”,而是规定“想要什么”。
- Goal (目标):杀死玩家 (IsDead = True)。
- Action (动作库):开枪、装弹、寻找掩体、移动。
- Planner (规划器):
- 想杀玩家 -> 需要开枪。
- 想开枪 -> 需要有子弹 (HasAmmo = True)。
- 没子弹 -> 需要装弹。
- 结果:NPC 自动生成了一个行动链条:装弹 -> 寻找射击角度 -> 开枪。
2. 为什么 GOAP 是完美的“中间件”?
即便在现在,GOAP 依然没有过时。因为它连接“意图”和“动画”*。
LLM(大模型)负责产生意图,GOAP 负责将意图拆解为原子级的动作序列。
第三阶段:LLM Agent (大模型智能体)
我们不再编写规则,我们编写认知。
1. 什么是 LLM Agent 架构?
不同于直接把 GPT 接到 NPC 嘴上(那只是聊天机器人),Agent 架构包含四个核心组件:
- Perception (感知):将游戏世界的视觉、数值转化为文本或 Embedding(向量)。
- Memory (记忆):
- 短期记忆:当前的对话上下文。
- 长期记忆:使用 Vector Database (向量数据库) 存储的历史交互。
- Reasoning (推理/规划):LLM 根据感知和记忆,决定当前的 Goal(目标)。
- Tool Use (工具调用):这是关键! LLM 输出的不是废话,而是 JSON 格式的函数调用,比如
MoveTo(x,y)或Attack(TargetID)。


- 画面内容:一张技术架构拓扑图。中心是 “LLM Core”,四周连接着 “Sensory Inputs (感知)”、“Vector Memory (RAG 记忆)”、“Action Space (API 接口)”。箭头表示数据流向。
- 图注:标准 Agent 架构:斯坦福“Generative Agents”论文的工程化落地版。
第四阶段: 在 Unity/UE5 中搭建混合架构
光说不练假把式。下面我们演示如何在 Unity 中,利用 Local LLM (本地大模型) + GOAP 实现一个高智能 NPC。
环境准备
- 引擎:Unity 6 (2025 LTS) 或 Unreal Engine 5.5
- 本地推理引擎:Ollama (用于运行 Llama-4-8B 或 DeepSeek-Coder-V2)
- 中间件:LangChain (C# port) 或 Unity Sentis (端侧推理)
步骤 1:部署“大脑” (The Brain)
不要直接调 OpenAI 的 API,延迟太高且费钱。标准是端侧推理。
- 安装 Ollama,拉取一个量化版的模型(如
deepseek-r1:7b-q4)。 - 在 Unity 中编写一个
LLMManager脚本,通过 HTTP Request 与本地的 Ollama 服务通信(端口通常是 11434)。 - System Prompt (系统提示词) 极其重要:
"你是一个中世纪守卫。你的输出必须是严格的 JSON 格式。 你可以使用的 Function 列表: - Patrol(Location) - Inspect(Object) - Attack(Target) 不要输出任何对话,只输出动作指令。"
步骤 2:构建“感知层” (Perception Layer)
NPC 需要知道周围发生了什么。
- 创建一个
Sensor脚本,获取周围半径 10 米内的物体。 - 将物体状态转化为自然语言描述。
- 转化前:
Obj_ID: 101, State: Open - 转化后:
"There is an opened chest near the door."
- 转化前:
- 将这句话投喂给 LLM。
步骤 3:桥接 GOAP (The Bridge)
这是最容易出错的地方。LLM 可能会产生幻觉,输出 FlyToSky() 这种不存在的函数。
- 约束输出:使用 Grammar Sampling (语法采样) 强制 LLM 只能输出预定义的 JSON 结构。
- 指令解析:
- LLM 输出:
{"action": "Inspect", "target": "Chest"} - C# 解析器:读取 JSON,设定 GOAP 的 Goal 为
Goal_InspectChest。
- LLM 输出:
- GOAP 执行:GOAP 规划器自动计算路径、播放走路动画、播放弯腰动画。
架构图解:
环境感知 -> LLM (决策层) -> JSON 指令 -> GOAP (执行层) -> 动画系统

- 画面内容:左边是 Inspector 面板显示 LLM 返回的 JSON 数据
{"Action": "DrawSword", "Reason": "Threat detected"};右边是 Scene 窗口,NPC 正在执行拔剑的动作,带有 GOAP 的路径线。- 图注:混合架构实战:LLM 负责“决定拔剑”,GOAP 负责“如何拔剑”。
第五阶段:让 AI 不卡顿
LLM 推理是昂贵的(即便在本地)。如果每帧都跑,游戏必卡成 PPT。
-
异步思考:
- 不要在
Update()里调用 LLM。 - 建立一个 “Thinking Tick”。比如每 2 秒,或者当环境发生重大变化(听到枪声)时,才触发一次 LLM 推理。
- 在 LLM 思考的几百毫秒“发呆期”内,播放一个“疑惑”或“观察”的 Idle 动画过渡。
- 不要在
-
记忆剪枝 (Context Pruning):
- 不要把所有历史对话都塞进去。
- 使用 RAG (检索增强生成):只检索与当前场景相关的 5 条记忆。比如玩家掏出苹果时,只检索关于“食物”的记忆,不要检索“杀人”的记忆。
六、 总结
游戏架构变革,本质上是“控制权”的让渡。
- FSM 时代:程序员控制一切。
- GOAP 时代:程序员制定规则,AI 决定路径。
- Agent 时代:程序员提供人设和世界观,AI 涌现出行为。
对于开发者来说,这并不意味着失业,而是工作重心的转移。你需要从一名“逻辑编写者”变成一名“AI 心理医生”——去调整 Prompt,去优化记忆库,去防止 AI 发疯。这种架构做出来的游戏,不再是设计师写好的剧本,而是一个真正鲜活的、不可预测的数字社会。这,才是次世代游戏该有的样子。
参考资料与工具
- Ollama (本地大模型运行框架): https://ollama.com/
- Unity Sentis (端侧推理引擎): https://unity.com/products/sentis
- LangChain (AI 应用开发框架): https://www.langchain.com/
- Generative Agents (斯坦福小镇论文): https://arxiv.org/abs/2304.03442
- GOAP in Unity (Github 开源库): https://github.com/sploreg/goap
Tags: #游戏开发 #游戏架构 #GOAP #LLM #AI_Agent #Unity教程 #DeepSeek #人工智能#



