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 选择状态。