总览
UE5.8 里新增的 AI 辅助能力,不是一只孤零零的聊天框,而是一套正在成形的编辑器 Agent 基础设施。它把 Unreal Editor 里的许多能力拆成结构化工具,再交给 AI Assistant、MCP 客户端或外部 AI 工具调用。换句话说,Epic 正在把“问文档”升级成“理解当前编辑器状态,并能在受控范围内做事”。
本文基于本地 UE5.8 源码观察整理,重点看 Engine/Plugins/Experimental 下的 AIAssistant、ToolsetRegistry、ModelContextProtocol 和 Toolsets 插件。它们目前仍是 Experimental,默认不开启,接口和行为后续还可能变化。
总体结构
UE5.8 的 AI 辅助插件大致分成四层:
| 层级 | 插件 | 作用 |
|---|---|---|
| 入口层 | AIAssistant |
编辑器内 AI 面板、对话、隐藏上下文、工具调用回写。 |
| 工具注册层 | ToolsetRegistry |
统一注册 AICallable 工具、生成 JSON Schema、执行工具调用。 |
| 外部协议层 | ModelContextProtocol、MCPClientToolset |
让外部 AI 调 UE,或让 UE 内 AI 调外部 MCP 服务。 |
| 领域工具层 | NiagaraToolsets、UMGToolSet、GASToolsets 等 |
把具体编辑器系统暴露成 AI 可调用工具。 |
这套设计的核心不是“AI 替你写一段代码”,而是给 AI 一个受约束的工具面板。AI 可以知道有哪些工具、每个工具需要什么参数、执行结果是什么;编辑器端则保留注册、执行、日志、事务和权限边界。
AIAssistant:编辑器里的 AI 前台
AIAssistant 位于:
Engine/Plugins/Experimental/AIAssistant
它依赖 PythonScriptPlugin、EditorScriptingUtilities 和 ToolsetRegistry。从模块关系看,它不是简单嵌入网页,而是准备接入编辑器脚本和工具调用体系。
源码里能看到几个关键能力:
- 创建和维护 AI 对话。
- 发送用户可见问题,并附带隐藏上下文。
- 读取项目上下文、用户上下文和当前编辑器上下文。
- 在 Blueprint Editor、Material Editor 等资产编辑器中捕获选中的图节点。
- 接收 AI 返回的 tool call,通过
ToolsetRegistry执行,再把结果写回对话。 - 使用独立 transaction buffer 管理 AI 操作,为撤销、回滚或隔离编辑器改动留接口。
这意味着 AI Assistant 的定位更像“编辑器协作者”。用户看到的是对话窗口,但背后可以携带当前项目、当前面板、选中节点、打开资产等上下文。真正让它能行动的,是后面的 Toolset。
ToolsetRegistry:AI 工具调用的中枢
ToolsetRegistry 位于:
Engine/Plugins/Experimental/ToolsetRegistry
它提供 UToolsetDefinition 基类。只要工具函数标记为:
UFUNCTION(meta = (AICallable))
就能被注册成 AI 可调用工具。注册后,系统会基于 UFunction 反射生成 JSON Schema,让 AI 知道工具名、参数类型、默认值和返回结构,并通过 ExecuteTool 执行。
ToolsetRegistry 自带三类基础工具:
EditorAppToolset:选中 Actor、选中 Asset、视口相机、Content Browser 路径、打开资产、编辑器截图等。LogsToolset:读取日志、列出日志分类、获取和设置日志 verbosity。AgentSkillToolset:列出、读取、创建和更新 Agent Skill。
这些基础工具很重要。没有它们,AI 只能操作具体系统;有了它们,AI 还能理解“当前编辑器正在看什么、选中了什么、日志里发生了什么”。
ModelContextProtocol:把 Unreal Editor 暴露成 MCP Server
ModelContextProtocol 的 FriendlyName 是 Unreal MCP,位于:
Engine/Plugins/Experimental/ModelContextProtocol
它把 Unreal Editor 变成一个 MCP Server。默认配置为:
Server: unreal-mcp
URL: http://localhost:8000/mcp
Protocol: 2025-11-25
源码中支持的协议版本包括 2025-11-25、2025-06-18 和 2024-11-05。它实现了 initialize、ping、tools/list、tools/call、resources/list、resources/read 和 notifications/cancelled 等常见 MCP 方法。
也提供控制台命令:
ModelContextProtocol.StartServer
ModelContextProtocol.StartServer <port>
ModelContextProtocol.StopServer
值得注意的是,源码里做了 Origin 校验:无 Origin 的非浏览器客户端可以访问,localhost 和 127.0.0.1 这类本地来源可以访问,其他来源会被拒绝。这是为了降低本地 MCP 服务被网页跨站探测或 DNS rebinding 利用的风险。
MCPClientToolset:让 UE 内的 AI 连接外部工具
MCPClientToolset 位于:
Engine/Plugins/Experimental/Toolsets/MCPClientToolset
它和 ModelContextProtocol 正好相反:ModelContextProtocol 是外部 AI 客户端调用 Unreal Editor;MCPClientToolset 是 Unreal Editor 里的 AI 调用外部 MCP Server。
它的设置入口是:
Editor Preferences > Plugins > MCP Toolset Servers
每个 MCP Server 可以配置名称、描述、Server URL、是否启用、Transport、认证方式、OAuth Client ID 和 Scope。这让 UE 内的 AI Assistant 可以连接团队内部工具链,例如文档库、资产库、任务系统、构建系统或其他本地服务。
已经比较完整的 Toolset
GameplayTagsToolset
GameplayTagsToolset 可以列出 Tag、获取 Tag 信息、添加、删除、重命名 Tag,并查找某个 Tag 的引用资产。它很适合做 Tag 清理、命名规范检查、引用追踪和批量创建。
GameFeaturesToolset
GameFeaturesToolset 可以列出 Game Feature、查找 UGameFeatureData、获取插件名、获取 GameFeatureAction,也可以创建新的 Game Feature Plugin。
AutomationTestToolset
AutomationTestToolset 支持 DiscoverTests、ListTests、RunTests、GetTestResults、GetTestStatus 和 StopTests。这让 AI 可以发现测试、运行测试、读取失败结果,再把失败原因转成更易读的解释。
LiveCodingToolset
LiveCodingToolset 的核心工具是 CompileLiveCoding,用于触发 Live Coding 编译,并把编译状态和日志返回给调用方。源码里还提供 LiveCodingToolset.Enable CVar,用于控制这个工具集是否注册到 MCP 工具列表。
SlateInspectorToolset
SlateInspectorToolset 把编辑器 UI 变成可检查、可操作的结构。它提供 Snapshot、Observe、Screenshot、Click、Hover、Type、PressKey、SelectOption、Drag、Windows、WaitFor 和 FillForm 等工具,像是给 Slate Editor UI 做了一层 Playwright 风格的自动化能力。
UMGToolSet
UMGToolSet 面向 Widget Blueprint,可创建 Widget Blueprint、添加 Widget、设置 Named Slot、查询 Widget Tree、移动或删除 Widget、重命名 Widget、设置变量、修改父类并编译 Widget Blueprint。
NiagaraToolsets
NiagaraToolsets 是当前最完整的领域工具之一,覆盖 Niagara System 创建、Schema 查询、拓扑查询、System/Emitter/Renderer/Stack Input 数据读写、User Variables 管理、Emitter/Renderer/Module 增删、Module 启停、编译状态和 Stack Issues 查询,以及从 Niagara System 或 Component 构造 Blueprint Wrapper。
PhysicsToolsets
PhysicsToolsets 主要操作 Physics Asset,包括从 Skeletal Mesh 创建 Physics Asset、获取 Body 和 Shape 信息、设置 Sphere/Capsule/Box、添加或删除 Shape/Body、设置 Body physics mode、mass scale,以及添加、修改、删除 Constraint。
GASToolsets
GASToolsets 分成 AttributeSet、AbilitySystemInspector 和 GameplayCue 三块。它可以查找 AttributeSet 类、列出属性,读取 Actor 上的 Attribute 值、Active Effects、Granted Abilities、Active Tags,也能列出、创建和检查 Gameplay Cue。
DataflowAgent
DataflowAgent 面向 Dataflow 图编辑,支持创建 Graph、读取图结构、列出节点类型、获取节点 Schema、添加/更新/移动/删除节点、连接或断开 Pin、管理变量,以及添加或删除 Comment Box。
SequencerAnimMixerToolset
SequencerAnimMixerToolset 通过 Python 注册 Toolset,面向 Sequencer Animation Mixer。它可以获取、添加、插入 Mixer Layer,给 Layer 添加动画或子 Track,查询和切换 Transition 类型,并管理 Decoration。
仍偏占位的插件
这份源码里也能看到一些已经存在但还没铺开实际工具函数的插件:
AIModuleToolsetStateTreeToolsetConversationToolsetAnimationAssistantToolset
它们的 .uplugin 描述分别指向 AIModule、StateTree、Conversation 和 Animation Systems,但当前模块基本还是空壳,没有看到实际 AICallable 工具。写项目文档或做分享时,建议把它们称为“预留方向”,不要写成已经可用的完整功能。
怎么启用和使用
在编辑器里启用插件
打开:
Edit > Plugins
搜索并启用 AI Assistant、Toolset Registry、Unreal MCP,以及需要的具体 Toolset,例如 Niagara Toolsets、UMG ToolSet、Gameplay Tags Toolset。启用后重启编辑器。因为这些插件都是 Experimental,建议先在测试项目里验证,不要直接上生产项目主分支。
使用 AI Assistant
打开 AI Assistant 面板后,可以问:“解释当前选中的 Blueprint 节点”“列出项目里的 Gameplay Tags,并找出某个 Tag 的引用”“运行自动化测试,帮我总结失败原因”“检查当前 Actor 上的 Active Gameplay Effects”。是否真的能完整执行,取决于对应 Toolset 是否启用、当前项目是否加载了相关模块,以及 AI 服务端是否允许调用这些工具。
让外部 AI 客户端连接 Unreal
启用 Unreal MCP 后,可以用控制台启动服务:
ModelContextProtocol.StartServer
默认地址是:
http://localhost:8000/mcp
然后在支持 MCP 的客户端里添加这个地址。连接后,外部 AI 客户端可以通过 tools/list 看到 UE 暴露的工具,通过 tools/call 调用它们。
让 UE 内的 AI 连接外部 MCP Server
进入:
Editor Preferences > Plugins > MCP Toolset Servers
新增外部 MCP 服务,填写 URL、Transport 和认证方式。这样 UE 内的 AI Assistant 就可以调用外部工具,例如项目知识库、内部资产服务或构建服务。
安全和工程建议
这些能力很强,也意味着风险更高。建议遵守几条底线:
- 只在本机或可信网络暴露 MCP 服务。
- 不要把 Unreal MCP 直接暴露到公网。
- 先在测试项目里启用 Toolset。
- 对 AI 执行的资产修改保留版本控制。
- 执行 UI 操作、创建资产、运行脚本前最好有人工确认。
- 把自动化测试接入流程,让 AI 改完后能跑测试和回报结果。
尤其是 SlateInspectorToolset、UMGToolSet、DataflowAgent、NiagaraToolsets 这类能修改编辑器状态的工具,最好配合事务、日志和源码管理一起使用。
结论
UE5.8 的 AI 辅助插件真正值得关注的地方,不是“编辑器里终于有了 AI 聊天”。更重要的是,Epic 正在搭一套 AI 原生的编辑器工具协议:编辑器能力被拆成 Toolset,Toolset 被注册成 Schema,AI 通过 Tool Call 操作它们,外部客户端再通过 MCP 接入。
当前这套系统仍然很实验,有些 Toolset 已经相当完整,有些还只是占位。但方向已经很清楚:Unreal Editor 正在从“人操作 UI,AI 给建议”走向“人给目标,AI 在可控工具边界内协助执行”。对于技术美术、工具程序、Gameplay 程序和自动化流程开发者来说,UE5.8 这批插件值得提前研究。