从传统自动化到智能体协作------Agentic Workflow 核心概念解析
传统自动化像一条流水线,每一步都写死在代码里;Agentic Workflow 则像一个会思考、会使用工具、会自我纠错的团队。本文带你建立对 Agentic Workflow 的完整认知框架。
一、引言
2024 年下半年,Andrew Ng 在多个场合反复提到一个词------"Agentic Workflow"。他在演讲中展示了一组数据:在 HumanEval 基准测试中,GPT-3.5 使用 Agentic Workflow 后的表现,甚至可以超越 GPT-4 的零样本结果。这让整个行业开始重新审视一个根本性问题:我们是不是用错了大模型?
过去两年,大多数开发者使用 LLM 的方式是"输入 prompt → 等待输出"的零样本模式。这种方式下,模型就像一个被问完问题就必须立刻给出最终答案的考生------没有草稿纸、不能查资料、不许改答案。
而 Agentic Workflow 的核心思想完全不同:让模型像人类专家一样工作------先规划、再执行、边做边反思、必要时调用工具、甚至可以多个模型协作。
Agentic Workflow
不满意
满意
用户输入
规划
执行/工具调用
反思
输出结果
零样本模式
用户输入
LLM 单次推理
输出结果
图:零样本模式(一步到位)vs Agentic Workflow(迭代优化)
本文将带你从零理解 Agentic Workflow 的来龙去脉、核心组件和设计哲学,为后续深入实践打下基础。
二、什么是 Agentic Workflow
2.1 一个直观的类比
想象你要写一篇技术博客。
传统方式(零样本):你坐在桌前,一口气从头写到尾,中间不能查资料,不能修改,写完就交。结果可想而知------文章结构可能松散,细节可能不准确,甚至可能跑题。
Agentic Workflow 方式:你先花 5 分钟列出大纲(Planning),然后开始写初稿,写到某个技术细节时你 Google 了一下最新文档(Tool Use),写完一段回头读发现逻辑不顺,于是调整了段落顺序(Reflection),最后你让两个同事分别审校技术准确性和可读性(Multi-Agent)。最终交付的文章质量自然高出很多。
Agentic Workflow 方式(像专业写作)
不满意
满意
规划大纲
分段撰写
查阅资料
Tool Use
自我审校
Reflection
同事审阅
Multi-Agent
定稿发布
传统零样本方式(像即兴演讲)
接到任务
一气呵成
不能修改
不能查资料
质量不稳定
图:写作类比------Agentic Workflow 让你像专业作者一样迭代产出高质量内容
2.2 正式定义
Agentic Workflow 是指将大语言模型(LLM)置于一个具有自主决策能力的智能体(Agent)角色中,通过组合规划、工具调用、自我反思和多智能体协作等机制,让模型在多次迭代中逐步完成复杂任务的工作流模式。
核心关键词是三个:
- 迭代(Iterative):不是一次生成,而是多轮交互、逐步逼近
- 自主(Autonomous):模型自行判断何时停止、何时调整、何时求助
- 工具增强(Tool-Augmented):模型可以调用外部工具获取信息或执行操作
2.3 从传统自动化到 Agentic Automation
传统自动化(RPA、CI/CD Pipeline、Cron Job)的本质是规则驱动------"如果 A 则 B",每一条路径都是预先定义好的。它的优点是确定性强,缺点是完全没有灵活性。一旦遇到预料之外的情况,整个流程就会中断。
Agentic Workflow 则不同:
| 维度 | 传统自动化 | Agentic Workflow |
|---|---|---|
| 决策方式 | 预定义规则 | LLM 动态推理 |
| 适应性 | 仅处理已知场景 | 可应对未知输入 |
| 工具使用 | 固定 API 调用 | 动态选择和组合工具 |
| 纠错能力 | 人工介入 | 自动反思和重试 |
| 复杂度上限 | 受规则数量限制 | 受模型能力限制 |
Gen 3: Agentic AI
Gen 2: AI 增强自动化
Gen 1: RPA 机器人
演进
演进
固定规则
结构化数据
无学习能力
RPA + ML/NLP
半结构化数据
模式识别
目标驱动
多模态数据
持续学习与自适应
图:从传统自动化到智能体的三代演进
三、Agentic Workflow 的核心组件
一个完整的 Agentic Workflow 通常由四个核心组件构成,它们共同协作,形成"思考-行动-观察-反思"的闭环。
未达标
达标
用户输入目标
- Planning 规划模块
- Tool Use 工具调用模块
- Observation 观察结果
- Reflection 反思模块
输出最终结果
图:Agentic Workflow 四大核心组件的协作闭环
3.1 规划模块(Planning)
规划模块负责将复杂目标分解为可执行的子任务序列。
关键能力:
- 任务分解:将"帮我分析上季度的销售数据"分解为"查询数据库 → 清洗数据 → 绘制趋势图 → 撰写分析报告"
- 依赖排序:识别哪些任务必须先完成,哪些可以并行
- 动态重规划:当某个步骤失败时,重新调整后续计划
常见实现方式:
-
ReAct 模式:Reasoning + Acting,交替进行推理和行动
-
Plan-and-Execute:先制定完整计划,再逐步执行
-
Tree-of-Thought:探索多条可能路径,选择最优方案
一个简单的规划 Prompt 示例
system_prompt = """
你是一个任务规划助手。请将用户的目标分解为 3-7 个可执行的步骤。
每个步骤需要包含:- 步骤描述
- 预期输出
- 所需工具或资源
- 与其他步骤的依赖关系
"""
3.2 工具调用(Tool Use)
工具调用让 Agent 具备了"动手能力"------它不再局限于生成文本,而是可以真正地与外部世界交互。
常见的工具类型:
| 工具类别 | 示例 | 用途 |
|---|---|---|
| 搜索工具 | Google Search、Bing API | 获取实时信息 |
| 代码执行 | Python REPL、Shell | 运行计算、操作文件 |
| 数据库 | SQL 查询接口 | 存取结构化数据 |
| API 调用 | REST/GraphQL 接口 | 触发外部服务 |
| 文件系统 | 读/写本地文件 | 持久化中间结果 |
工具调用的关键设计:
- 工具描述(Tool Description):清晰描述工具的功能和参数,模型需要根据描述自行决定何时调用哪个工具
- 错误处理:工具调用失败时,将错误信息返回给模型,让它自行调整
- 权限控制:区分只读和写入操作,敏感操作需要人工确认
python
# 工具定义示例
tools = [
{
"name": "search_web",
"description": "搜索互联网获取最新的信息。参数 query 为搜索关键词。",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "搜索关键词"}
},
"required": ["query"]
}
},
{
"name": "execute_python",
"description": "在沙箱中执行 Python 代码并返回结果。",
"parameters": {
"type": "object",
"properties": {
"code": {"type": "string", "description": "要执行的 Python 代码"}
},
"required": ["code"]
}
}
]
3.3 反思机制(Reflection)
反思是 Agentic Workflow 区别于传统自动化的最关键特征。它让 Agent 能够自我审视输出质量,并在发现问题时主动修正。
反思的三个层次:
- 表层反思:检查输出是否满足格式要求(如 JSON 是否合法、字数是否达标)
- 逻辑反思:检查推理链条是否有漏洞、前后是否矛盾
- 结果反思:执行结果反馈后,评估是否达到了预期目标
python
# 反思循环的简化实现
def agentic_loop(task, max_iterations=5):
result = None
for i in range(max_iterations):
# 执行
result = agent.execute(task)
# 反思
critique = agent.reflect(result, task)
if critique.score > 0.9:
break
# 修正
task = critique.suggestions
return result
一个典型的反思 Prompt 模板:
请审视你刚才的输出,回答以下问题:
1. 是否完整回答了用户的原始问题?
2. 是否有任何事实性错误或遗漏?
3. 代码示例是否可以正常运行?
4. 是否有更优的解决方案?
如果发现问题,请直接给出修正后的版本。
3.4 多智能体协作(Multi-Agent)
当任务变得非常复杂时,单个 Agent 可能难以胜任。多智能体协作的思路是:让多个专门的 Agent 各司其职,通过通信和协调共同完成任务。
常见协作模式:
- 顺序流水线:Agent A → Agent B → Agent C,每个 Agent 完成一个阶段
- 辩论模式:两个 Agent 从不同角度论证,第三个 Agent 裁决
- 层级模式:一个"管理者"Agent 分配任务给多个"执行者"Agent
- 自由协作:Agent 之间自由对话,自发形成分工
层级模式
管理者 Agent
执行者 A
执行者 B
执行者 C
辩论模式
Agent 正方
裁判 Agent
Agent 反方
顺序流水线
Agent A
Agent B
Agent C
图:三种常见的多智能体协作拓扑
多 Agent 系统的核心挑战:
- 通信协议:Agent 之间如何交换信息(共享记忆 vs 消息传递)
- 任务分配:如何自动将复杂任务分配给最合适的 Agent
- 冲突解决:当两个 Agent 给出矛盾结果时如何处理
- 成本控制:多 Agent 意味着多倍的 API 调用量
四、Agentic Workflow 的运行循环
将以上四个组件组合起来,就形成了一个经典的 Agentic 运行循环:
┌─────────────────────────────────────────┐
│ 用户输入目标 │
└─────────────────┬───────────────────────┘
▼
┌─────────────────────────────────────────┐
│ 1. Planning(规划) │
│ 分解任务、确定步骤、分配资源 │
└─────────────────┬───────────────────────┘
▼
┌─────────────────────────────────────────┐
│ 2. Action(行动) │
│ 调用工具、执行代码、查询数据 │
└─────────────────┬───────────────────────┘
▼
┌─────────────────────────────────────────┐
│ 3. Observation(观察) │
│ 收集执行结果、错误信息、外部反馈 │
└─────────────────┬───────────────────────┘
▼
┌─────────────────────────────────────────┐
│ 4. Reflection(反思) │
│ 评估结果、判断是否达标、决定下一步 │
└─────────────────┬───────────────────────┘
│
┌─────────┴─────────┐
▼ ▼
达到目标 未达到目标
│ │
▼ │
输出最终结果 ──────────┘
回到步骤 1 或 2
这个循环使得 Agent 的行为非常接近人类处理复杂问题的方式:做一点、看一下、想一想、调整一下、继续做。
五、一个最小可运行的 Agent 示例
下面是一个不到 100 行的 Agentic Workflow 最小实现,展示了 Planning → Tool Use → Reflection 的完整循环:
python
import json
import re
from openai import OpenAI
client = OpenAI()
# 定义工具
def calculator(expression: str) -> str:
"""安全地计算数学表达式"""
try:
# 只允许数字和基本运算符
if not re.match(r'^[\d\+\-\*\/\(\)\.\s]+$', expression):
return "错误:表达式包含非法字符"
result = eval(expression)
return str(result)
except Exception as e:
return f"计算错误:{str(e)}"
TOOLS = [
{
"type": "function",
"function": {
"name": "calculator",
"description": "计算数学表达式,支持加减乘除和括号",
"parameters": {
"type": "object",
"properties": {
"expression": {
"type": "string",
"description": "数学表达式,如 '(3+5)*2'"
}
},
"required": ["expression"]
}
}
}
]
def run_agent(user_input: str, max_steps: int = 5):
"""运行一个简单的 Agentic 循环"""
messages = [
{"role": "system", "content": """你是一个具备计算能力的数学助手。
请遵循以下工作流程:
1. 分析问题,制定解题步骤
2. 必要时使用计算器工具
3. 每次计算后反思结果是否合理
4. 给出最终答案前,确认所有步骤都已完成
重要:每一步只做一件事,不要试图一次完成所有计算。"""},
{"role": "user", "content": user_input}
]
for step in range(max_steps):
print(f"\n--- Step {step + 1} ---")
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=TOOLS,
tool_choice="auto"
)
assistant_msg = response.choices[0].message
# 如果模型想调用工具
if assistant_msg.tool_calls:
tool_call = assistant_msg.tool_calls[0]
func_name = tool_call.function.name
func_args = json.loads(tool_call.function.arguments)
print(f"🔧 调用工具: {func_name}({func_args})")
# 执行工具
if func_name == "calculator":
result = calculator(func_args["expression"])
else:
result = f"未知工具: {func_name}"
print(f"📊 工具返回: {result}")
# 将工具调用和结果加入对话历史
messages.append(assistant_msg)
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": result
})
# 如果模型给出文本回复(不再调用工具)
else:
content = assistant_msg.content
print(f"💬 Agent: {content[:200]}...")
# 检查是否是最终答案
if "最终答案" in content or "答案是" in content:
return content
messages.append(assistant_msg)
messages.append({
"role": "user",
"content": "请继续,如果已经完成请给出最终答案。"
})
return "Agent 在最大步数内未能完成任务。"
# 运行示例
result = run_agent("一个长方形的长是 12 米,宽是 8 米,请计算它的面积和周长。")
print(f"\n=== 最终结果 ===\n{result}")
运行这个示例,你会发现 Agent 会先规划步骤、分别计算面积和周长、然后给出最终答案------而不是一次性把所有计算塞在一起。
六、Agentic Workflow 的适用场景
并不是所有场景都需要 Agentic Workflow。什么时候该用、什么时候不该用,是一个重要的判断力。
适合的场景
| 场景 | 为什么适合 |
|---|---|
| 复杂多步推理 | 需要分解任务、中间验证 |
| 需要外部信息 | 需要搜索、查数据库、调 API |
| 输出质量要求高 | 反思和迭代能显著提升质量 |
| 任务变化大 | 无法预定义所有路径 |
| 需要代码执行 | 生成代码并验证结果 |
不适合的场景
| 场景 | 为什么不适合 |
|---|---|
| 简单分类/翻译 | 零样本就够,加 Agentic 画蛇添足 |
| 延迟敏感 | 多轮调用导致响应变慢 |
| 成本敏感 | 多轮调用 = 多倍 Token 消耗 |
| 严格确定性要求 | Agent 有随机性,行为不完全可控 |
经验法则:如果一个中级工程师需要 30 分钟以上才能完成的任务,那么它可能适合用 Agentic Workflow 来处理。
七、主流框架一览
在进入实战之前,先了解一下目前主流的 Agentic Workflow 框架:
| 框架 | 特点 | 适合场景 |
|---|---|---|
| LangGraph | 基于状态图,精细控制力强 | 复杂、定制化的工作流 |
| CrewAI | 多 Agent 角色扮演,上手简单 | 需要多 Agent 协作的场景 |
| AutoGen(微软) | 对话驱动,支持人机协作 | 对话式多 Agent 场景 |
| Dify | 低代码/可视化,拖拽式搭建 | 非技术人员、快速原型 |
| Coze(字节) | 一站式 Agent 开发平台 | 快速部署到聊天平台 |
关于这些框架的深入对比和选型建议,请关注本系列的后续文章。
七、总结
本文从零开始,建立了对 Agentic Workflow 的认知基础:
- Agentic Workflow 的本质:让 LLM 从"一步到位"变成"多步迭代",通过规划、使用工具、反思和协作来提升完成质量
- 四大核心组件:Planning(规划)、Tool Use(工具调用)、Reflection(反思)、Multi-Agent(多智能体协作)
- 运行循环:Planning → Action → Observation → Reflection,循环往复直到达成目标
- 适用判断:不是什么场景都需要 Agentic,简单任务用零样本更高效