AI Agent 设计模式总结

Agent 不是一个单一的概念,而是一类系统的统称。在实际工程中,不同的任务类型对应不同的 Agent 设计模式。这篇笔记整理了几种主流的 Agent 架构模式。


一、ReAct 模式

ReAct = Reasoning + Acting,是目前最经典的 Agent 模式。

核心思路: LLM 在每一步都先”思考”(Reasoning),再”行动”(Acting),行动的结果作为观察(Observation)反馈回来,形成循环。

思考(Thought): 用户想知道最新的 AI 新闻
行动(Action): search_web("2026年AI最新动态")
观察(Observation): [搜索结果返回...]
思考(Thought): 已经得到结果,可以回答了
最终回答(Answer): ...

适用场景: 需要多步信息收集和推理的任务,如信息检索、数据分析助手。

优点: 推理过程透明、可解释性强
缺点: Token 消耗多,循环次数难以控制


二、Plan-and-Execute 模式

核心思路: 把任务拆成两个阶段——先由 Planner 制定完整计划,再由 Executor 逐步执行。

用户任务 → [Planner LLM] → 生成步骤列表

步骤1: 搜索背景资料
步骤2: 整理关键信息
步骤3: 撰写报告

[Executor]
逐步执行每个步骤

与 ReAct 的区别在于,Plan 阶段是一次性规划,而不是边做边想。

适用场景: 长任务、需要全局规划的场景,如自动写报告、代码生成项目。

代码示例(伪代码):

# Planner:生成计划
plan = planner_llm.invoke(f"请为以下任务制定分步计划:{task}")

# Executor:逐步执行
for step in plan.steps:
result = executor.run(step)
memory.add(result)

final_answer = summarizer.invoke(memory.get_all())

三、Multi-Agent 协作模式

核心思路: 多个专职 Agent 各司其职,由 Supervisor 统一调度。

           ┌──────────────────┐
│ Supervisor │
│ (路由决策) │
└────────┬─────────┘

┌─────────────┼─────────────┐
↓ ↓ ↓
[搜索Agent] [代码Agent] [写作Agent]
负责信息检索 负责代码生成 负责文档撰写

Supervisor 的核心逻辑:

def supervisor(state):
# 根据当前任务决定派给哪个 Agent
decision = llm.invoke([
SystemMessage("你是协调员,决定下一步由哪个Agent执行"),
*state["messages"]
])
return {"next": decision.content} # "search" | "coder" | "writer" | "FINISH"

适用场景: 复杂的企业级工作流,如客服系统、自动化研究助手。


四、Reflection 反思模式

核心思路: Agent 生成初稿后,由专门的 Critic Agent 进行评审,生成反馈,再由原 Agent 根据反馈修改,迭代直到质量满足要求。

[Generator Agent] → 生成初稿
↑ ↓
修改优化 [Critic Agent]
↑ ↓
└──── 反馈意见 ───┘

代码示例:

draft = generator.invoke(task)

for i in range(max_iterations):
feedback = critic.invoke(f"请评审以下内容并给出改进建议:\n{draft}")

if "满足要求" in feedback:
break

draft = generator.invoke(f"根据以下反馈修改内容:\n{feedback}\n\n原内容:{draft}")

return draft

适用场景: 对输出质量要求高的场景,如论文写作、代码审查。


五、Tool Use 工具调用

这是所有 Agent 模式的基础能力。现代 LLM 通过 Function Calling 机制调用外部工具。

工具定义示例(OpenAI 格式):

tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称,如'北京'"
}
},
"required": ["city"]
}
}
}
]

常见工具类型:

工具类型 用途 示例
搜索工具 获取实时信息 Tavily、Bing Search
代码执行 运行代码 Python REPL
数据库查询 读取结构化数据 SQL 执行器
API 调用 与外部服务交互 发邮件、查天气
文件操作 读写文件 读 PDF、写 CSV

六、记忆(Memory)系统

Agent 的记忆系统分为四种类型:

┌─────────────────────────────────────────────┐
│ Memory 层次 │
├─────────────────────────────────────────────┤
│ Sensory Memory │ 当前输入(本次对话消息) │
│ Short-term │ 对话历史(最近N轮) │
│ Long-term │ 持久化存储(向量数据库) │
│ Episodic │ 过去任务的经验记录 │
└─────────────────────────────────────────────┘

向量记忆实现示例:

from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings

# 存储记忆
vectorstore = Chroma(embedding_function=OpenAIEmbeddings())
vectorstore.add_texts(["用户喜欢简洁的回答", "用户是一名Python开发者"])

# 检索相关记忆
relevant_memories = vectorstore.similarity_search(query, k=3)

总结

模式 核心特点 适用场景
ReAct 边思考边行动 信息检索、问答
Plan-and-Execute 先规划后执行 长任务、复杂项目
Multi-Agent 多角色协作 企业工作流
Reflection 生成+评审迭代 高质量内容生成

实际项目中这些模式往往组合使用,比如用 Multi-Agent 框架搭建系统,每个子 Agent 内部用 ReAct 驱动,输出阶段加上 Reflection 保证质量。