前言¶
把一个 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