dsh-origin-plugin:在 DeepSeek Harness 对话中直接调用本机 Origin

前言

在 DSH 的插件化接入方式下,常见需求并不是把图生成在远端服务里,而是调用本机已经安装的科学绘图软件。dsh-origin-plugin 解决的是这类问题:让 DeepSeek Harness (DSH) 的 AI 对话直接驱动本机 Origin,按指令写数据、画图、导出 PNG / SVG,并把结果反馈给模型。

这是什么

dsh-origin-plugin 是一个 DSH 插件,通过 DSH 内置的 @deepseek-ai/dsh-mcp-client 注册为 mcp__origin__* 原生工具。许可证为 MIT,仓库地址为:

https://github.com/Fantasality/dsh-origin-plugin

它不是替代 Origin,而是把本机 Origin 的绘图和分析能力包成 DSH 可调用、可预览、可返回稳定错误码的工具。

核心能力

  • 对话触发:例如「用 Origin 画 y=x² 折线图并导出 PNG」这类指令,可以直接触发 Origin 作图与导出。
  • MCP 桥接:通过 @deepseek-ai/dsh-mcp-client 注册为 mcp__origin__* 工具,无需在 DSH 会话中手工调用脚本。
  • 作图能力:覆盖 2D 图 line / scatter / line_symbol / column / histogram / box / bar、误差棒、3D、等高线。
  • 期刊级排版:支持 style_mode(journal/presentation)family 调色板、幂等 graph_name、语义轴标题。
  • 内联预览:origin_view_graph 直接把图渲染成图片内容返回,不依赖导出文件即可查看结果。
  • 统计批:支持 t 检验、ANOVA、PCA、Kaplan-Meier 生存分析。
  • 科学分析:支持删点、线性/非线性拟合、FFT、积分 AUC、变换、相关、峰检、直方图。
  • 稳定错误码:调用返回 error_code / recoverable / next_actions,模型可以根据返回结果做分支处理。
  • 多会话并发安全:采用专用 COM 线程和单实例语义,README 标注实测 8 线程并发 8/8 通过。
  • 快速上手:自带 DSH 原生 origin-plotting skill,也可以调用 mcp__origin__origin_help 获取速查信息。

安装与启用

1、确认环境。

需要满足以下条件:

  • Windows。
  • 已安装 Origin;README 标注实测 OriginPro 2026b,2018+ 一般均可。
  • Python 3.10+。
  • DSH 环境中包含 @deepseek-ai/dsh-mcp-client

插件依赖 @deepseek-ai/dsh-mcp-client 0.1.0-rc.7。通过 dsh plugin add 安装时,该依赖会作为传递依赖装入 profile 的 node_modules

2、安装插件。

已核实安装命令如下:

dsh plugin add dsh-origin-plugin

3、准备 Python 依赖。

插件自带独立 venv,但首次使用前仍需安装以下依赖:

mcp
originpro
pywin32
numpy

4、检查注册与启动配置。

安装后会注册 mcp-origin 条目。bundle 安装包含以下安全特性:

  • 自定位 server 路径。
  • fail-open 启动。
  • mcp-client 依赖。
  • sync stdio transport。

其中 failOnStartupError: false 表示:server 连不上时只记日志、不注册工具,DSH 正常启动。

需要注意:不要在 profile 中再写第二条完整 insertmcp-origin,否则会触发:

duplicate loader entry id: mcp-origin

导致启动失败。如需要使用 venv,应使用同一 id 的 config-only 覆盖,而不是新增一条完整插入项。

默认自定位路径基于:

<DSH_HOME>/profiles/web/node_modules/dsh-origin-plugin/

如果使用的不是默认 web profile,需要覆盖对应路径。

5、校验配置。

安装或注册后,可以用下面的命令校验 mcp-origin 条目:

dsh --profile web --dump-config

典型用法

下面几个例子都来自已核实用法。

1、直接画折线图并导出 PNG。

对话示例:

用 Origin 画 y=x²(x=1..10)的折线图,导出 PNG

模型会调用:

mcp__origin__origin_plot_file

2、直接画散点图并导出 SVG。

对话示例:

把这两列数据画成散点图导出 SVG:x=[1,2,3,4,5], y=[3.1,4.9,7.2,8.8,11.3]

模型会调用:

mcp__origin__origin_plot_file

3、分步写入数据、画图、导出。

流程为:

origin_write_data → origin_plot → origin_export

适合需要分别检查数据写入、作图参数和导出结果的场景。

4、删除指定数据点。

示例:

origin_filter_data(worksheet='[Book1]Sheet1', drop_rows=[2, 5, 9])

5、按 x 范围保留数据。

origin_filter_data 支持 x_min / x_max,例如只保留:

x ∈ [0, 15]

6、获取速查信息。

模型可以调用:

mcp__origin__origin_help

返回 JSON 速查信息,包括 usage / tools / templates / tips

适用场景与注意

  • 适合 Windows + Origin 环境下的科学绘图、数据整理、简单统计和 PNG / SVG 导出流程。
  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • 许可证为 MIT。
  • package.json 版本为 2.0.6
  • 行为细节以真机探针为准。
  • 如果需要跨会话并发调用,插件采用专用 COM 线程和单实例语义,README 标注实测 8 线程并发 8/8 通过。
  • 如果 DSH profile 不是默认 web,需要按实际 profile 覆盖自定位路径。

相关链接

GitHub 仓库:

https://github.com/Fantasality/dsh-origin-plugin
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜