前言¶
在 DeepSeek Harness(DSH)里处理 Unreal Engine 项目时,一个常见的困境是:模型面对 .uasset 这类二进制资产,只能退而求其次——用 strings 抽字符串、开十六进制猜结构,或者现场写解析脚本。.uasset 依赖 .uexp、.ubulk 等 sidecar 文件,这些做法既慢也不可靠。
dsh-UEAssetsOperator 针对的就是这个问题。下面介绍这个插件如何让 DSH 直接检查 Unreal 资产、通过 Unreal Python 编辑蓝图节点,而不是让模型自己啃二进制。
这是什么¶
dsh-UEAssetsOperator 是面向 DeepSeek Harness(DSH)的 Unreal Engine .uasset 检查与蓝图节点编辑插件,维护者是 QSWWLTN,代码托管在 GitHub。package.json 显示当前版本为 1.3.0,type: module,入口为 lib/index.js。
DSH 的理念是「一切皆插件」,插件通过 Cordis 机制注册工具与技能。这个插件的核心动作有三步:
1、通过 ctx.tools.register() 注册原生工具 ue_uasset_inspect 和 ue_blueprint_python_edit;
2、检测到 UE 资产相关的用户意图时,主动注入工具 schema 和配套操作说明;
3、宿主提供 skills 服务时,通过 ctx.skills.register() 注册 DSH 内置操作说明。
lib/index.js 导出 name、inject、apply 三个成员,不需要额外 npm 运行时依赖。
核心功能¶
意图检测与工具注入¶
当用户消息出现 .uasset / .uproject / /Game/...、Blueprint / DataTable(含「蓝图」「数据表」)等明确意图,或会话涉及 UE 项目目录中的 BP_* 等资产名时,插件会主动注入两个工具 schema 和完整的 ue-uasset-operator 操作说明,引导模型直接调用原生工具。
三种检查模式¶
ue_uasset_inspect 支持三种模式,按需选择开销:
| 模式 | 行为 |
|---|---|
resolve |
只解析 .uproject、UE 版本和虚拟包路径,不启动 UE |
registry |
通过 Asset Registry 读取类型、标签、依赖和引用,默认模式 |
load |
加载 UObject,额外读取选定属性和元数据 |
有界路径解析¶
资产路径解析始终从会话工作目录或最近的 .uproject 根开始做有界搜索,禁止 find /、盘符根或整个引擎目录的全盘扫描。工作区未命中时,工具会报告缺失路径,而不是自行扩大扫描范围。
skills 与极简宿主的兼容¶
skills/ue-uasset-operator 目录保存 PowerShell 启动器、Unreal Python 检查器、受限蓝图编辑脚本及参考文档。提供 skills 服务的宿主会随插件注册这些说明;仅提供 tools 的极简宿主仍然可以使用两个原生工具。
安装与启用¶
插件包含 cordis.patch.yml bundle,支持 bundle 安装与 EAC 手工 insert 两种方式。两种方式不要同时使用,否则 DSH 会因重复 loader id 拒绝启动。
bundle 安装(推荐)¶
环境已安装 dsh CLI 与 pnpm 时,先把仓库克隆到固定目录,再安装到目标 profile:
git clone https://github.com/QSWWLTN/dsh-UEAssetsOperator.git X:\Tools\dsh-UEAssetsOperator
dsh plugin --profile my-profile add X:\Tools\dsh-UEAssetsOperator
该命令会把插件写入 profile 的依赖,并自动写入 dsh.profile.bundles。
README 提到,发布到 npm 后也可以按包名安装:
dsh plugin --profile my-profile add @deepseek-dsh-desktop/dsh-ue-uasset-operator
EAC 手工 insert¶
EAC 安装包未附带 pnpm,应使用 profile patch 方式。先克隆仓库到固定目录:
git clone https://github.com/QSWWLTN/dsh-UEAssetsOperator.git X:\Tools\dsh-UEAssetsOperator
再在 C:\Users\<用户名>\.dsh\profiles\web\cordis.patch.yml 中加入 insert 块:
- insert:
- id: ue-uasset-operator
name: 'file:///X:/Tools/dsh-UEAssetsOperator/lib/index.js'
重启 EAC 后生效。这个入口没有额外 npm 运行时依赖,Cordis、工具和技能注册表由 EAC 宿主提供。
两个细节需要注意:
1、如果 patch 文件中已存在 id: ue-uasset-operator,只替换该行的 name,不要再添加第二个 insert 块;
2、路径中的空格必须按 URL 规则编码(例如 Deepseek%20Harness%20EAC),Windows 盘符路径使用三个斜杠的 file:///X:/... 形式。
外部 patch 启动独立 DSH¶
开发时可以把同样的 insert 块保存为 ue-assets.patch.yml,再启动独立 DSH:
dsh web --patch X:\Tools\ue-assets.patch.yml --host 127.0.0.1 --port 0
启动后在插件清单中确认 ue-uasset-operator 已加载,随后模型即可调用两个 UE 工具。
典型用法¶
不同宿主模式下的工具可见性¶
1、官方极简模式和 极简模式_win 继承全局注册的两个 UE 工具,可以直接调用;
2、Anchored Standard 在检测到 .uasset 意图时,会把 ue_uasset_inspect 和 ue_blueprint_python_edit 主动加回当前工具 schema,命中的那一轮即可直接调用,不必等待解锁;
3、若两个工具因宿主策略仍未出现,进入提升阶段后先通过 skill_search / skill_load 加载 ue-uasset-operator,再调用 dev_tool_search 解锁。
dev_tool_search 的精确解锁参数如下:
{"toolNames":["ue_uasset_inspect","ue_blueprint_python_edit"]}
工具会从下一轮开始出现。注意不要把两个工具名拼成一个自由文本 query——该模式的搜索要求所有关键词同时命中同一个工具,拼接会导致搜不到。
前置条件¶
使用前确认以下三点:
1、目标 .uasset 通常应位于项目或插件的 Content 目录中,并保留同名 .uexp、.ubulk、.uptnl sidecar;
2、项目已安装匹配的 Unreal Editor,且 PythonScriptPlugin 已启用;
3、插件不会自动修改 .uproject。
适用场景与注意事项¶
这个插件适合在 DSH 工作流中频繁查看 UE 资产结构、做蓝图节点编辑的开发者,尤其是已经在用 EAC 或 dsh CLI 管理 profile 的用户。
安装和使用前请注意:
1、插件以当前 dsh 进程权限运行,安装前应检查源码。截至本文编写,仓库资料未明确标注许可证类型,package.json 的 files 中列出了 LICENSE 文件,请自行查看其内容确认授权范围;
2、不要同时使用 bundle 安装和手工 insert 块,否则 DSH 会因重复 loader id 拒绝启动;
3、路径含空格时按 URL 规则编码。
开发验证¶
修改插件代码后,在插件目录运行测试:
npm test
测试脚本为 node --test。
小结¶
dsh-UEAssetsOperator 把 .uasset 检查和蓝图节点编辑封装成 DSH 原生工具,配合意图注入和有界路径解析,省去了模型手工解析二进制资产的弯路。如果你在做 UE 项目相关的智能体工作流,值得一试。
- 社区插件目录:https://www.skillhub.cn/plugins/QSWWLTN/dsh-UEAssetsOperator
- GitHub 仓库:https://github.com/QSWWLTN/dsh-UEAssetsOperator