mph-agent 文档
Multiphysics Modeling Agent 是一款基于 ReAct 架构的 AI 智能体, 将自然语言描述的 COMSOL 建模需求自动转换为完整的 .mph 模型文件。 主干已接入 claw-code:单步 COMSOL 操作优先由内嵌调度器执行并返回结构化 JSON,必要时由官方 Java API 兜底。
简介#
mph-agent 通过 Reasoning & Acting 循环理解需求、规划步骤、调用 COMSOL Java API、 观察执行结果并迭代改进,最终生成可直接在 COMSOL Multiphysics 中打开的 .mph 文件。 当前推荐通过 源码安装 使用 CLI;仓库包含 Tauri + React 桌面端源码,可自行构建 GUI,不提供预编译安装包。
架构#
三层架构:交互 / 客户端层(Tauri + React,源码构建)/ ReAct Agent 层(Python)/ COMSOL 执行层(claw-code 内嵌调度 + Java API 兜底)。 通过 EventBus 串联推理与执行事件。
- •需自行从源码构建(无发行版安装包)
- •对话 / 技能库 / 案例库
- •设置 + COMSOL Ops
- •上下文用量仪表
- •Planner / Executor / ReAct
- •讨论模式 + 分阶段规划
- •技能检索 + 摘要记忆(clawcode 压缩)
- •ClawCodeComsolDispatcher 单步调度
- •Java API 直调兜底(6.3)
- •几何…求解按阶段写回 .mph
架构详图见仓库 docs/architecture/architecture.md。
claw-code 接入#
主干将 claw-code 作为执行骨架之一:agent/executor/clawcode_dispatcher.py 在进程内嵌入 claw-code, 把每个 COMSOL 步骤与上下文打包执行,必须返回单个 JSON 对象(含 status、message、路径与产物等字段),便于上层与 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 工作流。
环境要求#
| 组件 | 要求 | 说明 |
|---|---|---|
Python | 3.10+ | 与 pyproject.toml 一致;推荐 3.11 / 3.12 |
| COMSOL Multiphysics | 6.1+ | 6.3+ 推荐,需已安装并拥有正版许可 |
| Java JDK | 8+ | 与 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_BACKEND:
deepseek/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/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/README.md; 按领域(几何 / 物理场 / 网格 / 研究 / 后处理)编写 SKILL.md 即可自动生效。
自行构建 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_* 配置。