Agent 设计模式全解析
1. 概述
本文深入解析 LLM Agent 的核心设计模式,涵盖 ReAct、Plan and Solve、REWOO、LLMCompiler、Reflection 系列及 Storm 等主流架构。通过图解与代码逻辑梳理,帮助开发者理解如何将人类思维模式转化为结构化 Prompt,从而构建高效的智能体应用。
2. ReAct 模式
ReAct (Reasoning + Acting) 是 LLM Agent 的开创性模式,发表于 2022 年 10 月。其核心在于让 LLM 学会使用工具,将推理(Reasoning)与行动(Acting)交替进行。
2.1 ReAct 原理
在没有 ReAct 之前,Reasoning 和 Act 往往是分割的。ReAct 引入了 Observation 环节,形成 Thought -> Action -> Observation 的循环结构。这相当于让 Agent 维持短期记忆,每次执行行动后都有'碎碎念'来评估是否达到目的。

2.2 ReAct 实现逻辑
本质上,所有 Agent 设计模式都是将人类的思维、管理模式以结构化 Prompt 的方式告诉大模型来进行规划,并调用工具执行,且不断迭代。
核心步骤:
- 生成提示词:合并预设的 ReAct 模板(Question->Thought->Action->Observation)与用户问题。
- 调用大模型:生成 Thought 和 Action。通过 Stop Token 控制模型在生成 Observation 前停止输出。
- 调用外部工具:利用 Function Calling 将自然语言 Action 转换为 API 接口调用。
- 生成 Observation:API 返回结果后,将其转换为自然语言作为 Observation。
- 迭代或完成:将 Observation 输入给大模型,重复步骤 2-4,直至 Action 为 Finish。
代码示例 (LangChain 风格):
from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
# 定义工具
def search(query):
return "搜索结果:..."
tools = [
Tool(
name="Search",
func=search,
description="用于搜索信息"
)
]
# 初始化 Agent
agent = initialize_agent(
tools,
OpenAI(),
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
# 执行任务
response = agent.run()
(response)










