nullflux

agent
Security Audit
Warn
Health Warn
  • No license — Repository has no license file
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 11 GitHub stars
Code Warn
  • Code scan incomplete — No supported source files were scanned during light audit
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

NullFlux — 本地部署的中文 CFD / 科学计算智能体(OpenFOAM · MFIX · LBM · ParaView · 视觉核验 · 论文复现),by LZF

README.md



CFDriver

自动化 CFD 仿真智能体 · AI for OpenFOAM / MFIX / LBM / SU2
任意大模型可接入 · 国产模型性价比之选 · 数据不出本机
by LZF · 封装发行版 · Linux x64

Node
Platform
Status
License


CFDriver 主界面 —— OpenFOAM 圆柱绕流算例
CFDriver 主界面:左侧资源管理器 / 中部 ParaView 渲染 + 终端 / 右侧多轮对话 + 工具调用卡片
(图为早期版本界面;当前 UI 已统一为 CFDriver 品牌,交互流程一致)

这是什么

CFDriver 是一个本地部署、原生中文的 AI Agent,专为 CFD / 数值仿真 / 科学计算场景设计。
它把一台 Linux 工作站变成一个会"自己动手"的助手:读论文、写代码、跑 OpenFOAM、调 ParaView、画图、改网格、解释残差曲线——全程对话驱动。

一句话:ChatGPT 的多轮对话 × Cursor 的工具调用 × CFD 工程师的工作流,全部跑在你自己的机器上。


为什么选 CFDriver —— 六大不可替代优势

一、国产模型即可打穿 Claude Code 在 CFD 场景的天花板

通用 Coding Agent(Claude Code / Cursor / Cline)面对 OpenFOAM、controlDictfvSchemessnappyHexMeshDict、残差日志这类强领域知识时,会反复试错、瞎改字典、误读 Foam::error
CFDriver 把CFD 工程师的工作流直接编码到 System Prompt 与工具语义里,于是:

  • DeepSeek-V3 / Qwen3 / GLM-4.6 / Kimi-K2 等国产模型,在 CFD 任务上的成功率显著高于 Claude Code 调通用模型
  • 无需 $20/月订阅、无需翻墙、无需把你的算例上传到 Anthropic,0.5 元能跑完 Claude Code 5 元才能完成的算例调试
  • API Key 直接对接 DeepSeek 官方 / 硅基流动 / 火山方舟 / 阿里百炼——开机就用,断网也能接局域网 vLLM / Ollama

二、为 OpenFOAM 深度优化

不是"能调 shell 就算支持 OpenFOAM"。CFDriver 内置:

  • 专用工具 openfoam_run / openfoam_log:自动 source $FOAM_BASHRC,环境变量隔离,避免污染主机 Python
  • 字典感知:知道 system/constant/0/ 三大目录的含义,知道 transportProperties 该改哪一行
  • 求解器图谱:simpleFoam / pimpleFoam / interFoam / rhoCentralFoam / chtMultiRegionFoam …… 选错求解器会被立刻指出
  • 网格工具链:blockMesh → snappyHexMesh → checkMesh 一条龙,自动读 log.* 提取关键诊断
  • 后处理直连 ParaViewpv_renderpvpython 离屏渲染,残差曲线 / 流线 / 切面图直接贴回对话
  • 可扩展到 SU2 / Fluent journal / CFX-Pre / 自研 CFD 求解器——只需补一个工具描述

三、越用越聪明 —— 项目记忆 (Project Memory)

通用 Agent 每次对话都是失忆症患者。CFDriver 不是。

  • 每个工作目录维护长期记忆库:算例配置、踩过的坑、调参经验、成功的 BC 组合
  • 第 N 次跑相似算例时,Agent 会先翻自己的笔记:"你上次在这个雷诺数下用 kOmegaSST 收敛慢,换成 kEpsilon + wallFunctions 之后好了"
  • 你做的项目越多,它越懂你的研究方向——这是订阅制 SaaS Agent 永远给不了的复利
  • 记忆全部存本地,不上云、不共享、纯私有资产

四、真·本地化、真·可控

维度 CFDriver Claude Code / Cursor
算例数据出境 不出本机 上传到美西服务器
离线运行 配本地 LLM 即可 必须连官网
工具调用审批 每步可视化授权 局部支持
工作目录沙箱 越界即拦截 全盘可写
商用合规 数据本地、源码封装 受出口管制 / 条款约束
成本 仅 LLM token 费用 $20/月 起 + token

五、一个二进制,零依赖部署

  • 不需要 npm install——所有第三方库已 bundle 进 server.bundle.mjs(~1.9 MB)
  • 不需要 Docker / Kubernetes——./start.sh --port 5180 一条命令起飞
  • 不需要 GPU——Agent 本体纯 CPU,GPU 留给你的 LLM 推理服务器
  • 内网工作站 / HPC 登录节点 / 老服务器,装个 Node 18 就能跑

六、自动编译新算法 —— 不止"调参",而是"造求解器"

这是 CFDriver 与一切通用 Coding Agent 的根本分水岭

通用 Agent 只会改 controlDict 的几个数;CFDriver 会给你写一个全新的求解器、自己 wmake 编译、装回 OpenFOAM、跑算例验证

  • 自定义求解器 (applications/solvers/):从模板派生 → 改控制方程 → 加新项 → 写 Make/filesMake/optionswmake libso → 自动加进 controlDict.application
  • 自定义边界条件 (src/finiteVolume/.../BCs/):继承 fixedValueFvPatchField → 实现 updateCoeffs() → 编译为动态库 → 在 0/Utype myInletBC; 一键启用
  • 自定义湍流模型 / 物性 / 离散格式:派生模板类 → 注册 addToRunTimeSelectionTable → 编译 → 在字典里 RAS { model myKEpsilon; }
  • 自定义 utility / 后处理函数对象postProcess -func myFieldCalc 直接可用
  • 编译失败自动诊断:读 wmake 报错 → 定位到 .C / .H 行号 → 改 → 重编,循环直到通过
  • 支持你自己研究领域的新算法:TVD 限制器、AUSM+ 通量、压力修正变体、自适应时间步、IBM、LES SGS、燃烧反应、辐射……只要你说得清数学公式,它就能写成 C++ 编译进 OpenFOAM

一句话:CFDriver 把"读论文 → 写代码 → 编译 → 调通 → 跑算例"五步压缩成一段对话。
这是科研型 CFD 工作者真正需要的生产力,而不是又一个会写 Python 脚本的玩具。


它能做什么

智能体核心

  • OpenAI Function-Calling 风格的工具循环:模型自主拆解任务、调用工具、读结果、修正、再调用,直到达成目标
  • 多轮上下文自动压缩(Auto-Compact):长会话不爆 token,关键工具调用-响应配对绝不被切断
  • 流式输出 + 中途打断:随时按停,正在运行的进程会被干净地终止
  • 多模型支持:OpenAI / DeepSeek / 硅基流动 / 自定义 OpenAI-兼容端点,UI 一键切换

工具集(可视化授权 / 一键批准)

类别 工具 用途
文件 read_file / write_file / apply_patch / list_dir 读写工作目录、按行号或 diff 修改
Shell run_shell 在受控沙箱中执行 bash 命令,输出实时回传
Python run_python / Notebook 内核 在持久 Jupyter 内核里执行,变量跨调用保留
CFD openfoam_run / openfoam_log source bashrc → blockMesh / snappyHexMesh / 求解器一条龙
可视化 pv_render pvpython 离屏渲染 vtk / foam → PNG,直接在对话里看
文档 doc_read PDF / DOCX / MD / 代码全文检索,定位到行
网络 web_fetch 抓网页(受白名单约束)

安全与可控

  • 工具调用前前端弹审批,可勾选"本会话内自动批准"
  • 工作目录隔离,命令默认禁止越出
  • 全程本地运行,对话不上云(除调用 LLM 本身的 API)
  • 源码已经过 RC4 字符串加密 + 控制流扁平化 + Self-Defending 多重封装

前端

  • 暗色玻璃拟态界面,Markdown + KaTeX + Mermaid + 代码高亮
  • 工具调用以可折叠卡片展示,输入/输出一目了然
  • 内嵌图片预览,Notebook 单元格直接渲染
  • WebSocket 双向同步,多标签页共享会话状态

系统要求

最低 推荐
OS Linux x64 (glibc ≥ 2.28) Ubuntu 22.04 / RHEL 9
Node.js 18.x 20.x LTS
内存 2 GB 8 GB+
磁盘 200 MB + 工作目录所需
可选 Python 3.9+ · ParaView 5.x · OpenFOAM v2206+ 都装上体验最佳

快速开始

0. 先装 Node.js 18+(首次部署必看)

CFDriver 是 Node 程序,启动前请确保 node -v 输出 ≥ v18.0.0。如果报 exec: node: not found,按下面任一方案安装:

方案 A — 用发行版自带源(最快,需 sudo)

# Ubuntu / Debian
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

# RHEL / CentOS / Rocky / Alma
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo yum install -y nodejs

# 验证
node -v   # 应输出 v20.x.x

方案 B — 用 nvm(无需 sudo,推荐 HPC 登录节点)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 20
node -v

方案 C — 已装 Node 但 start.sh 找不到

which node           # 看是否在 PATH
# 若装在 /opt/node-v20/bin/node 等非标准位置:
echo 'export PATH=$PATH:/opt/node-v20/bin' >> ~/.bashrc
source ~/.bashrc

⚠️ Node 版本必须 ≥ 18。CFDriver 用到了 fetch、ESM、AbortSignal.timeout 等 18+ 特性,Node 16 会直接启动失败。


1. 下载并解压

wget https://github.com/LZF1111/nullflux/raw/main/cfdriver-linux-sealed.tar.gz
tar xzf cfdriver-linux-sealed.tar.gz
cd sealed

# 2. 启动(默认端口 5174)
./start.sh

# 或指定端口(4 种写法任选)
./start.sh --port 5180
./start.sh -p 5180
./start.sh 5180
./start.sh --port 5180 --host 127.0.0.1

启动后浏览器打开 http://<服务器IP>:<端口>,点右上角 ⚙ 设置

  1. LLM Provider + API Key(或自定义 BaseURL)
  2. 可选:填 ParaView / OpenFOAM 路径
  3. 选择 工作目录(Agent 的所有文件操作都在这里)

完事,开聊。


部署到生产服务器

# 上传
scp cfdriver-linux-sealed.tar.gz user@server:/opt/

# 在服务器上
ssh user@server
cd /opt && tar xzf cfdriver-linux-sealed.tar.gz
cd sealed
./start.sh --port 5180 &

systemd 托管(可选)

# /etc/systemd/system/cfdriver.service
[Unit]
Description=CFDriver Agent
After=network.target

[Service]
Type=simple
User=cfdriver
WorkingDirectory=/opt/cfdriver-linux-sealed
ExecStart=/opt/cfdriver-linux-sealed/start.sh --port 5180 --host 0.0.0.0
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now cfdriver
sudo systemctl status cfdriver

Nginx 反向代理(可选)

location /cfdriver/ {
    proxy_pass http://127.0.0.1:5180/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_read_timeout 86400;
}

目录结构

cfdriver-linux-sealed/
├── server.bundle.mjs   ← 主程序(封装混淆,~1.9 MB,所有 npm 依赖已内联)
├── doc_reader.py       ← Python 辅助:文档解析
├── nb_kernel_host.py   ← Python 辅助:Notebook 内核
├── public/             ← 前端静态资源
├── start.sh            ← 启动脚本(支持端口参数)
└── README.md           ← 本文

封装版不需要 npm install,所有第三方依赖(express / ws / dotenv 等)已 bundle 进 server.bundle.mjs


常见问题

端口被占用?
./start.sh --port 5181     # 换一个
# 或者查谁占了
ss -tlnp | grep 5180
需要外网访问?

start.sh 默认 HOST=0.0.0.0,已经监听所有网卡。检查防火墙:

sudo ufw allow 5180/tcp        # Ubuntu
sudo firewall-cmd --add-port=5180/tcp --permanent  # RHEL
ParaView 报 "No module named paraview"?

不要用系统 Python 跑 pvpython。在 ⚙ 设置里把 pvpython 路径指向 ParaView 自带的:

/opt/ParaView-5.12/bin/pvpython

CFDriver 会自动清掉宿主机的 PYTHONHOME / PYTHONPATH

会话变慢 / token 用爆?

CFDriver 内置 Auto-Compact,达到阈值会自动压缩历史。也可以在对话框里点 🗜 压缩手动触发,或 🗑 新会话重开。

能不能离线跑(无外网)?

可以——只要你接的是局域网内的 LLM 服务(vLLM / Ollama / 本地 OpenAI-兼容端点)。CFDriver 本身完全离线运行,不会"打电话回家"。


升级 / 卸载

# 升级:直接替换目录
cd /opt && rm -rf cfdriver-linux-sealed
tar xzf cfdriver-linux-sealed.tar.gz
systemctl restart cfdriver

# 卸载
systemctl disable --now cfdriver
rm -rf /opt/cfdriver-linux-sealed /etc/systemd/system/cfdriver.service

设置(API Key 等)保存在用户主目录 ~/.cfdriver/,如需彻底清除一并删除该目录。


联系作者

  • 作者:LZF
  • 邮箱[email protected]
  • 机构:中国科学院过程工程研究所 (IPE, CAS)

欢迎商业合作与科研合作来信,包括但不限于:

合作方向 说明
商业部署 / 授权 多节点 license、企业内私有模型对接、二次开发、定制功能
科研合作 高校 / 院所 CFD 课题联合攻关、论文复现、AI4Science
新算法 / 新求解器定制 描述数学公式 + 应用场景,提供专属工具链与求解器封装
培训与演示 团队内训、CFD + AI Agent 工作坊

一般 Bug 反馈与使用咨询亦可通过邮箱联系,请附启动日志、模型名称与复现步骤。


许可

封装发行版仅供评估、个人学习、内部部署使用,禁止反混淆、二次分发、商用转售
商业授权 / 技术合作请联系作者:[email protected]


CFDriver · Drive the flow, automate the rest.
© 2026 LZF — All rights reserved.

Reviews (0)

No results found