Appearance
一句话总结:工作流 = 代码掌控流程(可预测、低延迟),Agent = 模型掌控流程(灵活、但错误累积);先选对范式,再谈框架。
Workflows vs Agents(Anthropic 权威划分)
| 维度 | 工作流 Workflows | 智能体 Agents |
|---|---|---|
| 谁决定步骤 | 你,在代码里(预定义路径) | 模型,运行时动态决定 |
| 控制流 | 固定:LLM/工具走预定义代码路径 | 开放:LLM 自主决定工具使用 |
| 适用 | 固定步骤任务 | 开放、路径不可预测的任务 |
| 可预测性/成本 | 高可预测、低延迟低花销 | 低可预测、每多一次 LLM 调用错误率复合累积 |
三层架构:Augmented LLM(LLM + 检索 + 工具 + 记忆)→ Workflows(5 种预定义模式)→ Agents(自主循环)。
设计模式速查
- Prompt Chaining 提示链:任务拆步骤序列,每步处理上一步输出(可门控校验)
- Routing 路由:不同类型输入分发到不同下游流程
- Parallelization 并行化:同时处理子任务 + 汇聚(分段并行 / 投票)
- Orchestrator-Workers:中央编排者分解任务、分发、综合
- Evaluator-Optimizer:生成器 + 评估器循环优化
- ReAct(Yao 2023):推理行动交替循环
- Reflexion(Shinn 2023):自我反思改进
- Plan-and-Execute:先生成计划 → 按依赖执行 → 异常改计划
- Hierarchical Multi-Agent:监督者调度子 Agent
ReAct 模式
- 迭代:Thought(推理)→ Action(工具调用)→ Observation(观察结果)→ 循环直到完成
- LangGraph 最小实现:Agent 节点(LLM 生成回复或 tool_calls)+ Tool 节点(执行工具),条件边:有 tool_calls → Tool 节点,否则 → END
create_react_agent是 LangGraph 预置封装
控制流四基元
| 模式 | 触发 | 典型场景 | 主要风险 |
|---|---|---|---|
| 串行 | 后步依赖前步 | 多步查询、审批流 | 前步失败全链中断 |
| 并行 | 任务无依赖 | 批量查询、多源聚合 | 结果合并/去重难 |
| 条件分支 | 结果决定走向 | 错误处理、路由 | 分支覆盖不全 |
| 循环 | 反复直到条件满足 | 分页、重试、迭代 | 死循环、成本失控 |
LangGraph(图编排框架)
- 核心:节点(Node)+ 边(Edge)+ 状态(State),有向图建模;与 DAG 不同,图支持循环(Agent 可反复流转:搜索→反思→再搜索)
- 状态 = 公共"黑板"贯穿全程;检查点(checkpoint)让 Agent 拥有跨轮次记忆 + 断点续跑
- 能力:动态路由(条件边)、循环执行、内置存档断点续跑、多 Agent 编排(supervisor 模式)
工程体系(生产级)
- DAG/状态机建模、条件分支与动态路由、循环与重试策略、并行扇出与结果汇聚
- HITL 中断与恢复、检查点持久化与回放、错误处理与补偿事务、可观测性与调试
- 简单 Agent 处理常规任务,边缘情况自动升级到复杂多 Agent 系统(控成本保能力)
面试要点
- 背出 Workflows vs Agents 划分(代码控流 vs 模型控流)与三层架构
- 列举 5+ 设计模式并各配场景
- ReAct 循环:Thought→Action→Observation,条件边判定继续/结束
- 控制流四基元:串行/并行/条件分支/循环 + 各自风险
- LangGraph 三要素(节点/边/状态)+ 图可循环 + 检查点
- 工程体系:HITL、检查点回放、补偿事务、可观测性