Agent 工作流设计:从单次对话到多步骤自动化 · Lesson 6 of 6

第 6 课:真实场景工作流实战

学习目标:

  • 综合运用任务分解、状态管理、错误处理设计完整工作流
  • 理解三个生产级场景的工作流模式
  • 掌握工作流的可观察性和调试技巧

前置要求:第 5 课:错误处理和重试策略

从理论到实践

前五课我们学习了工作流的构建块:步骤、状态、分解、错误处理。现在让我们把这些知识组合起来,构建三个真实场景的生产级工作流。

这一课的三个工作流:

  1. 代码重构管道: 将遗留代码重构为现代模式,包括分析、规划、执行、测试、验证
  2. 文档生成管道: 从代码自动生成 API 文档,包括提取、生成示例、渲染、发布
  3. 测试自动化流程: 端到端的测试工作流,包括环境准备、并行测试、结果汇总、报告生成

每个工作流都会展示:

  • 完整的任务分解
  • 状态管理和检查点设计
  • 错误处理和恢复策略
  • 可观察性和调试支持1

场景 1: 代码重构管道

需求

将一个包含 50 个组件的遗留前端项目从 class 组件重构为 function 组件 + Hooks。

挑战:

  • 组件间有依赖关系,不能随意重构顺序
  • 重构可能破坏功能,需要测试验证
  • 50 个组件无法在单次对话中完成,需要并行处理2

任务分解

工作流分为 6 个阶段,前两个阶段可以并行处理组件,后续阶段按依赖顺序执行:

完整实现

关键设计点

1. 检查点策略: 每个批次完成后保存,避免重复重构

2. 并行执行: 同一批次的组件可以并行重构(它们不互相依赖)

3. 重试机制: 单个组件重构失败不影响其他组件,用 Promise.allSettled 收集所有结果

4. 修复循环: 测试失败时自动尝试修复,最多 3 次

5. 可观察性: 每个阶段都有清晰的日志输出,状态持久化到外部存储3

场景 2: 文档生成管道

需求

为一个包含 30 个 REST API 端点的服务生成完整的 API 文档,包括端点描述、请求/响应示例、错误码说明。

任务分解(扇出-汇总模式)

关键特点:

  • 扇出-汇总模式: 30 个端点并行生成文档,最后汇总
  • 无状态: 任务足够快(< 10 分钟),不需要检查点
  • 幂等性: 可以随时重跑,覆盖输出文件1

场景 3: 测试自动化流程

需求

在多个环境(本地、staging、生产)运行端到端测试,收集测试结果和性能指标,生成对比报告。

完整实现

关键特点:

  • 并行测试: 多个环境同时运行测试,大幅缩短总时间
  • 容错: 一个环境失败不影响其他环境
  • 智能重试: 测试失败自动重试(网络波动、临时故障常见)
  • 失败分析: 自动生成失败的修复建议1

工作流的可观察性

好的工作流应该随时能回答:

  • 当前进度如何?(X/Y 完成)
  • 预计还需要多久?
  • 遇到了哪些错误?
  • 性能瓶颈在哪里?

答不上来这几个问题,说明日志和状态记录得不够——工作流调试靠的就是这些记录,不是靠猜。

实现可观察性

summary() 里那段按耗时排序、只挑最慢三步打印出来的逻辑,就是最简单的性能分析:先测量每一步花了多久,再从数据里找瓶颈,而不是凭感觉猜哪一步慢。


恭喜你完成了《Agent 工作流设计》课程!

你现在掌握了:

  • 工作流的核心概念和适用场景
  • 任务分解的三种策略
  • 状态管理和检查点机制
  • 错误处理和重试策略
  • 三个真实场景的生产级工作流

下一步:

  1. 在你的项目中实践一个简单工作流(< 5 个步骤)
  2. 逐步增加复杂度(并行、检查点、错误处理)
  3. 分享你的工作流设计,从社区获得反馈
  4. 探索更高级的话题(分布式工作流、工作流编排框架、可视化工作流编辑器)

Footnotes

  1. ClaudFlow:Claude Code 工作流自动化的 7 种模式 — https://claudflow.com/guides/claude-code-workflow-automation.html 2 3

  2. Kinde:复杂重构的多代理工作流 — https://www.kinde.com/learn/ai-for-software-engineering/ai-agents/multi-agent-workflows-for-complex-refactoring-orchestrating-ai-teams/

  3. RefAgent 论文:基于多代理 LLM 的自动软件重构框架 — https://arxiv.org/html/2511.03153v1

Exercises

01

选择你工作中的一个真实任务,设计一个完整的工作流。

Level 1: 设计你的工作流

要求:

  1. 描述任务(2-3 句话)
  2. 画出工作流图(阶段、分支、并行)
  3. 列出状态字段(至少 5 个)
  4. 说明在哪里设置检查点
  5. 列出可能的错误和处理策略
Done criteria · checked locally
02

一个"批量图片处理"工作流在处理第 47 张图片时失败,错误信息是 Error: EMFILE: too many open files。

Level 2: 调试失败的工作流

问题:

  1. 这是什么类型的错误(瞬态/永久)?
  2. 为什么会在第 47 张时失败而不是第 1 张?
  3. 应该如何修复工作流?(给出代码修改建议)
Done criteria · checked locally

My note

Jot down thoughts, sticking points, things you didn't get. Written to this course's appendix only — the lesson file is never touched.