dsh-UEAssetsOperator: .uasset Checking and Blueprint Node Editing Tools for DeepSeek Harness

前言

在 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_inspectue_blueprint_python_edit
2、检测到 UE 资产相关的用户意图时,主动注入工具 schema 和配套操作说明;
3、宿主提供 skills 服务时,通过 ctx.skills.register() 注册 DSH 内置操作说明。

lib/index.js 导出 nameinjectapply 三个成员,不需要额外 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_inspectue_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.jsonfiles 中列出了 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye