ansys-agent-bridge:Ansys SpaceClaim 无头驱动与 DSH 插件

前言

在开发基于 DeepSeek Harness(DSH)的智能体时,调用 Ansys 等工程软件的 API 往往存在盲区。最典型的痛点是“静默失败”:某些几何操作(如布尔运算或拓扑共享)在底层返回了成功状态,但实际几何并未发生变化,或者仅仅改变了体数量而体积保持不变。如果智能体仅依赖返回值,就会错误地认为操作已成功,导致后续流程基于错误的数据继续执行。

ansys-agent-bridge 是一个 MCP 服务器,通过 PyAnsys Geometry 在后台无头运行 Ansys SpaceClaim,并配套了一套 DSH 插件。它的核心价值在于:在执行操作前后测量几何数据(如面数、体积),从而捕获这些静默失败,而不是盲目信任返回值。

这是什么

这是一个开源的 DSH 插件包(MIT 许可证,维护者 1622352030)。它包含两部分:
1. MCP 服务器:负责与 SpaceClaim 后端通信,执行几何操作并验证结果。
2. DSH 插件配置:提供了一键安装命令和配置补丁,将上述 MCP 服务器集成到 DSH profile 中。

核心功能

该插件提供了 15 个 MCP 工具,覆盖会话管理、文件操作、几何检查与修改。

会话与诊断

  • ansys_bridge_doctor:报告检测到的 Ansys 版本、SpaceClaim、Fluent、Python 及依赖包版本。
  • scdm_session_start:启动隐藏的 SpaceClaim 模型器(自动检测版本)。
  • scdm_session_status:检查会话是否处于活动状态及其后端类型/版本。
  • scdm_session_close:释放会话和许可证。

文件与导出

  • scdm_open_file:打开 .scdoc/.scdocx/.dsco/.pmdb 文件,并报告体、命名选择、面数、体积。
  • scdm_insert_file:将另一个 CAD 文件合并到当前打开的设计中。
  • scdm_export:导出 .scdocx、STEP、IGES、Parasolid(文本/二进制)、.pmdb。

几何检查

  • scdm_list_bodies:列出打开设计的体名、面数、体积。
  • scdm_collisions:检测体对的碰撞状态(TOUCH/NONE 等)。
  • scdm_min_distance:计算两体间的最小距离(米)。
  • scdm_inspect_geometry:执行八项官方几何检查(重复面、短边、小面、缝合、拼接等)。

修改与脚本

  • scdm_transform:执行 rotate/scale/mirror,并通过前后空间指纹验证。
  • scdm_boolean:执行 unite/subtract/intersect,并通过前后几何检查进行保护。
  • scdm_share_topology:共享拓扑并进行相同的保护检查。
  • scdm_run_script:针对活动会话运行无头 IronPython 脚本。

安装与启用

安装前需满足以下环境:Windows 操作系统、已安装的 Ansys(包含 SpaceClaim,2024 R2 已测试)以及 uv。

方式一:从 GitHub 安装(推荐网络环境良好时)

直接使用 DSH 插件管理命令安装。

dsh plugin --profile web add ansys-agent-bridge

安装后需重启 profile 才能生效。

方式二:从本地检出安装(网络不稳定时)

如果网络无法访问 GitHub,或担心 git fetch 失败导致桌面应用无响应,建议使用本地检出方式。

  1. 添加插件包:
    dsh plugin --profile web add link:C:/path/to/ansys-agent-bridge
  1. 手动配置补丁:
    需编辑 cordis.patch.yml(通常位于 %APPDATA%\dsh-desktop\harness\profiles\web\)。command 字段必须为 uv,不可使用绝对路径或 !!js 表达式。
    - id: mcp-ansys
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: ansys
        transport: stdio
        command: uv
        args:
          - 'tool'
          - 'run'
          - '--quiet'
          - '--from'
          - 'C:/path/to/ansys-agent-bridge/spaceclaim/python'
          - 'ansys-bridge-mcp'
        env:
          PYTHONIOENCODING: 'utf-8'
          ANSYS_BRIDGE_LOG_LEVEL: 'WARNING'
        toolCallTimeoutMs: 900000
        failOnStartupError: false
  1. 注册技能:
    由于补丁机制的限制,spaceclaim/skills/ansys-spaceclaim/ 未通过自动注册。需在 profile 的 cordis.patch.yml 中手动添加该路径。

典型用法

安装并重启 profile 后,可以通过调用工具进行操作。

  • 诊断环境:
    ansys_bridge_doctor
  • 启动会话:
    调用 scdm_session_start。

  • 打开文件并检查:
    调用 scdm_open_file 打开设计,随后调用 scdm_list_bodies 查看体信息。

适用场景与注意

  • 平台限制:仅支持 Windows。需要在 DSH 进程权限下运行。
  • 网络依赖:方式一依赖网络,如果 git fetch 失败且 failOnStartupError 为 false,可能导致应用无响应或插件被锁定禁用。
  • 手动配置:务必注意 cordis.patch.yml 中 command 必须是 uv,且 spaceclaim/skills/ansys-spaceclaim/ 需手动添加。
  • 许可证管理:使用完会话后,务必调用 scdm_session_close 释放许可证。

结语

ansys-agent-bridge 解决了智能体与 Ansys 交互中“信不过返回值”的问题。通过将几何验证逻辑下沉到工具层,它为 CAD/CAE 集成提供了更可靠的底层支持。更多详情可参考插件目录页或 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜