2019 年我还在用 Star-CCM+ 跑外流场仿真,每天盯着残差曲线看计算是否收敛。2024 年我在 VS Code 里写 AI Agent 的编排逻辑,发现 Debug 时盯着的还是那两条曲线——只不过这次是 LLM 调用链路上的 Token 消耗和任务完成率。
这不是段子,是我真实的体感。
CFD 和 AI Agent 的底层同构性
先看两张图在大脑里的样子(你不需要真画出来):
CFD 求解循环: 初始化流场 → 设置边界条件 → 迭代求解 → 监控残差 → 判断收敛 → 否?调整参数继续迭代。是?输出结果。
AI Agent 执行循环: 接收用户指令 → 设置上下文约束(System Prompt)→ 规划任务 → 调用工具/LLM → 监控中间结果 → 判断是否完成任务 → 否?调整策略重试。是?返回最终结果。
看到了吗?这几乎是一个模子里刻出来的。
1. 边界条件 vs. System Prompt
在 CFD 中,边界条件决定了求解空间:入口速度、出口压力、壁面粗糙度——任何一条设错,结果就发散。
在 AI Agent 中,System Prompt 就是你的边界条件:角色定义、输出格式、约束规则、工具权限。Prompt 写得模糊,Agent 的行为就会像湍流一样不可预测。
你是一个客服助手。
vs.
你是一个电商客服助手。
- 仅回答订单相关问题
- 涉及退款必须转人工
- 语气保持专业,但不过度正式
- 每次回复不超过 100 字
后者就是在给 LLM 定义”入口边界”。
2. 迭代收敛 vs. 任务闭环
CFD 里最折磨人的是”算不收敛”——残差曲线平了又翘,涡流在某个区域死活稳定不下来。这时候你要么加密网格,要么调整松弛因子。
AI Agent 里最折磨人的是”任务不完结”——Agent 在工具调用和 LLM 推理之间来回震荡,同一个问题重复三次还是拿不到正确答案。这时候你要么优化 ReAct 循环,要么给个”最大步数”硬边界兜底。
本质都是在解决同一个问题:如何在有限的计算资源内逼近可接受的解。
3. 残差监控 vs. Logging/Observability
做 CFD 的人对残差曲线有肌肉记忆:前 200 步陡降,然后进入平台期,偶尔一个小尖峰说明有涡脱落——你在监控求解器的”健康状态”。
写 Agent 的人现在也需要同样的肌肉记忆。每个 LLM 调用的延迟、Token 消耗、Tool Call 的成功率,就是 AI Agent 的残差曲线。你可以用 LangSmith、Phoenix 或者自己搭一套简单的 Logging 来盯着它们。
# 一个简化版的 Agent 监控——和 CFD 残差监控惊人的相似
class AgentMonitor:
def __init__(self, max_steps=15, residual_threshold=0.95):
self.max_steps = max_steps
self.threshold = residual_threshold # 相当于收敛判据
self.history = []
def log_step(self, step, task_progress, tool_success):
self.history.append({
"step": step,
"progress": task_progress, # 类比残差值
"tool_ok": tool_success # 类比 CFL 数
})
if step > self.max_steps:
raise TimeoutError("任务未收敛")
if task_progress > self.threshold:
print(f"🎯 收敛于第 {step} 步")
return True
return False
我不确定这个类比是否成立——后来团队里的老 CFD 同事试了一下,说”这玩意儿和我那个残差监控脚本写到一个文件里去了”。
为什么这个转型路径很”顺”
不是因为我厉害,而是因为流体力学和 LLM Agent 的核心思维恰好共享同一套体系:
| CFD 工程思维 | AI Agent 开发思维 |
|---|---|
| 计算域离散化 | 任务拆解(Decomposition) |
| 边界条件敏感 | Prompt 敏感 |
| 迭代求解 | ReAct 循环 |
| 残差监控 | Tool Call + LLM 响应监控 |
| 网格无关性验证 | Prompt 鲁棒性测试 |
| 求解器选择(压力基/密度基) | 模型选择(GPT-4/Claude/Llama) |
| UDF(用户自定义函数) | Function Call / Tool Use |
| 后处理可视化 | 链路追踪 + 可视化 |
这种映射关系的存在,意味着你不需要从头建立思考框架。你只是在迁移——把对”计算收敛”的直觉,转化成对”任务闭环”的直觉。
所以如果你也是传统工程背景想转 AI
别从 Transformer 的论文开始看——除非你对自注意力机制真的感兴趣。先从你最熟悉的调试直觉和系统思维入手:
- 找一个你熟悉的物理过程(燃烧、流动、传热、结构响应)
- 找到它和 LLM Agent 的对应关系(上面那张表可以当起点)
- 用你最舒服的方式开始写——对 CFD 工程师来说,Python 脚本比 Web 后端友好得多
- 接受第一个 Agent 写得又慢又烂——就像第一个网格画得一样烂,但你会慢慢加密的
几个月前我写了第一个 Agent,拿了 420 美元的 Token 换来了一个 70% 正确率的原型。CFD 的朋友说”这也太亏了”,我说”我跑了 3000 核·时的仿真算一个案例的时候,也没人说便宜”。
转型不是从零开始,是把旧工具包里的直觉倒进新的容器里。
学会怎么用了之后,需要自己总结出自己的范式。这样会走得更顺一些。