前言¶
把一個 3D 打印件從「設計」送到「上架」,中間要經歷設計、校覈、文案、渲染、發佈模型、加打印配置這幾個環節。在 MakerWorld 平臺上,這六個環節容易出現互不相同的失敗模式:打不出來、看不出問題、文案不合規、登錄掉線、靜默未發佈、3MF 傳成 0 字節。每個失敗點都需要單獨排查和修復。
DeepSeek Harness(DSH)的理念是「一切皆插件」。現有的 DSH skill 插件可以擴展 agent 的能力,但針對 MakerWorld 這條流水線,並沒有現成的組合。開發者需要自己拼裝多個 skill,還要處理各種邊緣情況。
dsh-makerworld 是一個 bundled skill pack,把 MakerWorld 的完整出貨流水線內置進 DSH:1 個編排 skill + 5 個原子 skill。裝完即出現在 agent 的技能目錄裏,不需要往 ~/.agents/skills 拷貝任何文件。
這是什麼¶
dsh-makerworld 是一個面向 DeepSeek Harness 的 DSH 插件,維護者爲 439436269-ctrl。它通過內置 skill provider 向 ctx.skills 註冊一個 rank 600 的 provider,把 6 個 skill 暴露給 agent。
插件解決的核心問題是:把 MakerWorld 的 3D 打印件上架流水線標準化、可測試化,把 6 個互不相同的失敗模式拆解成獨立的原子 skill,讓每個環節都能單獨測、單獨修,編排層只負責順序、確認門和失敗即停。
包裏有什麼¶
| skill | 幹什麼 | 進出 |
|---|---|---|
mw-ship |
編排:設計 → 校覈 → 渲染 → 文案 → 發佈模型 → 加配置,含 4 道確認門 | project.json → 報告 |
blender-part |
參數化建模骨架(圖元/布爾/倒角/導出 + 五條硬規矩) | .py → STL + blend |
print-part-check |
判「能不能打」:非流形邊、洞、越牀、體積與耗材 | STL → check.json |
mw-listing-check |
判「文案過不過」:標題長度、實拍張數、標籤、許可、Markdown | project.json → lint.json |
makerworld-session |
登錄態:固定 profile + 有頭瀏覽器,一次登錄之後免短信 | 會話狀態 |
makerworld-publish |
平臺手冊:填表、上傳、封面裁剪、發打印配置,以及全部踩過的坑 | 瀏覽器操作 |
mw-ship 是編排層,按順序調用其他 skill,並在關鍵節點設置確認門,一旦某個原子 skill 失敗即停,並輸出報告。
blender-part 負責參數化建模骨架,包括圖元、布爾、倒角、導出等操作,並執行五條硬規矩。它輸出 STL 和 blend 文件。
print-part-check 判斷模型能否打印,檢查非流形邊、洞、越牀、體積與耗材等。
mw-listing-check 判斷文案是否合規,包括標題長度、實拍張數、標籤、許可、Markdown 格式等。
makerworld-session 維護 MakerWorld 的登錄態,使用固定 profile 加載有頭瀏覽器,一次登錄之後免短信驗證。
makerworld-publish 封裝了 MakerWorld 的發佈流程,包括填表、上傳、封面裁剪、發打印配置等,並記錄了全部踩過的坑。
安裝與啓用¶
從 GitHub 安裝(推薦;npm 尚未發佈):
dsh plugin --profile web add github:439436269-ctrl/dsh-makerworld
本地開發:
dsh plugin --profile web add "link:D:\codes\.dsh-plugins\src\dsh-makerworld"
卸載:
dsh plugin --profile web remove dsh-makerworld
默認會放出全部 6 個 skill。如果只想啓用部分,可以在 profile 的 cordis.patch.yml 裏按 id 覆寫:
- id: dsh-makerworld
config:
enabledSkills: [mw-ship, print-part-check]
驗證裝沒裝好:
node test/provider.test.mjs
裝進 profile 後,讓 agent 說「列一下你的 skill,有沒有 mw-ship」,能報出來即生效。
典型用法¶
安裝完成後,mw-ship skill 會出現在 agent 的技能目錄裏。agent 可以直接調用 mw-ship 來執行完整的 MakerWorld 出貨流水線:設計 → 校覈 → 渲染 → 文案 → 發佈模型 → 加打印配置。
編排層會在關鍵節點設置確認門,需要人工確認後再繼續下一步。如果某個原子 skill 失敗,編排層會立即停止並輸出報告,方便定位問題。
可選:多子代理形態(DSH agent 模式)¶
agent-mode/ 下是同一個流程的多子代理形態:主代理只做確認門與驗收,四個階段各派一個子代理(subagent_design / subagent_listing / subagent_render / subagent_publish),階段交接契約在 agent-mode/stages.md。
它是獨立的 bundle,不隨本包自動註冊(改 profile 有把應用弄掛的風險,註冊四步寫在 agent-mode/README.md 裏)。要點:
subagents服務與spawnbackend 由 profile 提供,preset 裏不要再掛 —— 掛了會service "subagents" has been registered,整個模式加載失敗。- 委派組要帶
isolate: { workflowEngine: true }(照抄標準預設的 delegation 組)。 agent-mode/bundle/check.mjs是不變量檢查:階段名唯一、全部 spawn + maxDepth 1 + persona 非空、包可解析、禁止在 preset 裏重複掛服務。改完必跑。
爲什麼這些判據可信¶
- 兩套實現互證:
blender-part自報的體積/包圍盒,與print-part-check獨立解析同一 STL 的結果對得上(模板件 47.1 cm³ vs 47.11 cm³;真實件 98.53 cm³ / 113 g,與 Blender bmesh 逐項一致)。 - 反例必須能抓住:
mw-listing-check注入 5 類違規(標題 72 字、非法許可、重複標籤、**加粗**、只留 2 張實拍)時全部報錯、退出碼 1;正例全綠。 - 「加載失敗」這類問題只能靠日誌:結構對、組合通過都不代表運行時能加載 —— 部署後要看啓動日誌。
適用場景與注意¶
這個插件適合已經在使用 MakerWorld 發佈 3D 打印件,希望把流水線標準化、自動化、可測試化的開發者。如果你只是偶爾上傳模型,不需要這套完整的流水線。
插件以當前 dsh 進程的權限運行。安裝前應檢查源碼與許可證(MIT)。部署後要看啓動日誌,因爲「加載失敗」這類問題只能靠日誌排查。
結尾¶
dsh-makerworld 把 MakerWorld 的出貨流水線內置進 DeepSeek Harness,通過編排層 + 5 個原子 skill 的方式,把 6 個互不相同的失敗模式拆解成獨立的可測單元。裝完即出現在 agent 的技能目錄裏,不需要手動拷貝文件。
- 插件目錄頁:https://www.skillhub.cn/plugins/439436269-ctrl/dsh-makerworld
- GitHub:https://github.com/439436269-ctrl/dsh-makerworld