流程编排(Workflow Orchestration)

流程编排是把多个固定步骤用确定性方式串起来自动执行——每一步干什么、谁调谁、数据怎么流,都是提前设计好的。它和”让 Agent 自主决定下一步”是两条互补的思路:编排要的是可控、可复现,Agent 要的是自主、灵活

一句话类比:流程编排像流水线 / 菜谱——第 1 步洗菜、第 2 步切、第 3 步炒,顺序固定、谁都不能乱。Agent 则像临场发挥的厨师,看冰箱有啥、客人想吃啥再决定步骤。简单重复、容不得出错的事用流水线,开放探索的事交给厨师。

关联:Workflow vs Agent 的取舍是核心决策,见 agent.md;具体平台(Coze/Dify/n8n)落地在 agent_dev.md;单步内部的”想→做→看”循环见 loop_engineering.md

1. 为什么需要它:不是所有事都该交给 Agent

很多业务是固定 SOP:拉数据 → 清洗 → 调模型 → 落库 → 通知。这类任务:

  • 步骤已知、不需要模型临时决策
  • 要求稳定、可审计、低成本(每步都跑 LLM 太贵太慢);
  • 出错代价高,要能重试、回滚、人工介入

这时用确定性编排比”让 LLM 自己决定走哪步”更稳更省。Agent 适用于步骤开放、需要推理判断的场景。

2. 核心概念

概念含义
DAG(有向无环图)用节点(步骤)+有向边(依赖)描述流程,不能成环
Node / Step单个执行单元:调 API、跑脚本、调 LLM、人工审批
State(状态)流程在节点间传递的上下文数据(输入输出、变量)
Branch / 条件按上一步结果走不同分支(if/else)
Human-in-the-loop关键节点暂停,等人确认再继续
Retry / 容错某步失败自动重试、超时熔断、补偿回滚
        ┌─ 条件A ─▶ 步骤3 ─┐
起点 ─▶ 步骤1 ─▶ 步骤2 ─┤              └─▶ 汇总 ─▶ 通知/落库
        └─ 条件B ─▶ 步骤4 ─┘
              (DAG:步骤间靠依赖关系连成图,无环)

3. 编排 vs Agent:怎么选

维度流程编排 (Workflow)Agent(自主)
步骤是否已知固定、可预期开放、运行时决定
可控性高(每步确定、可审计)低(路径不确定)
成本/延迟低(不必每步跑 LLM)高(多轮推理+工具)
适合SOP、批处理、可复现任务探索、开放问答、需临场判断
典型工具n8n、Dify、Coze、Airflow、LangGraph(编译态)各类 Agent 框架

经验法则:能写清楚步骤的,就用编排;只有”看情况”的部分才交给 LLM/Agent。 常见做法是”编排包 Agent”——大流程固定,其中某一步调用一个 Agent 做灵活子任务。

4. 基本用法(两种形态)

# 形态 A:代码/DAG 框架直接编排(确定性,强可控)
# 以 LangGraph 编译成固定图为例(伪代码)
from langgraph.graph import StateGraph
g = StateGraph(State)
g.add_node("fetch", fetch_data)      # 拉数据
g.add_node("clean", clean_data)      # 清洗
g.add_node("llm", summarize)         # 调模型
g.add_edge("fetch", "clean")
g.add_edge("clean", "llm")
g.add_conditional_edges("llm", route)  # 按结果走不同后续
app = g.compile()                    # 编译成可执行的固定流程
app.invoke({"query": "..."})
# 形态 B:低代码平台(Dify/Coze/n8n)拖拽节点连线
# 节点:开始 → HTTP请求(拉数据) → 代码(清洗) → LLM(总结) → 邮件(通知)
# 平台负责调度、重试、变量传递、日志——你只画流程图

平台型(Coze/Dify/n8n)适合快速搭业务流、非工程师也能改;代码型(LangGraph/Airflow)适合需要复杂分支、自定义算子和强工程可控性的场景。

5. 典型工作流

  1. 把业务拆成明确步骤,画成 DAG,标出每一步的输入/输出与依赖。
  2. 能不用 LLM 的步骤(拉数、清洗、格式转换)用普通代码节点,省成本。
  3. 仅在需要理解/生成的步骤挂 LLM 或 Agent 节点。
  4. 加重试、超时、条件分支;关键节点加人工确认(human-in-the-loop)。
  5. 接日志与监控,确保可复现、可排查。

6. 常见误区

  • ❌ “啥都上 Agent” → 固定 SOP 用 Agent 既贵又不稳定;先问”步骤能不能写死”,能就编排。
  • ❌ “编排和 Agent 二选一” → 多数好系统是编排包 Agent:大流程固定,灵活子任务交给 Agent。
  • ❌ “图里可以有环” → 编排用 DAG,不能有环(会死循环);需要循环用”条件回到某步 + 终止条件”显式控制。
  • ❌ “每步都调一次大模型” → 浪费且慢;纯确定逻辑用代码节点,LLM 只在必要时出现。
  • ❌ “不需要人工把关” → 涉及写库/发消息/花钱的步骤,务必留 human-in-the-loop 或强校验,避免自动出错难挽回。

7. 延伸阅读 / 关联概念

  • 搭建 Agent 工作流(实操) — 从需求到上线的六步施工法 + 完整案例;见 agent_workflow_build.md
  • Agent(workflow vs agent) — 两者取舍的总纲;见 agent.md
  • AI Agent 开发 — Coze/Dify/n8n 等平台落地;见 agent_dev.md
  • Loop Engineering — 单步内部的”想→做→看”循环;见 loop_engineering.md
  • Agent Harness — 承载/驱动 Agent 运行时的外壳;见 agent_harness.md
  • 上下文工程 — 编排结果如何组装进上下文交给 LLM;见 context_engineering.md