前言¶
在 Unreal Engine 项目里用智能体改关卡、查 Actor、或扩展 Editor 可调用的工具集,通常要单独接 MCP、写技能说明,还要让会话知道当前工作目录是不是 UE 工程。Epic 为 Claude Code 提供了 Unreal Engine Skills 这一套能力;若你已经在用 DeepSeek Harness(DSH)做智能体开发,社区插件 dsh-unreal-engine-skills 把同类能力移植到 DSH 的插件与 MCP 体系里。下面介绍它做什么、如何安装,以及编辑器侧需要满足的前置条件。
这是什么¶
dsh-unreal-engine-skills 由 liuli-zsl 维护,是 Epic「Unreal Engine Skills for Claude Code」的非官方 DSH 移植(上游 MIT,README 标明 upstream 3.1.1)。当前插件版本为 1.0.9(见仓库 package.json 与 README)。一个 bundle 同时为智能体提供三块能力:注册在 skills/ 下的三个运行时技能、通过 @deepseek-ai/dsh-mcp-client 连到编辑器里的 Model Context Protocol 服务、以及在工作目录位于 Unreal 项目内时向系统提示注入简短的 UE 上下文(通过向上查找 .uproject 或 GenerateProjectFiles.* 判断)。
核心功能¶
三个运行时技能¶
从 skills/ 注册,名称与职责如下(与 README 一致):
- unreal-mcp:发现并调用 Editor 中的 toolsets。
- create-toolset:编写可供 AI 调用的 C++/Python toolsets。
- unreal-skill:在编辑器内编写 UE Agent Skills。
Unreal MCP 连接¶
插件通过 bundle patch 增加两行 loader:unreal-engine-skills(本包)与 unreal-mcp(@deepseek-ai/dsh-mcp-client)。默认连到编辑器 MCP 服务地址 http://127.0.0.1:8000/mcp。端口与 URL 路径可在 Harness Plugins 页面编辑,保存后生效,一般无需重启进程(README 对 volatile 配置同步有详细说明;环境变量 UNREAL_MCP_URL 在进程启动前设置时优先级更高,且需重启 Harness)。
Unreal 项目上下文¶
当会话工作目录落在某个 Unreal 项目树内时,会向 system prompt 追加一段 UE 相关说明,便于智能体按工程结构作答,而无需每次手动粘贴项目说明。
环境要求¶
- DeepSeek Harness:
>=0.2.0-rc.2且<0.3.0(在package.json的engines.dsh中声明)。 - 编辑器:工程使用的引擎构建须已包含
ModelContextProtocol与AllToolsets插件;本包不安装它们,README 亦未将某一 UE5 版本或 Win/Linux 行为记为已全面验证。
安装与启用¶
从 GitHub 安装¶
dsh plugin --profile <your-profile> add github:liuli-zsl/dsh-unreal-engine-skills
使用 dsh web 时 profile 一般为 web。官方 Desktop 应用更推荐在应用内 Plugins 页面填写 GitHub 源;若用命令行管理 desktop profile,需使用 Desktop 安装的 CLI、已初始化的 profile,并完全退出应用后再操作(npm 版 CLI 无法管理该 profile)。详见 官方 CLI 说明。
插件市场目录¶
该插件已列入社区目录 awesome-dsh-plugin(dshmarket 使用);合并记录为 market PR #8355(2026-10-20 UTC)。README 说明:因目录生成器对 npm 包与版本的要求,Harness 0.2.1+ 的 Plugins → Discover 窄索引中可能看不到本插件;包在 catalog 中为 GitHub-only(private: true),这不影响通过 GitHub 源安装。
本地开发安装¶
可将 Harness 插件管理器的 install_bundle 指向本仓库目录,或用 dsh plugin add 添加目录。以 checkout 链接方式安装时,须先在仓库根目录执行 pnpm install --frozen-lockfile,否则宿主侧依赖 @deepseek-ai/schemastery 缺失会导致插件行静默不激活,技能、上下文注入与端口表单均不可用。
编辑器侧配置(每个项目一次)¶
- 在项目的
.uproject中启用ModelContextProtocol与AllToolsets。没有AllToolsets时服务能起但不会暴露工具。 - 编辑器运行时启动 MCP 服务:在
<Project>/Saved/Config/<Platform>Editor/EditorPerProjectUserSettings.ini的[/Script/ModelContextProtocolEngine.ModelContextProtocolSettings]下设置bAutoStartServer=True,或在编辑器控制台执行ModelContextProtocol.StartServer [port]。 - 默认端口为 8000;若与 DSH 侧不一致,用 Plugins 页面表单或
UNREAL_MCP_URL对齐。
端口与路径的校验规则、与 unreal-mcp 行 URL 同步、以及对 transport: stdio 自定义代理的保护行为,见仓库 README 的 Port configuration 一节;手写 profile patch 时需注意同 id 条目会替换整行配置而非合并。
典型用法与验证¶
编辑器运行且 MCP 已启动后,可在会话中让智能体调用 mcp__unreal-mcp__list_toolsets,或自然语言要求「列出当前关卡中的所有 Actor」。验证时:Plugins 页面上 unreal-mcp 行应为 running;编辑器 Output Log 应出现 MCP 服务启动相关日志。
三个技能的具体工作流(发现 toolset、新建 toolset、在编辑器内写 skill)遵循上游 Epic 技能设计,在 DSH 中通过已注册技能触发;细节以仓库 skills/ 与 README.zh.md 为准。
适用场景与注意¶
适合谁:已在 DSH 中开发智能体、且日常在 UE5 编辑器里打开工程的游戏/工具开发者;希望复用 Epic 的 UE Agent Skills 思路,而不是从零接 MCP。
安全:bundle 赋予智能体对运行中编辑器的较宽访问面,包括 ProgrammaticToolset.execute_tool_script(在编辑器进程内执行任意 Python)。README 建议将其视为「允许助手执行任意代码」:长时间 MCP 会话前提交或 shelve 工程,结束后检查 diff。完整威胁模型见上游 Security。
插件权限:与其它 DSH 插件一样,其行为以当前 Harness 进程权限执行;安装前请阅读源码与 MIT 许可证(及 THIRD_PARTY_NOTICES.md)。
验证边界:1.0.9 变更主要为许可与发布文档;README Status and verification boundary 区分了自动化测试覆盖范围与线上/live 验收记录,不宜把历史 CHANGELOG 结论等同于对 1.0.9 的全新验收。