Back to home@Fisfzy

dsh-cae-agent

让 DeepSeek Harness (DSH) 通过原生工具直接操控本机 Abaqus/CAE 的 Cordis 插件。21 个 DSH 原生工具覆盖完整建模链(几何/材料/网格/接触/分析步/载荷/边界/作业/ODB),TypeScript 编写,socket bridge 直连本机(不走 MCP)。

Stars
0
Language
JavaScript
Created
Aug 21, 2026
Updated
Aug 22, 2026
GitHub repo

Introduction

dsh-cae-agent

一个 DSH(DeepSeek Harness)的 Cordis 插件,通过 原生工具直接操作本机正在运行的 Abaqus/CAE 会话,覆盖完整建模链(几何、材料、网格、接触、分析步、载荷、边界、作业、ODB)。它是将 CAE-Agent-Hub 的 Abaqus 集成迁移为 DSH 原生插件,取代了原先的 MCP 桥接方案。源代码为 TypeScript,按 dsh-plugin-dev 规范开发。

版本: 0.2.1plugin/ 内另有 v0.2.1 tag)

语言: 中文 | English

它做什么

Abaqus/CAE 内运行一个 socket bridge(abaqus_mcp_plugin.py,v5 协议,默认 127.0.0.1:48152),在 GUI 主线程派发 Abaqus Python。本插件用 Node TCP 直连这个 bridge(不走 MCP),并把每个 Abaqus 操作注册为 DSH 原生工具

DSH(agent) ──原生工具──> dsh-cae-agent(本插件, TCP)──> Abaqus/CAE socket bridge ──> Abaqus kernel

工具:28 个原生工具,三档授权 + 一个运维工具

类别工具策略
1 — 只读(并发安全)abaqus_pingabaqus_get_model_infoabaqus_list_jobsabaqus_monitor_jobabaqus_inspect_odbabaqus_capture_viewportabaqus_export_results_csv可直接放行
2 — 受控写(独占 + schema 守卫)abaqus_create_partabaqus_create_setabaqus_instantiateabaqus_create_materialabaqus_assign_sectionabaqus_define_stepabaqus_apply_loadabaqus_set_bcabaqus_generate_meshabaqus_create_interactionabaqus_set_frictionabaqus_submit_jobabaqus_set_workdirabaqus_define_composite_layupabaqus_define_orthotropic_materialabaqus_define_amplitudeabaqus_define_predefined_fieldabaqus_set_outputabaqus_plot_contour写操作需门禁/确认
3 — 任意代码(最高权限)abaqus_run_python使用前需确认
运维abaqus_launch_cae拉启本机 Abaqus/CAE 并自动开 bridge

每个建模工具都在内部生成正确的 Abaqus Python——agent 只需提供业务参数(材料 E/ν、几何、摩擦等),不用写裸 Abaqus API。参数设计借鉴上游有限元方法论,但全部生成代码、描述、schema 均为自写。

关于 abaqus_launch_cae

  • 幂等:48152 已在监听 → 直接复用现有会话;否则拉启 abaqus cae 并自动加载 bridge(免手动点菜单)。
  • 需要在交互式桌面会话里运行(Abaqus GUI 内核启动依赖图形上下文),会弹出 Abaqus/CAE 窗口。

关于 abaqus_submit_job(异步)

submit()立即返回mode=submitted),不阻塞桥 → 求解期间其它工具照常可用;用 abaqus_monitor_job 轮询 .sta/.lck 跟踪进度。

仓库结构

├── plugin/                 # DSH Cordis 插件包(源码 TS —— 纯 TypeScript)
│   ├── src/                # ★ 源码(要改这里)
│   │   ├── index.ts        #   Cordis 入口: name/Config(Schemastery)/inject/apply
│   │   ├── core.ts         #   socket-bridge 客户端 + runKernelCode(支持 exec.signal)
│   │   └── tools/          #   read/geometry/material/setup/interaction/mesh/job/launch/composite
│   ├── lib/                # 构建产物(tsc 从 src 编译输出 + .d.ts,勿手改)
│   ├── tsconfig.json       # NodeNext -> lib/
│   ├── scripts/            # link-deps.ps1(junction 运行时依赖)
│   ├── test/               # smoke/codegen/load(离线)+ e2e(真实桥回归)
│   └── package.json        # build/test/e2e 脚本
├── docs/
│   └── MIGRATION.md        # 迁移说明 + 真机测试记录
├── LICENSE
└── README.md / README.en.md

开发规范:源码在 src/*.tslib/*.jsnpm run buildtsc)编译产物,DSH 加载的是 lib/index.js。改名/改代码后需重新 build

测试

cd plugin
powershell -File scripts/link-deps.ps1   # 一次性:junction 运行时依赖
npm run build                            # tsc -> lib/
npm test                                 # smoke + codegen + load(离线)
npm run e2e                              # 真机回归:连 48152 桥跑 19 项检查(需 Abaqus 桥开着)
  • e2e(test/e2e.mjs:连正在运行的 Abaqus/CAE bridge,用插件协议驱动真实工具(只读 + create_part/create_set/instantiate/create_material/assign_section/define_step/apply_load/set_bc/generate_mesh/set_workdir/run_python/set_friction + 非阻塞 submit_job/monitor_job)。已用它在真机上抓并修复过一批模板缺陷。

历史 / 溯源与能力覆盖

本项目参考并借鉴CAE-Agent-Hub(MIT,Copyright 2026 Thompson Labs)与 Abaqus-Control-MCP(MIT)的 socket-bridge 架构Abaqus 建模方法论,在此基础上独立重写并扩展为 DSH 原生 Cordis 插件,并非对上游的一比一复刻或完整实现。

工具能力覆盖(对照上游 Abaqus 能力,v0.2.1 · 28 工具):

  • ✅ Abaqus 实时会话操作:run_python / 模型与作业查询 / submit_job / monitor_job / inspect_odb / capture_viewport / set_workdir
  • ✅ 完整原生建模写链:部件/集合/装配/材料/截面/步/荷载/边界/网格/接触/摩擦/作业 + abaqus_launch_cae
  • 复合/高级建模abaqus_define_composite_layup壳复合 CompositeShellSection+SectionLayer,默认 SHELL/S4R)、abaqus_define_orthotropic_material(工程常数/正交/各向异性)、abaqus_define_amplitude(时变)、abaqus_define_predefined_field(初始场/预定义场)、abaqus_set_output(场/历史输出)
  • 结果后处理abaqus_plot_contour(视口云图)、abaqus_export_results_csv(ODB→CSV)、capture_viewport + 视觉读图
  • 分析步扩展define_step 支持 heat/coupled(温度/耦合分析)

上游归属声明见 plugin/NOTICELICENSE

License

MIT —— 见 LICENSEplugin/NOTICE