# UAgentSkill 分析 ## 1. 它是什么 UAgentSkill 是 UE5.8 MCP 的 AI prompt 增强机制,功能等价于 Claude Code 的 Skill: | | UE5.8 UAgentSkill | Claude Code Skill | |---|---|---| | 载体 | Blueprint 资产(UAgentSkill 子类) | Markdown 文件 | | 作用 | 注入领域知识 + 指令到 AI 上下文 | 注入工作流指引到对话 | | 依赖 | Toolsets 字段声明需加载哪些 toolset | 无 | | 动态生成 | GeneratePrompt() 虚函数可编程 | 静态内容 | | 创建 | AI 通过 MCP CreateSkill 创建 | 文件写入 | 它不是功能性工具,不执行编辑器操作——只提供上下文:"这个领域怎么用、工具有哪些、最佳实践是什么"。 ## 2. 相关类 - **UAgentSkill**:基类,核心属性 Description + Instructions + Toolsets,虚函数 GeneratePrompt() - **UAgentSkillBestPractices**:改写 GeneratePrompt,追加技能编写规范 - **UAgentSkill_NiagaraBase**:改写 GeneratePrompt,前置 Niagara 概述 + 资产发现路径 - **UAgentSkillToolset**:继承 UToolsetDefinition,暴露 MCP CRUD(ListSkills / GetSkills / CreateSkill / UpdateSkill) - **FAgentSkillDetails**:DTO,最终生成的 Instructions + 依赖 toolset 名列表 核心流程:GetDetails() → GeneratePrompt(Instructions) → FAgentSkillDetails → AI 拿到最终 prompt。 ## 3. 编写一个基础 UAgentSkill **C++ 子类方式:** 1. 继承 UAgentSkill 2. 设置 Description(简短摘要,ListSkills 返回它) 3. 设置 Instructions(详细指令,会被 GeneratePrompt 处理) 4. 在 Toolsets 中声明依赖的功能性 toolset(软引用,系统据此自动加载) 5. 重写 GeneratePrompt_Implementation() 在指令前后注入额外上下文 Niagara 实现模式:前置概念概述 → 遍历 toolset 获取专属 prompt → 插入原始 Instructions → 追加资产发现路径。 **MCP 运行时创建(AI 调用,需用户许可):** CreateSkill(/Game/Skills/, MySkill, "描述", {Instructions:"...", Toolsets:["/Script/..."]}),本质是创建以 UAgentSkill 为父类的 Blueprint 资产,写入 CDO 属性。