4747
4848说到底,工作流就是把一次性的生成过程,变成一个** 可迭代、可收敛、可控制** 的系统化流程。
4949
50- ---
51-
5250## 二、工作流是什么:从传统 Workflow 到 AI Workflow
5351
5452![ 传统 Workflow 与 AI Workflow 对比] ( https://oss.javaguide.cn/github/javaguide/ai/workflow/traditional-vs-ai-workflow.svg )
@@ -74,8 +72,6 @@ AI 工作流与传统工作流的关键差异在于:路径选择依赖于运
7472
7573所以 AI Workflow 与传统 Workflow 的差异,不在于“有没有流程”,而在于它更强调动态决策和状态驱动。一旦我们想要表达“下一步不唯一”或者“不满意就再来一轮”,线性列表就不够用,自然会落到 Graph(结构)与 Loop(回溯)这两类概念上。
7674
77- ---
78-
7975## 三、Graph(图)是工作流的结构表达(重要)
8076
8177沿用贯穿案例:假如我们要搭一条「生成初稿 → 质量审核 → 不达标则修改 → 再回到审核」的路径。这里每一步对应图的 ** Node** ,步骤之间的走向由 ** Edge** 表达,整条链路读写的共享上下文就是 ** State** 。
@@ -121,8 +117,6 @@ AI 工作流与传统工作流的关键差异在于:路径选择依赖于运
121117
122118总之图结构比线性结构更贴近 AI 系统的真实形态,因为很多 AI 应用的控制流本来就是图,只是早期常被临时写成 ` if-else ` 、重试逻辑或分散在不同模块里的状态机。
123119
124- ---
125-
126120## 四、Loop 是 Graph 上的回溯能力(重要)
127121
128122在同一套「文章审核」里:** 审核不通过** 时,控制流不应结束,而应沿某条边回到「修改」或「重新生成」——这就是 Loop 在业务上的含义。技术上,它表现为图上的** 回边(Back Edge)** 。
@@ -150,8 +144,6 @@ AI 场景里,第二类通常更有代表性。因为“跑几次”往往不
150144
151145仍然放回文章审核的例子里,Loop 不只是“多试几次”,它是“审核结论驱动下一跳”。只有当评分未达标、且还没超过最大轮次时,流程才会从 ` ReviewNode ` 回到 ` ReviseNode ` ;一旦达到阈值或触发边界条件,就应该退出并给出结果。这时我们看到的就不只是循环,而是一种可控的回溯机制。
152146
153- ---
154-
155147## 五、概念整合:把 Workflow、Graph、Loop 串起来
156148
157149![ Workflow、Graph、Loop 三者关系概览] ( https://oss.javaguide.cn/github/javaguide/ai/workflow/workflow-graph-loop-relation.svg )
@@ -166,8 +158,6 @@ AI 场景里,第二类通常更有代表性。因为“跑几次”往往不
166158
167159这三者是同一件事的三个观察角度:Workflow 关注任务目标,Graph 关注结构组织,Loop 关注回溯控制。
168160
169- ---
170-
171161## 六、从概念到实现:框架映射与代码示例
172162
173163前面建立了 Node、Edge、State 的概念模型,接下来看这些概念如何映射到具体的框架。以下以 Spring AI Alibaba Graph(Java 生态)和 LangGraph(Python 生态)为例。
@@ -345,8 +335,6 @@ public static CompiledGraph buildWorkflow(ChatModel chatModel) throws GraphState
345335
346336> 更完整的示例(包括人机协同、持久化、流式输出)可参考 [ Spring AI Alibaba Graph 官方文档] ( https://java2ai.com/docs/frameworks/graph-core/quick-start/ ) 。
347337
348- ---
349-
350338## 七、工作流设计的分水岭:抽象能力
351339
352340![ 高抽象与低抽象工作流对比] ( https://oss.javaguide.cn/github/javaguide/ai/workflow/abstraction-comparison.svg )
@@ -368,8 +356,6 @@ public static CompiledGraph buildWorkflow(ChatModel chatModel) throws GraphState
368356
369357![ Graph 核心元素:Node、Edge、State] ( https://oss.javaguide.cn/github/javaguide/ai/workflow/graph-core-elements.svg )
370358
371- ---
372-
373359## 八、设计工作流时的注意事项
374360
375361真正把工作流落地时,问题往往不出在“图不会画”,而出在细节没有提前设计好。下面这些是实践里最常见的坑。
@@ -421,8 +407,6 @@ Loop 会自然放大 token 与延迟。设计时要提前思考:
421407
422408节点之间传什么、字段名怎么定义、结构化输出采用什么 schema,都应该尽早统一(例如统一用 JSON Schema 或 Pydantic 模型)。否则图一旦复杂,调试成本会急剧上升。
423409
424- ---
425-
426410## 九、总结
427411
428412用这套视角看问题,工作流就不只是可视化画布上的箭头图,而是一种工程建模能力。常见演进方向包括:
0 commit comments