Agent 范式革命:从 Prompt 到 Autonomous Agent 的完整演进路径
▎开篇导语
2023 年 AutoGPT 横空出世,AI 圈第一次集体意识到:**大模型不再只是「问答机器」,而是可以自主规划、调用工具、持续执行任务的「数字员工」。** 三年过去,Agent 已经从概念走向工程化。这篇文章带你走完从 Prompt 到 Multi-Agent 的完整演进路径,并手把手实现一个可运行的 ReAct Agent。
▎一、演进全景:六大范式一图看懂
在进入代码之前,先理清 LLM 应用的演进全景:
| 范式 | 核心思想 | 代表工作 | 适用场景 | 核心局限 |
|---|---|---|---|---|
| **Prompt** | 单轮指令,零推理 | GPT-3 / 3.5 | 简单问答 | 无状态,无法多步 |
| **CoT** | 显式思维链 | Wei et al. 2022 | 数学推理 | 单轮,易幻觉 |
| **ReAct** | 推理 + 行动交织 | Yao et al. 2022 | 工具调用 | 长链路易偏 |
| **Reflexion** | 自我反思迭代 | Shinn et al. 2023 | 代码生成 | 反思成本高 |
| **Plan-Execute** | 先规划后执行 | LangGraph | 长流程任务 | 规划错误传播 |
| **Multi-Agent** | 多角色协作 | AutoGen / CrewAI | 复杂协作 | 通信开销大 |
**核心洞察:** Agent 的真正革命不在于模型有多聪明,而在于**结构化推理 + 工具调用 + 记忆机制**三件套的工程化组合。
▎二、核心范式深度解析
2.1 Chain-of-Thought:教会模型「思考」
Chain-of-Thought(CoT)是 Agent 思想的奠基之作。 它让模型在给出最终答案前,先生成一条「思考路径」,从而显著提升推理能力。
一个经典的 Few-shot CoT 示例:
python
prompt = """
Q: 小明有 5 个苹果,吃了 2 个,又买了 3 个,给了妹妹 1 个。还剩几个?
A: 让我一步步想:
1. 初始:5 个
2. 吃了 2 个 → 5 - 2 = 3 个
3. 买了 3 个 → 3 + 3 = 6 个
4. 给了妹妹 1 个 → 6 - 1 = 5 个
所以还剩 5 个。
Q: 商店有 23 个球,卖掉 12 个,又进货 8 个,又卖掉 5 个。还剩几个?
A:
"""
**论文出处:** Chain-of-Thought Prompting Elicits Reasoning in Large Language Models(https://arxiv.org/abs/2201.11903) --- Wei et al., NeurIPS 2022
2.2 ReAct:让 Agent 学会「边想边做」
ReAct(Reason + Act) 是 Agent 范式的里程碑。它不再让模型「一步到终点」,而是把思考(Thought) 和**行动(Action)**交织成一个迭代循环:
text
Thought ① → Action ① → Observation ①
↓
Thought ② → Action ② → Observation ②
↓
... 循环往复 ...
↓
Thought N → Final Answer
为什么 ReAct 如此重要?
这三个能力让它从「聊天机器人」跃迁为「工作助手」:
① 动态决策 --- 不像 CoT 一样一步锁定推理路径,ReAct 可以在每一步根据观察结果调整策略
② 工具交互 --- 原生支持调用外部工具(搜索引擎、计算器、数据库 API),不再封闭在模型内部
③ 可解释性 --- 推理轨迹(Thought → Action → Observation)完整记录,便于调试和审计
2.3 Reflexion:给 Agent 装上「后视镜」
Reflexion 在 ReAct 的基础上增加了一个关键能力:自我反思。 任务执行完后,Agent 不是简单输出结果就结束,而是进入一个三段式反思循环:
| 阶段 | 角色 | 职责 |
|---|---|---|
| **Actor** | 执行者 | 尝试完成用户指定的任务 |
| **Evaluator** | 审查者 | 判断执行结果是否符合预期 |
| **Self-Reflection** | 反思者 | 总结失败原因,写成「反思文本」,存入记忆 |
**关键数据:** 在 HumanEval 代码生成基准上,Reflexion 比普通 ReAct 提升了**超过 30 分**,尤其在需要反复试错的代码修复场景中表现突出。
2.4 Plan-and-Execute:先谋后动,步步为营
Plan-and-Execute 是目前工业界落地最成熟的 Agent 范式。 它把任务拆成三个独立阶段:
Planner(规划者) --- 接收用户输入,输出一个完整的、可执行的任务计划,每一步都有明确的输入输出规范
Executor(执行者) --- 按计划逐步执行,每步产出中间结果
Replanner(重规划者) --- 监控执行状态,一旦某步偏离预期,立即修正后续计划
**代表产品:** LangGraph 的 `plan_and_execute` Agent、AutoGPT、BabyAGI,以及大量企业内部 RPA + LLM 的混合工作流。
▎三、实战:用 LangChain 写一个 ReAct Agent
理论走完,代码说话。下面用 LangChain + 通义千问(兼容任意 OpenAI 格式 API)实现一个能查天气、做计算的 ReAct Agent。
3.1 环境准备
bash
# 安装依赖
pip install langchain langchain-openai python-dotenv
.env 文件:
bash
OPENAI_API_KEY=sk-xxxxxxxx
OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
MODEL_NAME=qwen-plus
3.2 定义工具函数
**设计原则:** docstring 是 Agent 理解工具的唯一途径------写清楚「什么时候用」「参数是什么」「返回值是什么」。
python
# tools.py
from langchain.tools import tool
@tool
def get_weather(city: str) -> str:
"""查询指定城市的天气。
Args:
city: 城市名称,如 "北京" 或 "上海"
"""
weather_data = {
"北京": "晴,25°C,东南风 3 级",
"上海": "多云,28°C,东风 2 级",
"深圳": "雷阵雨,31°C,东南风 4 级",
}
return weather_data.get(city, f"暂无 {city} 的天气数据")
@tool
def calculator(expression: str) -> str:
"""执行数学计算,支持加减乘除和括号。
Args:
expression: 数学表达式,如 "(23 + 12) * 8 - 5"
"""
try:
allowed = set("0123456789+-*/.() ")
if not all(c in allowed for c in expression):
return "错误:表达式包含非法字符"
return f"计算结果:{eval(expression)}"
except Exception as e:
return f"计算失败:{e}"
3.3 组装 Agent
python
# agent.py
import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain import hub
from langchain.agents import create_react_agent, AgentExecutor
from tools import get_weather, calculator
load_dotenv()
# ① 初始化 LLM
llm = ChatOpenAI(
model=os.getenv("MODEL_NAME", "qwen-plus"),
temperature=0,
base_url=os.getenv("OPENAI_BASE_URL"),
api_key=os.getenv("OPENAI_API_KEY"),
)
# ② 加载 ReAct 提示模板
prompt = hub.pull("hwchase17/react")
# ③ 组装工具
agent = create_react_agent(
llm=llm,
tools=[get_weather, calculator],
prompt=prompt,
)
# ④ 创建执行器
agent_executor = AgentExecutor(
agent=agent,
tools=[get_weather, calculator],
verbose=True, # 打印推理全过程
handle_parsing_errors=True, # 解析异常自动重试
max_iterations=5, # 防止死循环
)
3.4 运行测试
python
# main.py
from agent import agent_executor
if __name__ == "__main__":
# 测试 1:单一工具
result = agent_executor.invoke({"input": "北京今天天气怎么样?"})
print(result["output"])
# 测试 2:多步推理 + 多工具
result = agent_executor.invoke({
"input": "上海和深圳哪个城市气温高?高出多少度?"
})
print(result["output"])
verbose=True 时的完整推理日志:
text
> Entering new AgentExecutor chain...
Thought: 用户想知道北京天气,调用 get_weather 工具
Action: get_weather
Action Input: 北京
Observation: 晴,25°C,东南风 3 级
Thought: 已获取数据,可以直接回答
Final Answer: 北京今天是晴天,气温 25°C,东南风 3 级
▎四、工程避坑:五个生产级问题
| 问题 | 现象 | 解决方案 |
|---|---|---|
| **死循环** | Agent 反复调同一工具 | `max_iterations` + 重复检测 |
| **幻觉工具** | 凭空捏造工具名 | JSON Schema 约束输出 |
| **上下文爆炸** | Token 数持续暴涨 | 滑动窗口 + 摘要压缩 |
| **错误传播** | 一步错,全盘错 | Reflexion / Replanning |
| **成本失控** | 单任务烧掉几块钱 | 小模型 + 缓存 + 超时熔断 |
▎五、趋势前瞻:2026 年五大方向
① A2A 协议标准化 --- Google 牵头的 Agent-to-Agent 协议,将打通跨平台协作的「最后一公里」
② Computer Use 普及 --- Claude Computer Use、OpenAI Operator 让 Agent 直接操作真实桌面和浏览器
③ Agent Ops 独立 --- 可观测性、调试工具、评估框架、成本控制将形成独立工程赛道
④ 小模型 + 工具 --- Llama 3 / Qwen 3 7B 级别模型已能完成 80% 的 Agent 生产任务
⑤ Memory 标准化 --- 短期 / 长期 / 工作记忆的三层架构正在收敛为行业共识
▎六、总结与延伸
回顾全文,Agent 范式的演进是一条清晰的能力递进线:
CoT → 教会模型「思考」
ReAct → 教会模型「边想边做」
Reflexion → 教会模型「自我反思」
Plan-and-Execute → 教会模型「先谋后动」
Multi-Agent → 教会模型「分工协作」
**下一步学习路线:** 读论文(ReAct / Reflexion)→ 做实战(LangGraph / AutoGen / CrewAI)→ 关注前沿(A2A / Computer Use / Agent Ops)
参考资料:
-
LangChain 官方文档(https://python.langchain.com/)
-
ReAct: Synergizing Reasoning and Acting in Language Models(https://arxiv.org/abs/2210.03629)
- Reflexion: Language Agents with Verbal Reinforcement Learning(https://arxiv.org/abs/2303.11366)
- AutoGen --- Microsoft(https://github.com/microsoft/autogen)
- CrewAI --- Multi-Agent Framework(https://github.com/joaomdmoura/crewAI)
我是杰哥,专注 AI Agent 工程化与实践。如果本文对你有帮助,欢迎点赞、收藏、关注三连。下期预告:《提示词工程进阶:从零样本到结构化提示的七个层次》。