核心缺点是:Prompt 和 Skill 主要告诉模型“应该怎么做”,但不天然保证模型“每次都按规定做完”。

可以从 5 个方面理解:

问题只靠 Prompt / Skill 的风险程序化编排的优势
流程控制模型可能跳过步骤、改变顺序强制按指定流程执行
条件分支模型可能误判该走哪条路径用代码判断条件
多 Agent 协作可能重复发言、漏掉相关专家统一调度、共享状态
循环与终止可能反复尝试或过早结束设置循环次数、退出条件
失败恢复会话中断后可能丢失进度或重复操作持久化状态、从检查点恢复

举个你关心的 UE 代码修改例子:

只靠 Skill:

修改代码后必须编译,编译失败就修复,直到通过。

模型可能忘记编译,可能连续修改却没有真正读取错误,也可能在编译失败时就宣布完成。

用 LangGraph 或类似程序编排:

修改代码
   ↓
执行编译
   ↓
程序读取真实退出码
   ├─ 成功 → 结束
   └─ 失败 → 收集错误 → 交给模型修复
                         ↓
                       再编译

这里不是让模型记住规则,而是由程序控制流程;模型负责分析和修复,程序负责判断编译是否真的通过。

不过,也不能把 LangGraph 理解成万能保证:它能保证流程约束被执行,却不能保证模型给出的分析一定正确。 比如它可以强制运行测试,但测试覆盖不足时,错误代码依然可能通过。

因此,最实用的分工是:

  • Prompt / Skill: 规定模型如何思考、如何分析、如何完成专业任务。
  • LangGraph / 程序编排: 规定系统何时执行、执行几次、如何分支、失败后如何恢复。
  • 验证器: 判断结果是否真的满足要求。

一句话记忆:Prompt 和 Skill 管“怎么做”,编排程序管“必须怎么走”,验证器管“到底做对没有”。