文档

mph-agent 文档

Multiphysics Modeling Agent 是一款基于 ReAct 架构的 AI 智能体, 将自然语言描述的 COMSOL 建模需求自动转换为完整的 .mph 模型文件。 主干已接入 claw-code:单步 COMSOL 操作优先由内嵌调度器执行并返回结构化 JSON,必要时由官方 Java API 兜底。

声明:本项目仅基于 COMSOL 官方开放的 Java API 进行二次开发,与 COMSOL 官方无关联, 仅供学习与交流使用,使用前请确保已拥有合法正版许可。
体验方式:当前无正式发布包与 GitHub Releases 预编译产物;请从源码安装并运行 CLI。 仓库包含 Tauri + React 桌面端源码,可自行构建 GUI,本站不提供下载安装包。

简介

mph-agent 通过 Reasoning & Acting 循环理解需求、规划步骤、调用 COMSOL Java API、 观察执行结果并迭代改进,最终生成可直接在 COMSOL Multiphysics 中打开的 .mph 文件。 当前推荐通过 源码安装 使用 CLI;仓库包含 Tauri + React 桌面端源码,可自行构建 GUI,不提供预编译安装包。

claw-code 执行链
内嵌单步调度 + JSON 结果约束 + Java API 兜底
ReAct 闭环
Thought → Action → Observation → Iterate
技能库 + 案例库
SKILL.md 索引到 skills.db,自动检索注入
讨论模式 + 分阶段规划
/discuss、/plan 等与澄清协作
多 LLM 后端
DeepSeek / Kimi / Ollama / OpenAI 兼容
COMSOL 6.3
Java API 直调,按阶段写回 .mph
EventBus 流式
推理与执行事件流式输出;CLI 或自建 GUI 订阅

架构

三层架构:交互 / 客户端层(Tauri + React,源码构建)/ ReAct Agent 层(Python)/ COMSOL 执行层claw-code 内嵌调度 + Java API 兜底)。 通过 EventBus 串联推理与执行事件。

交互 / 客户端(GUI 源码)
  • 需自行从源码构建(无发行版安装包)
  • 对话 / 技能库 / 案例库
  • 设置 + COMSOL Ops
  • 上下文用量仪表
ReAct Agent 层
  • Planner / Executor / ReAct
  • 讨论模式 + 分阶段规划
  • 技能检索 + 摘要记忆(clawcode 压缩)
COMSOL 执行层
  • ClawCodeComsolDispatcher 单步调度
  • Java API 直调兜底(6.3)
  • 几何…求解按阶段写回 .mph

架构详图见仓库 docs/architecture/architecture.md

claw-code 接入

主干将 claw-code 作为执行骨架之一:agent/executor/clawcode_dispatcher.py 在进程内嵌入 claw-code, 把每个 COMSOL 步骤与上下文打包执行,必须返回单个 JSON 对象(含 statusmessage、路径与产物等字段),便于上层与 EventBus 稳定处理。 若 claw-code 未完成,JavaAPIController 仍可按官方 API 兜底。

环境变量(可选):留空时通常复用当前所选 LLM 后端,无需重复填 Key。

  • CLAW_CODE_ENABLED:是否启用(默认开启)
  • CLAW_CODE_MAX_TURNS:单步最大轮数(默认 12)
  • CLAW_CODE_TIMEOUT_SECONDS:单步超时秒数(默认 120)
  • CLAW_CODE_MODEL / CLAW_CODE_BASE_URL / CLAW_CODE_API_KEY:独立指定 OpenAI 兼容端点

CLI:uv run python cli.py parity 可打印 clawcode parity 审计; uv run python cli.py workflow [name] 可列出或查看仓库根目录 .claw-workflows.json 工作流。

环境要求

组件要求说明
Python3.10+与 pyproject.toml 一致;推荐 3.11 / 3.12
COMSOL Multiphysics6.1+6.3+ 推荐,需已安装并拥有正版许可
Java JDK8+与 COMSOL 兼容;项目可使用内置 JDK 11

安装

推荐:从源码运行 CLI

当前唯一面向使用者的体验路径是克隆仓库、安装依赖并启动命令行。 暂无 GitHub Releases 安装包或固定版本二进制下载。

git clone https://github.com/iammm0/mph-agent.git
cd mph-agent
uv sync
uv run python cli.py

详见仓库 README

可选:从源码构建桌面 GUI

仓库包含 Tauri + React 前端,需安装 Node.js、Rust 及对应平台工具链。不提供预编译安装包;构建步骤以仓库 README / 文档为准。

前往仓库查看构建说明

环境配置

在项目根目录创建 .env;若自行构建了 GUI,也可在应用设置页填写。

必需变量

  • LLM_BACKENDdeepseek / kimi / ollama / openai-compatible
  • COMSOL_JAR_PATH
    • 6.3+:指向 plugins 目录,如 C:\Program Files\COMSOL\COMSOL63\Multiphysics\plugins
    • 6.1 及更早:指向单个 jar,如 安装目录/lib/win64/comsol.jar

可选变量

变量说明
CLAW_CODE_ENABLED是否启用内嵌 claw-code 调度,默认开启
CLAW_CODE_MAX_TURNS / CLAW_CODE_TIMEOUT_SECONDS单步轮数上限与超时
CLAW_CODE_MODEL / BASE_URL / API_KEY为 claw-code 单独指定模型端点;可留空以跟随 LLM 后端
JAVA_HOME未配置时使用系统 Java 或项目内置 JDK 11
JAVA_DOWNLOAD_MIRROR国内可设 tsinghua 使用清华镜像
MODEL_OUTPUT_DIR模型输出目录,默认 ./models

.env 示例

LLM_BACKEND=ollama
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=llama3
COMSOL_JAR_PATH=C:\Program Files\COMSOL\COMSOL63\Multiphysics\plugins
CLAW_CODE_ENABLED=1
CLAW_CODE_MAX_TURNS=12
CLAW_CODE_TIMEOUT_SECONDS=120

使用方法

运行 uv run python cli.py 进入 CLI 后,在终端按提示输入自然语言建模需求,Agent 将自动规划并执行。 若已自行构建桌面 GUI,可在应用底部输入框输入相同需求。

$ uv run python cli.py
默认模式
直接生成 COMSOL 模型;执行层由 claw-code 与 Java API 协同完成。
计划 / 讨论
/plan 结构化计划与澄清;/discuss 增量讨论确认意图后再规划。

Python API

源码运行环境下可从 Python 直接调用 ReAct Agent:

from agent.react.react_agent import ReActAgent

react_agent = ReActAgent(max_iterations=10)
model_path = react_agent.run("创建一个宽1米、高0.5米的矩形")
print(f"模型已保存: {model_path}")

技能库与案例库

技能库(Skills)SKILL.md 组织领域知识,索引到 data/skills.db; 建模过程中 Agent 会根据任务自动检索相关技能并注入到提示词。案例库(Cases)相关能力在 GUI 源码中实现,需自行构建客户端后使用;CLI 路径以终端交互与脚本能力为主。

Skills

目录:skills/;入口:skills/README.md; 按领域(几何 / 物理场 / 网格 / 研究 / 后处理)编写 SKILL.md 即可自动生效。

Cases

自行构建 GUI 后,Cases 页面支持同步案例库与本地 .mph 结构化解析, 可作为新建模任务的示例与参考上下文。

事件流(EventBus)

Agent 内部通过 EventBus 广播推理与执行事件;CLI 或自建 GUI 以流式方式订阅展示, 包括 Thought / Action / Observation、工具调用、Java 侧日志、上下文用量等。

典型事件
  • thought:模型思考过程
  • action:即将执行的工具调用
  • observation:Java 侧返回结果 / 错误
  • plan.stage:分阶段规划的阶段切换
  • context.usage:Prompt 用量变化

斜杠命令

命令说明
/demo演示建模流程
/doctor环境诊断(COMSOL / Java / LLM 检查)
/discuss进入结构化讨论,逐步确认建模意图
/context查看会话摘要与历史
/backend选择 LLM 后端
/output设置输出文件名
/plan计划模式(结构化计划与澄清)
/run切回默认执行模式
/ops_catalog列出 COMSOL Java API 封装操作目录
/case_library同步官网案例索引
/case从本地 .mph 提取结构化操作 JSON
/skills管理本地 Markdown 技能
/help查看帮助
/quit退出应用

常见问题

COMSOL JAR 找不到?+

COMSOL 6.3+ 请将 COMSOL_JAR_PATH 配置为 plugins 目录;6.1 及更早则配置为单个 jar 路径。在 CLI 中运行 /doctor(或自建 GUI 内)可自动诊断。

Java 环境报错?+

可依赖项目内置 JDK 11(自动下载到 runtime/java,国内可设 JAVA_DOWNLOAD_MIRROR=tsinghua 使用清华镜像);若使用系统 Java,请确保 JAVA_HOME 与 COMSOL 兼容。

API 调用失败?+

检查当前 LLM 后端对应的 API Key(如 DEEPSEEK_API_KEY、KIMI_API_KEY)是否已在 .env 或环境变量中配置。

Windows 上构建桌面应用报 linker / link.exe not found?+

需安装 Build Tools for Visual Studio 并勾选「使用 C++ 的桌面开发」;或使用 GNU 工具链:rustup default stable-x86_64-pc-windows-gnu(需 MSYS2/MinGW)。

从 comsol-agent 迁移?+

将命令与配置中的 comsol-agent 改为 mph-agent;若曾自行构建旧版 GUI,请重新构建安装以更新产品名与 identifier。

为什么会有多个阶段性 .mph 文件?+

claw-code 分支按几何、材料、物理、网格、研究、求解等阶段写回模型副本(含 _latest),便于定位失败与回溯。

claw-code 与 Java API 是什么关系?+

claw-code 负责把单步执行跑通并返回结构化结果;复杂边角能力由官方 Java API 补齐,二者互补而非替代。独立模型端点可用 CLAW_CODE_* 配置。