40 lines
2.1 KiB
Markdown
40 lines
2.1 KiB
Markdown
# 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 属性。 |