Day 15|智能体的“状态机与工作流”

84 阅读6分钟

——让 Agent 能“按流程办事”,而不是“自由发挥”

到目前为止,你已经知道:

  • Day 13:记忆工程
  • Day 14:Tooling(工具库 = 行动能力)

但你会发现:

有了工具并不代表 Agent 就能“按计划执行”。 大模型 很容易忘流程、跳步骤、乱执行。

所以,AI 工程实践里必须补上一块:

State Machine(状态机) + Workflow Engine( 工作流 引擎) = 让智能体像“程序”一样严格执行流程。

它能给你的 Agent 带来 3 大能力:

  1. 可控(流程明确)
  2. 可恢复(中断不崩)
  3. 可扩展(流程可配置)

今天这一篇,你会彻底理解:

  • 为什么智能体一定需要状态机?
  • 工作流和 Prompt 有什么本质区别?
  • 如何设计一个“可回溯、可恢复”的 Agent 执行系统?
  • 状态机与工具库如何结合?
  • 如何把大模型从“自由聊天”变成“流程机器人”?
  • 实战例子(内容生成 / 流程自动化 / 抓取任务)
  • 最终给你一个“通用 Agent Workflow 模板(伪代码可直接用)”

这一篇非常关键,是智能体工程的底座。

01|为什么智能体必须用“状态机 + 工作流”?

你有没有遇到这些问题:

  • LLM 执行任务时突然跳过步骤
  • 工具调用顺序不稳定
  • 多轮任务中断后无法恢复
  • 两个工具之间依赖关系乱
  • 重试会导致重复执行
  • 智能体生成内容时突然换主题
  • 系统复杂后,LLM 行为不可控

这些问题本质都是:

语言模型是 “概率机器”,不是“确定性程序”。而状态机提供确定性。

就像人类大脑自由联想很强,但做手术时必须遵守严格的步骤。

大模型也一样:

  • 自由生成 → 强
  • 严格执行流程 → 弱

所以你必须加上 状态机

02|状态机(State Machine)是智能体的“流程导航”

一个典型状态机包含:

  • State(状态)
  • Transition(状态转移规则)
  • Action(动作)

例如内容生产的流程:

Draft → Outline → Expand → Review → Polishing → Done

你必须严格告诉模型:

  • 当前在哪个状态(state)
  • 能转移到哪个状态(transition)
  • 在这个状态下要执行什么工具(action)

这是把 AI 从“自然语言模型”变成“流程机器人”的关键步骤。

03|工作流(Workflow)是“可配置的执行流程”

工作流解决的是:

任务执行顺序 + 依赖关系 + 条件流转

和 Prompt 最大不同:

  • Prompt 是“软指令”,模型可以不听
  • Workflow 是“硬约束”,模型必须遵守

工作流通常会包含:

  1. 顺序执行(Sequence)
  2. 分支(If/Else)
  3. 循环(Loop)
  4. 等待(Wait)
  5. 并行(Parallel)
  6. 错误恢复(Retry / Rollback)

这正是你后面做:

  • 内容生成智能体
  • 自动抓取 / 自动写报告智能体
  • 视频脚本生成智能体
  • 多文件产出的 AI

所必须具备的能力。

04|状态机 + 工作流 = 强可控智能体架构

完整结构图:

User → Supervisor Agent → Workflow Engine → State Machine → Tools → Execution

流程分解:

  1. 用户提出任务
  2. 主管 Agent(LLM)制定初步计划
  3. Workflow Engine 创建任务流程
  4. State Machine 控制当前执行步骤
  5. 每个步骤让 LLM 决定细节并调用工具
  6. 执行工具
  7. Flow 更新状态,继续下一步
  8. 最终返回结果

也就是说:

  • 工作流决定“做什么”
  • 状态机决定“现在做哪一步”
  • 工具决定“怎么做”
  • 模型决定“如何填内容 / 工具参数”

这是今天行业最稳的智能体架构。

05|如何设计智能体的状态机?(可直接用)

最推荐的结构:

{
    state: "OUTLINE",
    next: ["EXPAND"],
    action: "generate_outline"
}

常用 6 类状态:

① INIT(初始化)

准备任务:

  • 解析用户需求
  • 设置目标
  • 拆分子任务
② PLAN(规划阶段)

LLM 制定整体执行步骤,例如:

1. 生成大纲  
2. 扩写  
3. 校对  
4. 最终格式化

这一步输出的是:

  • 状态机结构
  • 工作流节点
③ EXEC(执行阶段:多个子状态)

典型内容生产智能体的执行状态:

OUTLINE → SECTION_EXPAND → MERGE → REVIEW → POLISH
④ FEEDBACK(循环状态)

Review Agent 做如下事情:

  • 检查语义
  • 检查格式
  • 检查逻辑
  • 发现错误 → 回到某个状态

例如:

POLISH → FEEDBACK → EXPAND
⑤ ERROR(异常状态)

触发条件:

  • 工具错误
  • LLM 输出不符合 schema
  • 中间文件损坏
  • 检查不通过

错误处理策略:

ERROR → RETRY(最多 3 次)
ERROR → ROLLBACK(回到上一状态)
⑥ DONE(完成)

最终输出:

  • 全文内容
  • 文件生成
  • 工作流结束

06|如何设计一个“内容生成智能体”的工作流?

内容生产智能体 Workflow(可直接使用)
START
  ↓
ANALYZE_REQUIREMENT(解析任务)
  ↓
GENERATE_OUTLINE(生成文章结构)
  ↓
CONFIRM_OUTLINE(自检大纲)
  ↓
EXPAND_SECTIONS(逐节扩写)
  ↓
MERGE(拼接成全文)
  ↓
REVIEW(逻辑 / 结构 / 风格检查)
  ↓
POLISH(润色 & 格式)
  ↓
OUTPUT(导出 markdown)
  ↓
DONE

这和你现在写内容的流程完全吻合。

07|把上面转成可执行的状态机(伪代码)

这是一个可以直接贴进工程框架里的状态机示例:

state_machine = {"INIT": {"action": "parse_requirement","next": "OUTLINE"
  },"OUTLINE": {"action": "generate_outline","next": "OUTLINE_REVIEW"
  },"OUTLINE_REVIEW": {"action": "review_outline","next": {"ok": "EXPAND","fail": "OUTLINE"
    }
  },"EXPAND": {"action": "expand_sections","next": "MERGE"
  },"MERGE": {"action": "merge_sections","next": "REVIEW"
  },"REVIEW": {"action": "final_review","next": {"ok": "POLISH","fail": "EXPAND"
    }
  },"POLISH": {"action": "polish_text","next": "DONE"
  },"DONE": {"action": "export_markdown","next": None
  }
}

这是一个真正工程级的、可落地的状态机。

08|状态机如何和工具库结合?

Day 14 的工具库负责:

  • 生成内容
  • 分析文本
  • 写文件
  • 调用 API
  • 检查质量

状态机负责:

  • 调度工具
  • 控制执行顺序
  • 处理异常

模型负责:

  • 决定内容
  • 填写工具参数
  • 自检工具结果

三者结合后,Agent 才能做到:

可控、可恢复、可扩展。

09|让 Agent 可恢复(Recovery)的关键:持久化状态

任何生产级智能体都要做:

  • 每次状态转移前写入数据库
  • 工具执行前后都记录日志
  • 状态机在异常中断后能恢复到最近的状态

示例记录:

task_id = 18374
current_state = "EXPAND"
progress = 4 / 7
last_output = "section_4.md"

中断后:

重新加载状态 → 回到 EXPAND → 继续写 section 5

这是 Devin、AutoGPT 级别系统的标准。

10|最终给你的成品:智能体 Workflow Prompt

这是 AI 工程师最常用的通用模板:

你是负责状态机执行的智能体。
规则:
1. 必须严格按照当前状态执行对应 action
2. 禁止跳过状态
3. 执行完 action 后,根据结果决定下一状态
4. 若发生错误,必须触发 error handler
5. 每一步都必须输出:
   - 当前状态
   - 执行的工具
   - 工具参数
   - 工具返回结果
   - 下一状态
不要自行更改流程。

这就是控制大模型的“缰绳”。

总结:

状态机 = 不让 LLM 乱来 工作流 = 不让 LLM 忘步骤 工具库 = 让 LLM 能真正行动 三者一起 = 工程级智能体

你现在已经具备构建 Devin / AutoGPT 级别系统的核心工程能力。