dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
电机 AI 辅助设计插件:需求解析 → 参数识别 → 候选矩阵 → Top10 校验。L0 纯 JS、零求解器依赖,毫秒级广筛候选并给出交给 L1/L2 精算工具的载荷;可作为本地 agent 预设与 Cordis 插件使用。L1(RMxprt)与 L2(Motor-CAD)在本版本中仅预留接口,层级总闸设为 l0 以上会立即报错。
dsh-motor-ai-l0 · DSH 插件(bundle) · 纯 JS,零求解器依赖
**不装 RMxprt / Motor-CAD / Python / license,把 120 个候选在十几毫秒内压成 Top5,
只把求解器时间花在最值得的那几个上。**
📁 算例集:3 个真实算例(含反例)→ examples/ · 能力边界
覆盖电机设计全流程:需求解析 → 参数识别 → 候选矩阵 → L0/L1/L2 解算 → Top10 与校验 → 完整方案。 L0 用代理模型与经验公式毫秒级广筛候选;L1 RMxprt、L2 Motor-CAD 为可选精算工具。 装完即用 —— 无需预装 RMxprt / Motor-CAD / Python,无需 license。
# 安装(dsh 未进 PATH 时用 npx)
npx -y @deepseek-ai/dsh plugin --profile web add dsh-motor-ai-l0
# 离线自检(无需 DSH Runtime,裸 Node 即可)
node scripts/verify.mjs标准流水线(顺序很重要)
motor_param_matrix —— 由功率 / 转速 / 电压生成候选参数矩阵motor_design_validate —— 批量物理校验,剔除 failedmotor_l0_estimate —— 对剩余候选排序,输出 TopN 与 L1 交接载荷⚠️ 推荐用聚合工具 `motor_l0_pipeline` 一步跑完上述三步链。DSH 对话上下文有 2000 行读取上限:
当count=120时,单motor_param_matrix就回显 4000+ 行,模型静默丢行后计数对不上 120 还无报错——
这是「让模型亲手编排三步链」的结构性风险(三案例实战全中)。聚合工具在插件进程内跑完三步链,
只回吐紧凑摘要(计数自检 + Top10 + 交接载荷 + 文件交接路径),上下文恒 < 2000 行,从根上绕开截断。
只有在单独调试某一步(查完整校验报告、手调 failed 阈值)时才拆开用三个独立工具。
⚠️motor_l0_estimate只接受params_list(每项含 16 个 L1 顶层字段),不接受power_kw/speed_rpm这类散装命名参数 —— 请先用第 1 步生成矩阵再传入。
L0 结果只用于排序与相对比较,不用于绝对值交付;输出恒带 solve_mode='l0' 标记,最终结论须由 L1/L2 给出。两条通道的分工(v0.2.2)
| 通道 | 触发 | 输出 | 适用 |
|---|---|---|---|
| 公式通道(默认) |l0Mode: 'auto'/'formula'| 效率 + 温升 + 损耗拆分 + 齿/轭磁密 + 功率因数 + 可行判定 —— 字段完整 | 日常排序与相对比较 |
| 代理通道(可选增强) | l0Mode: 'surrogate' | 仅效率(温升/损耗/磁密不输出) | 异步机效率排序的交叉参考 |代理模型 v2.3.0-fixseg(在 v2.2.0 基础上用全量 6029 条真实 RMxprt 结果重训,特征扩为含poles的 5 维;designs.db.l0_residuals,fault=0,效率 ∈ [50,99]),按机座外径分三段:
| 机种 | 样本 OD 覆盖 | 样本数 | 5 折 CV R² | MAE |
|---|---|---|---|---|
| 异步 small / medium / large | 150.6–756.5 / 151.3–1085.4 / 1196–2651 mm | 1291 / 2578 / 1276 | 0.652 / 0.438 / 0.670 | 1.44 / 3.29 / 4.53 pp |
| PMSM small / medium / large | 612–1178 mm(均为大机座) | 367 / 745 / 355 | ≤ 0.31 → 自动降级公式通道 | — |
因此 PMSM 与段外样本始终走公式通道;auto默认走字段完整的公式通道。启用代理时输出带surrogate_experimental: true,且置信度低于阈值(surrogateConfidenceThreshold,默认 0.4)自动降级 —— 不会硬给一个数。
⚠️ 代理通道可能离线 / 覆盖率 0:部分部署环境代理模型文件缺失或加载失败时,会静默降级到公式通道(字段完整、始终可用)。公式通道是「未标定默认通道」(见「已知精度边界」),其输出confidence现为 0.5 的明确标记值(v0.2.7 前恒为 1.0,会误导下游采信绝对值),仅代表「未标定、可排序不可绝对值采信」,不等于高置信预测;代理通道输出带逐预测confidence(低于阈值自动降级)。经验回灌闭环(tools/feedback/experience-hub.mjs)的shadow若给出显著更优的影子模型,即视为触发正式重训的信号——请勿把confidence: 0.5的公式结果当终值。
层级 · 引擎 · 速度 · 范围 · 付费 · 本版本状态 L0 · 代理模型 + 经验公式 · 毫秒级 · 全部方案 · free · ✅ 已交付核心 L1 · RMxprt 磁路法(可选) · 1–3s/方案 · TopN · vip · ⛔ 预留(接口已留) L2 · Motor-CAD 有限元(可选) · ~200s/方案 · Top3 · flagship · ⛔ 预留(接口已留)
本版本做参数矩阵生成、物理校验、L0 估算排序、TopN 交接与回归质量门;不做 RMxprt / Motor-CAD 调用、MCP Server、Python 桥接、多目标优化。
工具 · 作用 · 关键入参 motor_l0_pipeline · 推荐入口:三步链聚合,只回紧凑摘要 + 文件交接,根治 2000 行截断 · power_kw speed_rpm count top_n write_handoff motor_param_matrix · 生成候选参数矩阵(聚焦扫描,非笛卡尔积) · power_kw speed_rpm voltage_v poles count motor_l0_estimate · 毫秒级估算 + 排序 + L1 交接载荷(默认 Top10) · params_list top_n sort_by motor_design_validate · 17 条物理一致性校验,返回 passed/warning/failed · params_list escalate bg_caliber
入参别名:power→power_kw、rpm→speed_rpm、volt→voltage_v。 sort_by 白名单:efficiency torque_density temp_rise total_loss power(temp_rise、total_loss 升序,越小越好)。
$ motor_param_matrix { power_kw: 15, speed_rpm: 1460, voltage_v: 380, motor_type: 'induction', count: 120 } → 120 候选
$ motor_design_validate 17 条物理校验 → 0 passed / 80 warning / 40 failed
$ motor_l0_estimate sort_by: 'efficiency' → Top5,OD310 / 6 极 / η=95.17%# · OD (mm) · L (mm) · 极数 · 槽数 · 效率 (%) · 温升 (K) · 轭磁密 (T) · 总损耗 (W) 1 · 310 · 226.4 · 6 · 72 · 95.17 · 14.6 · 1.39 · 604 2 · 327 · 216.6 · 6 · 72 · 95.02 · 14.6 · 1.38 · 628 3 · 278 · 187.1 · 6 · 72 · 94.94 · 20.5 · 1.38 · 642 4 · 343 · 206.7 · 6 · 72 · 94.89 · 14.7 · 1.38 · 650 5 · 294 · 177.2 · 6 · 72 · 94.81 · 20.5 · 1.38 · 663
→ 这 5 个方案直接作为 L1(RMxprt)的入参,而不是把 120 个全丢给求解器。 完整算例、复现命令与另外两个工况(75kW 异步、200kW 高速 PMSM 反例)见 `examples/`。
配置位于 cordis.patch.yml(查看:npx -y @deepseek-ai/dsh --profile web --dump-config)。最常用四项:
配置项 · 默认 · 说明 level · 'l0' · 层级总闸。设为 l1/l2 立即抛错(快速失败,杜绝静默降级) l0Mode · 'auto' · formula 纯公式(字段完整)/ surrogate 代理模型(仅输出效率)/ auto = 公式通道,段外与低置信度自动降级 surrogatePath · 'models/l0_surrogate_family.json' · 代理模型路径(v2.3.0-fixseg) surrogateConfidenceThreshold · 0.4 · 代理置信度门限,低于此值降级公式 efficiencyCap · 96 · 效率封顶(与 L1 同口径,避免两层排序跳变)。v0.2.4 起仅钳展示值 efficiency,排序按 efficiency_raw(未封顶真值) insulationClass · 'F' · 绝缘等级,决定温升限值(B=80K / F=105K / H=125K)。v0.2.5:行内 insulation_class 优先于本项 line_freq_hz · 50 · 电源频率 (Hz),合法区间 20~400Hz。60Hz 电网与 VFD 变频工况必须设置,否则 V16 按 50Hz 判超同步(4极@1500rpm 会形成假断崖)。非法值判 V18 failed,不静默回落
其余配置项(本地统计 usageLog;L0 运行 surrogatePath / surrogateConfidenceThreshold / maxMatrixSize / topNPreview / tempRiseRange / airGapFluxT / highSpeedRpm;脱敏回传 telemetryEnabled / telemetryEndpoint / telemetryBatchSize / telemetryIntervalSec / sessionTelemetry)见 docs/ENGINEERING.md 与本文「脱敏聚合指标回传」节。
⚠️tempRiseRange命名待议:它对齐 L1max_temp的钳位区间(°C),不是 L0 温升(K),拟改maxTempClamp。
每次工具调用向 ~/.dsh/storages/dsh-motor-ai-l0/usage.jsonl 追加一行元数据:
{"ts":"2026-09-22T06:40:12.345Z","tool":"motor_l0_estimate","ok":true,"elapsed_ms":2,"n":20,"failed":0,"sort_by":"efficiency","top_n":10}usageLog(默认开);所有写入静默降级,绝不影响工具调用(dsh-usage-statistics-panel、dsh-usage-unified 等 DSH 社区插件)的本地数据源搭配使用
在本地 usage.jsonl 之上,可选地把「按工具聚合的统计量」回传到你指定的端点 (如管理端 /api/admin/dsh-plugins//usage-report)。这是显式 opt-in:
配置项 · 默认 · 说明 telemetryEnabled · false · 回传总开关。须为 `true` 且 `telemetryEndpoint` 非空才生效 telemetryEndpoint · '' · 回传目标 URL(POST JSON);空 = 不外发 telemetryBatchSize · 50 · 单批最多携带的用量记录条数(分批推进,失败不推进、下批重报) telemetryIntervalSec · 300 · 回传周期(秒);0 = 仅进程退出时 flush 一次 sessionTelemetry · 'auto' · 是否顺带挂 DSH Runtime sessionTelemetry 瀑布(运行时探测,不静态 inject)
合规底线(与 DSH 生态遥测规范一致):
usage.jsonl 照记,行为与 0.1.4 逐字节一致)平台 OS);绝不包含设计参数正文、结果明细(效率/温升/损耗)、提示词、工作目录、密钥
error 字段截断到 80 字并去换行/路径,避免夹带参数/密钥启用示例(cordis.patch.yml):
telemetryEnabled: true
telemetryEndpoint: 'http://127.0.0.1:5000/api/admin/dsh-plugins/motor-ai-l0/usage-report'
telemetryIntervalSec: 300⚠️ 本插件有两条相互独立的「对外」通道,默认状态不同,请分别看待:
- 遥测回传(telemetryEnabled/designExperienceUpload):默认 关闭,不配置 = 零外发(见上节)。
- 每日免费额度(freeQuotaEnabled,本节):默认 开启,但计数与放行完全在本地完成,后端不可达也不影响使用。
闸门从「后端决定 + 断网放行」改为 「本地为准的硬闸 + 非阻塞旁路遥测」。原因是一条实测到的事故级缺陷:
旧实现checkFreeQuota里是await fetch(...)+ 4s 超时。一旦commerceBackendUrl指向一个
在中国大陆不可达的地址(实测 *.workers.dev 被 DNS 污染、TCP 443 直连超时),国内用户每次工具调用都要白等 4 秒才拿到放行 —— 限流没生效,延迟先炸了。
现在的行为:
计数只认本地 free-quota.json,断网也拦——否则「分发出去即失联」时闸门形同虚设。
config.commerceBackendUrl / config.backendUrl / env.DSH_BACKEND_URL已显式配置,插件会顺手 POST /api/dsh/free-call(载荷 { plugin_id, device_id })做旁路计数, 但这是 fire-and-forget,调用链不等待(实测后端挂死时闸门 1ms 返回)。 未配置地址 ⇒ 一个网络请求都不发,不再向 http://127.0.0.1:5000 打无意义请求。
allowed: false,本地未超限就照常放行(旧版会拦)。$DSH_HOME/storages/dsh-motor-ai/free-quota.json(与完整版 lib/license.mjs:52 的激活态同目录同文件),同机上 l0 与完整版不会分裂成两本。
device_id = sha256(hostname|platform|arch).slice(0, 16)——以主机名 + 平台 + 架构派生的设备指纹,与完整版逐字节一致,用于后端归并同一台机器的额度账。
💡 「出厂即孤岛」已不再是问题:每日 10 次闸门现在完全不依赖后端,装完即生效。
是否部署接收端只影响两件事——① 匿名使用数据(次数/成败/耗时)是否回流;② 换机后额度能否归并。