24

工作流与自动化

⏱️ 40分钟

Workflow Automation

很多 AI app 在单次 request demo 时都看起来不错,但一旦变成长任务、批处理、multi-step pipeline,就开始暴露问题:任务会丢、重试会乱、状态不清、人工 review 插不进去。AI engineer 真正的价值,往往不是把单次 prompt 调到 90 分,而是把整条 workflow 做到可恢复、可观察、可扩展。

所以这页讲的是 production workflow automation,不是“把几个 API 连起来”那么简单。

Workflow Automation Architecture


先说结论:先显式建状态,再谈自动化

AI workflow 最怕隐式状态。
一个 task 到底在哪一步、失败了几次、该不该转人工,如果都只能靠日志猜,这条 automation 很快会失控。

所以更稳的原则是:

  1. 每一步有明确 state
  2. 每一步能重试或恢复
  3. 每一步都能被观测

什么时候你真的需要 workflow system

场景为什么单次 request 不够
multi-step research需要搜索、解析、总结、合并
batch summarization一个请求处理不了整批文档
embedding / indexing pipeline有 ingest、split、embed、store 多步
HITL review flow模型完成后还要人审
tool orchestration会调用多个外部系统

如果任务是跨时间、跨工具、跨状态的,workflow 就不是可选项了。


一个更可靠的 Workflow Skeleton

ingest
  -> queue
  -> worker step
  -> checkpoint
  -> next step or retry
  -> human review if needed
  -> completion

这里最关键的不是 queue 本身,而是 checkpoint 和 retry policy。


State Machine 为什么比“脚本串起来”更稳

一个更像 production 的 task state,至少应该有:

State含义
pending已创建,尚未处理
running当前在执行
success已完成
failed本轮失败,需要判断
needs_review进入人工介入
cancelled被中止或回滚

有了这层状态,你后面做 SLA、重跑、监控、审计都容易很多。


Retry 不只是“失败了再来一次”

更靠谱的 retry policy 至少要定义:

项目为什么要写清
max attempts防止无限重试
backoff strategy避免瞬间打爆依赖系统
idempotency key防止重复执行副作用
escalation threshold什么时候转人工或进 DLQ

很多 workflow 出事故,问题不在第一次失败,而在失败后重复做错很多次。


Workflow 里的 LLM Step,要像不稳定依赖来设计

这点很关键。
LLM step 不是 deterministic function,所以你应该默认它会:

  • timeout
  • schema fail
  • output drift
  • 质量波动

这意味着每个 LLM step 最好都有:

  • timeout
  • schema validation
  • fallback / retry
  • low-confidence review path

把 LLM 当成稳定黑盒,是很多 workflow 后期难维护的根源。


HITL 路径一定要早设计

Human-in-the-loop 不是系统失败后的补丁,而是 workflow 的正式分支。

它通常适合:

场景为什么要人进来
低置信度输出模型自己也不稳
高风险业务内容错一次代价高
重复失败任务自动化已经不划算
关键客户任务SLA 和 trust 要求更高

如果 review path 是后面临时拼出来的,通常会非常难用。


Observability 不要只看 overall success rate

更应该看:

指标作用
queue lag看系统有没有堵住
step-level P95看哪一步拖慢了整体
retry count看哪一步最不稳
DLQ size看多少任务已经自动化失败
review rate看需要人工介入的比例

如果你只看 overall success,很多局部坏趋势会很晚才发现。


常见翻车点

问题根因
重跑后结果重复写入没有 idempotency
中间挂了只能整单重做没有 checkpoint
人工 review 插入困难没有显式 review state
排障全靠猜没有 per-task trace

AI workflow engineering 最值钱的地方,就是把这些“本来靠运气”的部分变成系统能力。


Practice

拿你现在一个 multi-step task,先画出这 5 个东西:

  1. task states
  2. retry policy
  3. checkpoint location
  4. review trigger
  5. failure metric

这 5 个东西一旦明确,workflow automation 就已经比脚本堆叠成熟一个层级。

📚 相关资源

❓ 常见问题

关于本章主题最常被搜索的问题,点击展开答案

什么时候单次 request 不够,必须上 workflow system?

5 个场景明显需要:multi-step research(搜索+解析+总结+合并)、batch summarization(一次请求处理不完整批文档)、embedding/indexing pipeline(ingest+split+embed+store 多步)、HITL review flow(模型完后还要人审)、tool orchestration(调多个外部系统)。任务跨时间、跨工具、跨状态时,workflow 就不是可选项。

为什么 state machine 比把脚本串起来更稳?

因为 production 任务至少要 6 个显式 state:pending / running / success / failed / needs_review / cancelled。脚本串起来时所有状态都藏在内存或日志里,SLA、重跑、监控、审计都做不了;显式 state 让你能精确知道任务在哪一步、失败几次、要不要转人工。

Retry policy 怎么写才靠谱?

至少定义 4 项:max attempts 防无限重试、backoff strategy 避免瞬间打爆下游、idempotency key 防止副作用重复执行、escalation threshold 决定什么时候转人工或进 DLQ。事故的根因往往不是第一次失败,而是失败后系统重复做错很多次。

LLM step 在 workflow 里要按什么假设来设计?

默认它是不稳定依赖:会 timeout、会 schema fail、会 output drift、质量会波动。每个 LLM step 至少配 timeout、schema validation、fallback / retry、low-confidence review path 4 件事。把 LLM 当 deterministic function 是很多 workflow 后期难维护的根源。

Workflow observability 看 overall success rate 不够,还要看什么?

5 个指标:queue lag 看系统有没有堵、step-level P95 看哪一步拖慢整体、retry count 看哪一步最不稳、DLQ size 看多少任务自动化失败、review rate 看人工介入比例。只看 overall success,局部的坏趋势会很晚才发现。