OV02:Agent、Workflow 与 Agentic System
它解决什么问题
一个产品接入大模型、知识库和工具后,是不是 Agent?答案取决于谁拥有下一步决策权,而不是组件数量。代码规定“先分类,再查询,最后生成”是 Workflow;模型能根据观察动态决定查询、追问、修改计划或停止,更接近 Agent。Agentic System 是包含二者的上位概念。
核心定义
| 概念 | 控制权 | 适合的问题 | 主要风险 |
|---|---|---|---|
| LLM Feature | 调用方 | 局部生成、抽取、分类 | 输出错误 |
| Workflow | 代码或规则 | 路径已知、可分解任务 | 分支遗漏、步骤失败 |
| Agent | 模型在边界内动态决策 | 路径未知、需要观察环境 | 误操作、循环、成本漂移 |
| Agentic System | 代码、模型和人共同控制 | 混合确定性与自主性 | 边界不清、难以运营 |
Anthropic 将 Workflow 描述为由预定义代码路径编排模型与工具的系统,将 Agent 描述为由模型动态指导过程和工具使用的系统。这个区分比“有没有工具调用”更有解释力。
工作原理
Code control : if / switch / DAG / state transition
Model control : choose_tool / choose_next_step / revise_plan / stop
Human control : approve / edit / cancel / take_over
真实产品常采用混合控制:代码定义安全边界和关键流程,模型在局部选择行动,人对高风险操作保留否决权。
架构视图
Architecture View
Workflow: Request -> A -> Router(code) -> B/C -> Result
Agent: Request -> Model -> Action -> Observation
^ |
+------ decide ------+
Hybrid: Request -> Policy -> Workflow Shell -> Agent Zone -> Approval
Product View
User -> state goal -> see progress -> approve risky action -> result
| |
+-- cancel / correct ---+
最小可运行实践
运行 examples/overview/architecture_decision.py。示例根据路径可预知性、动态决策、副作用和风险级别,给出 workflow、agent 或 hybrid 建议。它不调用模型,目的是把架构判断变成显式规则。
正常场景
合同字段抽取与校验路径稳定,适合 Workflow;研究陌生市场并根据发现继续追查,适合受预算约束的 Agent;起草采购单并提交,需要 Agent 处理信息、Workflow 验证格式、人审批提交,适合 Hybrid。
失败与恢复场景
常见错误是把开放式语言输入误认为开放式执行。用户能自由描述需求,不意味着模型必须拥有流程控制权。若任务只有有限分支,应把理解交给模型,把分支和副作用留给代码。
恢复方法是缩小 Agent Zone:将稳定步骤下沉为 Workflow,把模型输出改为结构化决策,并为未知状态设置澄清、失败和人工接管出口。
什么时候使用
- Workflow:步骤可枚举、验收清晰、监管要求高。
- Agent:路径依赖中间观察,规则难覆盖,错误可恢复。
- Hybrid:既要动态探索,又包含资金、消息、权限或数据变更。
什么时候不要使用
单次生成能解决时不要引入循环;固定流程不要为了“智能感”改为模型路由;无法检测成功、限制预算或撤销副作用时,不要给予高自主性。
Trade-offs
自主性提高长尾覆盖,却降低确定性;代码控制容易测试,却增加流程维护;人工审批降低风险,却可能形成新队列。目标不是最大化 Agent 程度,而是让每一份自主性对应用户价值。
产品视角
用户与业务问题
先问“用户目标是否需要系统在运行中做新决定”,再问是否需要 Agent。
产品价值
升级应提高长尾任务完成率、减少用户拆步骤的工作,或处理此前无法自动化的任务。
用户体验
Workflow 可展示固定阶段;Agent 应展示当前目标、关键行动、可信进度和停止原因,不伪造精确百分比。
自主性边界
读取和分析通常可自动进行;发送、购买、删除、授权等不可逆动作默认需要预览或确认。
数据与权限
每个工具采用最小权限。动态决策不能绕过产品层身份、策略和审计。
失败与降级
Agent 应能降级为有限分支、只读、草稿或人工处理,并保留中间成果。
产品指标
观察任务成功率、长尾覆盖、用户修正率、非预期行动率、完成时间和单成功任务成本。
框架中的对应实现
OpenAI Agents SDK 区分模型驱动与代码驱动编排;Google ADK 同时提供 LLM Agent 与 Sequential、Parallel、Loop 等 Workflow Agent;LangGraph 用图和显式状态承载混合控制。框架名不是架构答案。
Related Patterns
前置:Architecture Map。后续:Sequential、Routing、ReAct、Human-in-the-Loop、State Machine。
检查清单
- 下一步由代码、模型还是人决定?
- 自主性新增价值能否测量?
- 是否定义预算、停止和澄清?
- 副作用是否有权限与确认?
- 失败时能否降级并保留中间结果?
延伸练习与参考资料
为自己的产品标注每个步骤的控制权,并尝试把 Agent Zone 缩小一半。