# UMG MCP

Winyunq 终极智造

语言 / Language English

© 2026 Winyunq. 保留所有权利。

双回路极速直连安全保护

Official Docs / AI 对话交互

当前 Agent 模式活跃

C++ Subsystem 直连

## 第二章：怎么对话（4 种内置 Agent 模式）

在虚幻编辑器右侧内置的 UMG MCP 对话面板中，AI 的对话并不是单一死板的。基于不同的场景与开发阶段，本插件在 C++ 底层划分了 chat, develop, learning, task 四种精密的 Agent 对话状态。

### 1. 四大 Agent 运作机理与 C++ 机制

#### Chat 模式 (默认会话 Agent - `FUmgMcpDefaultChatAgent`)

Chat

定位： 通用的上下文感知对话，适合基础的技术交流、方案推演与概念澄清。

C++ 运转机理： 每次开始提问互动时，调用 `RestoreConversationContext()`，从当前的本地会话持久化存储中，完整拉取上一轮互动的 Substance（历史 JSON 消息快照），作为本轮提问的历史前缀提交至 LLM 供应商，保证上下文不丢失。

#### Develop 模式 (动态开发 Agent - `FUmgMcpDevelopAgent`)

Develop

定位： 高情境感知的 UI 编写与修改模式，专注于高精度的 UI 操纵与控件生成。

C++ 运转机理： 在触发互动时，会调用独有的 `DynamicallyUpdatePromptAndTools()`。它检测虚幻编辑器当前正在编辑的活跃 UI 资产，动态重构当前会话的 System Instruction（系统提示词），并根据当前被激活选中的控件类型，动态过滤允许调用的 MCP 工具列表。例如，只选中 CanvasPanel 时才暴露出 Canvas Slot 相关的偏置调整工具，极大收窄了 AI 的生成边界，提高了工具调用的成功率。

#### Learning 模式 (只读感知 Agent - `FUmgMcpLearningAgent`)

Learning

定位： 对复杂的已有 UMG 控件树进行只读式深度剖析、结构感知与教学引导。

C++ 运转机理： 插件会自动在后台加载内置的 `learning.json` 工具配置。在每次接收提问时，它调用 `ResolveTargetAndTreeContext()` 进行无冗余优化设计：实时计算并对比当前编辑器视口中控件树的 Hash 值。**只有**当您手动修改了 UI 导致 Hash 发生物理改变时，它才会将最新的树结构重新打包成上下文发送；若无修改，则继续复用之前的只读缓存，从物理上杜绝了对同一个 UMG 树进行重复网络查询带来的巨大 Token 开销与响应卡顿。

#### Task 模式 (任务接管 Agent - `FUmgMcpTaskAgent`)

Task

定位： 执行有始有终的、具备强一致性与完整保护的安全独立开发任务包。

C++ 运转机理： 任务接管流的逻辑具备极高的工程严密性。当 AI 从会话中接收到特殊的 `task_begin` 工具调用时，触发 `AcceptTask()`，它会将您编辑器当前的活跃编辑资产路径（如 `PreviousWidget`）强制暂存至私有变量 `CapturedPreviousTarget` 中，并把当前任务专属的 UMG 资产强行推上舞台供 AI 独立编辑，在此期间物理屏蔽任何其他杂乱输入。直到接收到对应的终止命令 `task_end` 工具调用时，触发 `TaskEnd()`，释放资产锁定并完美的把您编辑器的编辑目标物归原主，物还原貌。

### 🎨 内置 Chat UI 审批工作流 (Sslate/Slate 交互)

当内置 Agent 在对话中试图发起任何可能会修改您 UMG 资产的动作时（例如“创建一个按钮”或“删除一个布局”），插件底层的 `SUmgMcpMcpApprovalQueue` (审批队列) 控件就会立即在消息气泡中以高亮卡片的形式挂载。

##### 💡 对话交互体验流程：

1. 发出提问：您在底栏输入：`“在 Canvas 下帮我新建一个名为 WinyunqButton 的按钮”`。
2. AI 析出动作：内置 Agent 回复，并将工具执行动作（如 `create_widget`）以卡片形式静默投递到您的聊天时间轴中。
3. 呈现 Accept / Reject 按钮：气泡卡片底部呈现蓝色的 `Accept (接受)` 和灰色的 `Reject (拒绝)` 按钮。
4. 内存直连执行：当您点击 `Accept` 后，动作会绕过任何网络接口直接被投向 `FFabServerHttpClient::ExecuteTool` 并以极速内存直连的方式在虚幻主线程瞬间生成完毕，并在右侧视口立即刷新，给您极致丝滑的“手势化智造”开发体验！

#### 📸 物理截图占位

[IMAGE_PLACEHOLDER: Unreal UMG MCP Built-in Chat Panel Window Layout]

请截图虚幻编辑器右侧停靠的 UMG MCP 对话面板窗口（包含底栏 Selector），以展示 chat/develop/learning/task 选择状态。