Agent 工作流设计:从单次对话到多步骤自动化 · 第 2 / 6 节

第 2 课:工作流的基本组成:步骤、状态、分支、循环

学习目标:

  • 掌握工作流的四个核心构建块
  • 理解步骤间的依赖关系和数据传递
  • 学会设计工作流的执行流程图

前置要求:第 1 课:从单次对话到工作流 | 下一课 第 3 课 >>

工作流不是魔法,是组合

上一课我们看到工作流可以协调数十个代理完成复杂任务。但如果你打开一个工作流脚本,会发现它只是普通的代码:函数、循环、条件判断。

工作流的威力来自四个简单构建块的组合:

  1. 步骤(Steps) — 工作的基本单元
  2. 状态(State) — 步骤间共享的数据
  3. 分支(Branches) — 根据条件选择路径
  4. 循环(Loops) — 重复执行相似操作

理解这四个构建块,你就能设计任何复杂度的工作流。1

构建块 1:步骤

**步骤是工作流的原子操作。**每个步骤要么是一个 Agent 调用,要么是一个确定性函数。2

Agent 步骤 vs 函数步骤

什么时候用 Agent 步骤:

  • 需要理解模糊输入(自然语言、非结构化数据)
  • 需要生成创意内容(文档、代码、解释)
  • 需要做判断(这段代码有没有安全问题?)

什么时候用函数步骤:

  • 数据转换(过滤、排序、格式化)
  • 数学计算(统计、聚合)
  • 条件判断(if-else 逻辑)
  • 文件操作(读取、写入、移动)

最佳实践: Agent 步骤做推理,函数步骤做计算。不要让 LLM 做简单的数组过滤或数字求和,这既慢又贵还不稳定。2

步骤的输入输出契约

每个步骤应该有清晰的输入输出契约:

**清晰的契约让工作流易于理解和调试。**当第 5 步出错,你能立即看出是因为第 4 步的输出格式不对。3

构建块 2:状态

**状态是步骤间共享的数据。**它像工作流的内存,保存中间结果和执行进度。4

两种状态类型

工作流状态(Workflow State):

  • 当前任务的所有信息:做到哪一步、每步的结果、下一步需要什么
  • 存储在脚本变量或外部数据库中
  • 跨步骤传递,但不跨会话

会话状态(Session State):

  • 用户的对话历史、偏好设置
  • 这是 Agent 自己管理的,工作流不需要关心4

状态管理模式

模式 1:脚本变量(适合短工作流)

模式 2:状态对象(适合中等复杂度)

模式 3:外部存储(适合长时间运行的工作流)

检查点(Checkpointing): 在关键步骤后保存状态,这样工作流可以从失败点恢复,而不是从头开始。5

构建块 3:分支

分支根据条件选择不同的执行路径。6

简单分支

基于 Agent 决策的分支

错误处理分支

构建块 4:循环

**循环让你对多个相似对象执行相同操作。**这是工作流威力的核心来源。6

顺序循环

并行循环

这里的 limit = 5 就是并发限制:一次最多同时跑 5 个,而不是一口气 Promise.all 全部 100 个,避免打开太多连接或文件句柄。

带累积的循环

条件终止的循环

组合构建块:一个完整工作流

让我们组合这四个构建块,设计一个"微服务健康检查"工作流:

对应的脚本:

这个工作流用到了所有四个构建块:

  • 步骤: listServicescheckServiceHealthagent() 调用
  • 状态: state 对象保存总数、健康/不健康列表
  • 分支: 根据服务数量选择并行/顺序、根据健康状况选择报告类型
  • 循环: map 并行循环、for 顺序循环

设计工作流的思维模式

从终点倒推:

  1. 最终输出是什么?(报告、已部署的服务、清理过的代码)
  2. 最后一步需要什么输入?(汇总的数据、验证通过的结果)
  3. 那个输入从哪里来?(上一步的输出)
  4. 重复直到到达起点(用户输入或文件系统)

识别并行机会:

  • 如果多个步骤不互相依赖,可以并行执行
  • "对每个 X 做 Y" 通常可以并行
  • 并行能将 10 个 5 分钟的任务从 50 分钟降到 5 分钟

明确依赖关系:


下一课: 第 3 课:如何拆解复杂任务 — 学习将复杂任务系统化拆解为工作流步骤的策略

Footnotes

  1. MindStudio:Claude Code 五大工作流模式 — https://www.mindstudio.ai/blog/claude-code-agentic-workflow-patterns

  2. Mae Capozzi:构建多代理编排器 — https://maecapozzi.com/blog/building-a-multi-agent-orchestrator 2

  3. AWS Marketplace:代理编排 — https://aws.amazon.com/marketplace/build-learn/ai-agent-learning-series/agent-orchestration

  4. MindStudio:工作流状态 vs 会话状态 — https://www.mindstudio.ai/blog/workflow-state-vs-session-state-ai-agents 2

  5. MachineLearningMastery:AI 代理中的持久化内存和状态的 5 种架构模式 — https://machinelearningmastery.com/5-architectural-patterns-for-persistent-memory-and-state-in-ai-agents/

  6. Alex Op:Claude Code 工作流确定性多代理编排 — https://alexop.dev/posts/claude-code-workflows-deterministic-orchestration/ 2

练习

01

任务:设计一个"批量图片处理"工作流,输入是 50 张图片,需要:(1) 调整大小到 800x600,(2) 添加水印,(3) 转换为 WebP 格式。

Level 1: 设计一个简单工作流

要求:

  • 画出流程图(用文字描述也可以,如 A → B → C)
  • 说明哪些步骤用函数、哪些用 Agent
  • 说明哪里可以并行执行
  • 写出伪代码的核心部分(循环和分支)
完成标准 · 本地勾选
02

一个"代码库迁移"工作流需要:(1) 扫描 200 个文件找出需要迁移的 API 调用,(2) 并行迁移所有文件,(3) 运行测试,(4) 如果测试失败,回滚所有更改。

Level 2: 识别状态管理需求

问题:

  1. 这个工作流需要保存哪些状态?列出至少 3 个状态字段
  2. 哪个步骤后应该设置检查点?为什么?
  3. 如果步骤 3(运行测试)失败,工作流需要哪些状态信息才能正确回滚?
完成标准 · 本地勾选

我的笔记

记下想法、痛点、没懂的地方。只写进这门课的附录,正课文件不动。