前言¶
在 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