前言¶
在 DeepSeek Harness(Cordis)里做电路相关任务时,Agent 往往只能停留在「描述原理图、口头说怎么仿真」这一层:本机已经装着 Proteus,却缺少一条从工具调用到 Proteus 窗口/COM 的桥。人工点 Play、Pause、保存 .pdsprj,和让 Agent 按步骤复现,是两套完全不同的工作流。
下面介绍社区插件 dsh-proteus-bridge(维护者 hualuo520-h):对外暴露一套 Proteus 工具,内部按本机是否注册 Labcenter.InteractiveSimulation COM 服务器,自动选择 COM 或 UI(Win32 键盘驱动) 传输;proteus_connect 会明确回传 transport 字段,不做静默降级。
这是什么¶
dsh-proteus-bridge 是 DeepSeek Harness 工具插件,定位是让 Harness Agent 控制 Proteus 8 / 9 的交互仿真并保存工程。插件负责 Agent 侧的连接、启停、状态、保存等;原理图本身仍需人工或通过 COM 路径下的编辑工具绘制。
- 目录页:https://www.skillhub.cn/plugins/hualuo520-h/dsh-proteus-bridge
- 源码:https://github.com/hualuo520-h/dsh-proteus-bridge
- 当前版本(package.json):0.4.3
- 许可证:MIT
- Node 引擎要求:
^22.19.0 || >=24.0.0 - Cordis 对等依赖:
@deepseek-ai/cordis>=4.0.4 <5.0.0
社区插件目录(SkillHub)与 DeepSeek / 幻方无官方从属关系;安装前建议自行阅读源码与许可证。插件以当前 dsh 进程权限 运行,会启动或附着本机 Proteus 进程并发送按键/COM 调用。
传输层与能力对照¶
| 传输 | 触发条件 | 能力概要 |
|---|---|---|
com |
系统注册了 Labcenter.InteractiveSimulation COM 服务器 |
仿真生命周期、信号读取、原理图编辑(放置/引脚/连线)、保存 |
ui |
未注册 COM(随 Proteus 8.17 发行的版本即属此类) | 仿真生命周期、状态探测、工程保存、布局建议 |
工具一览(与 README 一致):
| 工具 | COM | UI |
|---|---|---|
proteus_connect |
✅ | ✅ |
proteus_sim_start / proteus_sim_stop / proteus_sim_status |
✅ | ✅ |
proteus_save_schematic |
✅ | ✅ |
proteus_suggest_layout |
✅ | ✅(纯本地计算,不需连接) |
proteus_read_signals |
✅ | ⛔ UNSUPPORTED_ON_TRANSPORT |
proteus_list_placeable_components / proteus_place_component |
✅ | ⛔ |
proteus_query_pins / proteus_connect_pins |
✅ | ⛔ |
UI 传输下不可用的工具返回领域失败(ok:false + code + hint),例如:
PROTEUS UNSUPPORTED_ON_TRANSPORT: proteus_query_pins 在 UI 传输下不可用(shipping Proteus 无原理图脚本接口)
hint: UI 传输只覆盖仿真生命周期与保存
核心功能说明¶
连接与仿真¶
- 调用
proteus_connect建立会话,确认transport是com还是ui。 - 用
proteus_sim_start、proteus_sim_stop、proteus_sim_status管理交互仿真生命周期与状态。
COM 路径下还可 proteus_read_signals 读探针;UI 路径通过菜单状态探测区分 idle / paused / running(实现针对 Proteus 8.17 实测按键与菜单导航,详见仓库 README)。
保存工程¶
proteus_save_schematic 在两种传输下均可用。UI 传输走 Ctrl+S,并处理版本格式确认对话框;保存前后会校验文件 {size, mtimeMs, sha256},内容未变则返回 SAVE_NOT_APPLIED,避免谎报成功。参数 overwrite / confirmRollback 主要对 COM 有意义;UI 下覆盖语义由 Proteus 自身备份机制承担。
布局建议¶
proteus_suggest_layout 为本地计算,无需连接 Proteus,COM 与 UI 均可调用。
原理图编辑(仅 COM)¶
proteus_list_placeable_components、proteus_place_component、proteus_query_pins、proteus_connect_pins 仅在 COM 传输可用。可放置器件集合以 whitelist/placeable.v1.json 为准,须真机验证后才列入;空数组时 proteus_place_component 返回 COMPONENT_NOT_IN_PLACEABLE_WHITELIST。
安装与启用¶
官方安装命令:
dsh plugin add dsh-proteus-bridge
插件通过 cordis.patch.yml 注册进 profile 组合,例如:
- insert:
- id: dsh-proteus-bridge
name: dsh-proteus-bridge
典型用法(Agent 侧流程)¶
README 未给出固定对话示例,可复现的操作顺序如下:
proteus_connect(可选传入工程路径;UI 传输会按窗口标题附着或启动PDS.EXE)。proteus_sim_status确认当前状态,再proteus_sim_start或proteus_sim_stop。- 需要落盘时调用
proteus_save_schematic。 - 若在 COM 传输且需改图,再依次使用白名单内的放置、查引脚、连线工具;UI 传输下应跳过这些步骤,仅使用仿真与保存。
开发者在仓库根目录可跑离线自检(不连 Proteus、不需要宿主):
node test/selfcheck.mjs
适用场景与注意¶
适合谁
- 已在 Windows 上使用 Proteus 8/9,希望把「启停仿真、看状态、保存工程」交给 DSH Agent 编排的工作流场景。
- 本机具备 COM 服务器、且需要 Agent 读信号或脚本化改原理图时,应优先确认
proteus_connect返回transport: com。
务必知晓的限制
- 随 Proteus 8.17 发行的版本 不含 COM 服务器(
WINCORE.DLL无类型库),多数环境恒为ui,原理图编辑类工具不可用。 - UI 传输的菜单与快捷键按 8.17 SP2 实测;其它 build 需自行复核。
- 0.4.3 起改进了非 C:/D: 盘符安装 Proteus 时找不到
PDS.EXE的问题(App Paths、卸载项、盘符扫描等);仍找不到时返回PROTEUS_NOT_INSTALLED。 - 插件仅支持 Windows 上的 Proteus 桌面流程;Linux/macOS 用户无法直接使用 UI 传输。
结尾¶
dsh-proteus-bridge 把 Proteus 交互仿真与保存收成一套 Harness 工具,并在无 COM 时 honest 地降级到 UI 传输,避免 Agent 误以为能脚本改图。进一步了解可打开 SkillHub 目录页 与 GitHub 仓库 阅读完整 README、CHANGELOG 与 whitelist/placeable.v1.json。