YunboAgent — CFD 仿真自动化智能体
项目进度
一句话简介:让工程师用一句自然语言驱动 ANSYS Fluent / STAR-CCM+ / 云泊软件自动完成"规划 → 网格 → 设置 → 求解 → 后处理"全流程,并通过经验闭环越用越聪明。
GitHub 仓库:joew-wen/YunboAgent-CFD(私有)
一、设计背景
1.1 痛点
- 重复劳动:一次典型 CFD 仿真要经历前处理、网格、物理模型设置、边界条件、求解监控、后处理等十几个环节,其中大量 GUI 操作是高度重复的。
- 经验依赖:正确的参数设置和操作顺序依赖工程师的个人经验,新人上手慢,老师傅被琐事占用。
- 商业软件无开放 API:Fluent 的 GUI 不可脚本化编排,STAR-CCM+ 虽有 Java 宏但学习曲线陡峭,跨软件无法统一调度。
1.2 项目目标
构建一个多智能体系统:自然语言需求 → LLM 规划 → 自动 UI 操作/命令执行 → 结果交付,同时把每一次成功/失败的经验沉淀为可复用资产。
1.3 技术起点
- 借鉴开源项目 Foam-Agent 验证了"LLM 驱动仿真全流程"的可行性,本项目扩展到商业软件 + GUI 自动化这一更难的场景。
- 自研 qflow 引擎:基于 Windows UIA + OCR 的桌面自动化录制/回放引擎,通过 MCP 协议暴露给 LLM 客户端调用。
二、设计思路
2.1 架构演进:从"自建 agent"到"IDE skill 编排"
第一代(LangGraph 多智能体):自建 LangChain/LangGraph 工作流——全部自己写。
- 优点:完全可控;
- 代价:大量精力消耗在 agent 基础设施上,而非领域知识本身。
第二代(Qoder Skill 体系,现行):把 LLM 推理与工具调用交给 IDE 内置 agent,领域知识全部沉淀为 8 个 Skill 文档 + 模板库 + 案例库,qflow 引擎以 MCP server 形式接入。
- 不再维护 agent 基建,只维护真正有价值的领域资产;
- 新增一个软件的支持 = 新增三个 skill,结构照抄即可。
2.2 核心设计决策
决策 1:调度器模式 + 对话上下文即状态
总编排 skill 是调度规则文档,agent 本身就是调度器。子 skill 的执行结果自然成为对话历史,无需额外的状态文件传递。
决策 2:Harness 化编排 —— 契约 + 状态门
把整个流程收敛为带状态门的流水线:
| 门 | 阶段 | 放行判据 |
|---|---|---|
| G1 | 规划 | CasePlan 必填字段齐全 + 用户确认 |
| G2 | 网格 | 文件存在且 size>0,格式兼容 |
| G3 | 设置 | 每步执行 errors==0 + 终态截图证据 |
| G4 | 求解 | OCR 识别到 “iterating done” |
| G5 | 导出 | 云泊 OCR 确认结果加载 |
关键原则:门判据必须是客观证据,LLM 的主观判断只能作为纠错线索,永远不能作为放行依据。
决策 3:经验闭环 —— 案例库机制
闭环流程:新任务 → 案例检索 → 命中则复用序列只改差异项 / 未命中则完整访谈 → 执行 → 验证 → 成功回写案例库。
决策 4:混合驱动 + 兜底降级
- 主路径:录制 .qflow 模板,确定性回放——快、稳、可复用;
- 兜底路径:模板纠错 3 轮不过时,降级为实时 LLM 驱动;
- 归宿原则:“兜底是权宜,模板化才是归宿”。
决策 5:断点续跑 + 安全确认门
每过一道门把 StageResult 追加落盘到 checkpoint 文件;恢复时跳过已通过阶段续跑。
决策 6:多软件差异化自动化策略
| 软件 | 控件可识别性 | 技术路径 |
|---|---|---|
| Fluent | UIA 控件可识别 | qflow 录制回放 + 实时驱动兜底 |
| STAR-CCM+ | 仅 OCR 可识别 | Java 宏 + batch 命令行 |
| 云泊(国产前处理) | 待录制 | .flow 模板占位骨架 |
三、整体架构
3.1 调度关系
graph TB
U[用户: 自然语言需求] --> ORCH[cfd-orchestrator 调度器]
ORCH -->|阶段1a| CASES[fluent-cases 案例检索]
CASES -->|命中: 复用基线| PLAN
CASES -->|未命中| PLAN[cfd-planning 参数访谈]
PLAN -->|CasePlan JSON + G1门| MESH{G2 网格路由}
MESH -->|自带网格| SW
MESH -->|无网格| YUNBO[yunbo-ops 生成+导出网格]
YUNBO --> SW{软件路由}
SW -->|Fluent| FL[fluent-templates 参数 + fluent-automation 纪律]
SW -->|STAR-CCM+| SC[starccm-automation]
FL --> G3[G3 设置门]
G3 --> G4[G4 求解门]
G4 --> G5[G5 后处理]
G5 --> WB[fluent-cases 案例回写]
3.2 部署布局
YunboAgent-skill/
├── .qoder/skills/ ← 8 个 skill
│ ├── cfd-orchestrator/ ← 总编排入口
│ ├── cfd-planning/ ← 参数访谈
│ ├── fluent-cases/ ← 案例库
│ ├── fluent-templates/ ← qflow 模板清单 + 参数表
│ ├── fluent-automation/ ← Fluent 操作纪律
│ ├── starccm-automation/ ← STAR-CCM+ Java 宏
│ ├── yunbo-ops/ ← 云泊前/后处理
│ └── qflow-template-recording/ ← 模板录制方法论
├── templates/fluent/ ← qflow 模板
├── templates/yunbo/ ← .flow 模板
└── runs/ ← 运行产物 + checkpoint
四、当前状态与成果
已验证能力
- qflow 驱动 Fluent 完整求解链路:导入网格 → 湍流模型设置 → 边界条件(16 节点模板 0 错误 53.5s)→ 初始化 → 迭代求解;
- find_input 引擎分层匹配 + MTA 线程模型端到端验证通过;
- STAR-CCM+ batch 模式 PoC:Java 宏创建仿真 + qflow run_command 执行 + .sim 文件生成验证;
- 8 个 skill 部署至唯一维护目录。
进行中
- Fluent 端 G1~G4 全门流水线端到端实测;
- 模板参数化补全;
- 云泊 .flow 模板真实录制与链路验证。
核心成果
用"skill 文档承载领域知识 + qflow 模板承载确定性操作 + 状态门承载可靠性 + 案例库承载经验复用"四件套,把一个需要维护数千行 agent 基建代码的系统,收敛为一份可以由 CFD 工程师直接维护的知识库。
项目文档
调研记录
0 篇暂无内容
需求文档
0 篇暂无内容
进度日志
0 篇暂无内容
复盘
0 篇暂无内容