跳到主要内容

AI Workflow(工作流)

AI Workflow 是将 LLM 调用组织成多步骤、有结构的流程来完成复杂任务的设计模式。与 Agent 不同,Workflow 的控制流是预定义的、可预测的。

核心原则

能用简单 Workflow 解决的,就不要用复杂的 Agent。

从最简单的单次 LLM 调用开始,只在确实需要时才增加复杂度。

常见 Workflow 模式

1. Prompt Chaining(提示链)

将任务分解为多个顺序步骤,每步的输出作为下一步的输入:

输入 → LLM(生成大纲) → LLM(扩展内容) → LLM(润色校对) → 输出

适用场景

  • 文档生成(大纲→正文→摘要)
  • 数据处理(提取→清洗→格式化)
  • 代码生成(需求分析→设计→实现→review)

关键点:每一步之间可以加入验证(Gate),不合格则终止或重试。

2. Routing(路由分发)

根据输入类型或意图,将请求分发到不同的专业处理路径:

用户输入 → 分类器(LLM) → 简单问题 → 直接回答
→ 代码问题 → 代码专用 Prompt
→ 数学问题 → 调用计算工具
→ 翻译需求 → 翻译专用模型

适用场景

  • 客服系统(不同类型工单分发到不同处理流程)
  • 多意图识别

3. Parallelization(并行化)

多个 LLM 同时处理不同方面,最后汇总:

                 ┌→ LLM-A(代码质量分析)──┐
用户输入 ────────┼→ LLM-B(安全性检查)────┼→ 汇总结果
└→ LLM-C(性能评估)──────┘

两种模式

  • 分区(Sectioning):不同子任务并行处理,最后合并
  • 投票(Voting):相同任务多次运行,取多数结果或最佳结果

适用场景

  • 代码审查(多角度同时检查)
  • 内容审核(多模型交叉验证)
  • 翻译质量评估(多人投票)

4. Orchestrator-Workers(编排-工作者)

一个编排 LLM 动态拆解任务,分配给多个工作者 LLM 执行:

用户输入 → 编排者(分析任务,拆分子任务)
├→ Worker1(子任务A)
├→ Worker2(子任务B) → 编排者(汇总结果)
└→ Worker3(子任务C)

与并行化的区别:编排者可以根据中间结果动态调整后续任务。

适用场景

  • 复杂的代码重构(编排者决定修改哪些文件)
  • 研究任务(编排者决定搜索方向)

5. Evaluator-Optimizer(评估-优化循环)

生成结果后由评估者审查,不合格则带着反馈重新生成:

                    ┌──────────────────┐
↓ │
用户输入 → 生成器(LLM) → 评估器(LLM) → 通过?─→ 输出
│ 不通过
└→ 反馈给生成器

适用场景

  • 代码生成(生成→运行测试→修复→再测试)
  • 文案创作(写→审→改→再审)
  • 翻译(翻译→回译验证→修正)

如何选择

单步能完成吗? → 是 → 单次 LLM 调用
↓ 否
需要分类处理? → 是 → Routing
↓ 否
可以并行处理? → 是 → Parallelization
↓ 否
步骤固定可预测? → 是 → Prompt Chaining
↓ 否
需要动态拆解? → 是 → Orchestrator-Workers
↓ 否
需要迭代改进? → 是 → Evaluator-Optimizer
↓ 否
需要自主决策? → 是 → Agent

实现工具

工具特点
LangChain/LangGraph最流行,图+状态机
Dify可视化拖拽编排
Flowise开源可视化 LLM 编排
n8n通用 Workflow + AI 节点
Prefect/Airflow传统编排工具 + LLM 集成