AI Agent 架构设计:从 ReAct 到 Multi-Agent 系统
agent高级
AI Engineer Roadmap2026年07月20日
什么是 AI Agent?
AI Agent(智能体)是一个能够感知环境、做出决策、执行行动的自主系统。与传统的 LLM 应用不同,Agent 能够:
- 自主规划任务步骤
- 调用外部工具(搜索、计算、API 等)
- 根据执行结果动态调整策略
- 记忆上下文和对话历史
ReAct 模式
ReAct(Reasoning + Acting)是最经典的 Agent 模式,它将推理和行动交替进行。
ReAct 循环
Thought → Action → Observation → Thought → Action → ... → Final Answer
LangGraph 实现
from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated
import operator
class AgentState(TypedDict):
messages: Annotated[list, operator.add]
next: str
def agent(state: AgentState):
# LLM 推理:决定下一步行动
response = llm.invoke([
SystemMessage(content="你是一个能使用工具的 AI 助手"),
*state["messages"]
])
return {"messages": [response]}
def tools(state: AgentState):
# 执行工具调用
last_message = state["messages"][-1]
if hasattr(last_message, "tool_calls"):
tool_results = execute_tools(last_message.tool_calls)
return {"messages": tool_results}
return {"next": "end"}
# 构建图
workflow = StateGraph(AgentState)
workflow.add_node("agent", agent)
workflow.add_node("tools", tools)
workflow.set_entry_point("agent")
workflow.add_conditional_edges(
"agent",
should_continue,
{"continue": "tools", "end": END}
)
workflow.add_edge("tools", "agent")
app = workflow.compile()
Multi-Agent 架构
当任务复杂度增加时,单一 Agent 往往不够用。Multi-Agent 系统允许多个专业化的 Agent 协作完成任务。
架构模式
1. 层级式(Hierarchical)
┌─────────────┐
│ Supervisor │ ← 任务分配与协调
│ Agent │
└──┬──────┬───┘
│ │
┌──────▼─┐ ┌──▼──────┐
│ Coder │ │Researcher│
│ Agent │ │ Agent │
└────────┘ └─────────┘
2. 对话式(Collaborative)
每个 Agent 具有同等地位,通过消息传递协作:
from langgraph.graph import MessageGraph
# 创建专家 Agent
researcher = create_agent("研究者", "搜索和分析信息")
coder = create_agent("程序员", "编写和调试代码")
reviewer = create_agent("审阅者", "检查和优化输出")
graph = MessageGraph()
graph.add_node("researcher", researcher)
graph.add_node("coder", coder)
graph.add_node("reviewer", reviewer)
graph.add_edge("researcher", "coder")
graph.add_edge("coder", "reviewer")
graph.add_edge("reviewer", "researcher")
工具系统设计
tools = [
Tool(
name="search",
func=web_search,
description="搜索互联网获取最新信息"
),
Tool(
name="calculator",
func=calculator,
description="执行数学计算"
),
Tool(
name="file_reader",
func=read_file,
description="读取本地文件内容"
),
Tool(
name="code_executor",
func=execute_code,
description="执行 Python 代码并返回结果"
),
]
记忆系统设计
Agent 需要记忆能力来维持长期任务:
class AgentMemory:
def __init__(self):
self.short_term = [] # 对话历史
self.long_term = {} # 向量化存储
def remember(self, content, importance):
"""记住重要信息"""
if importance > 0.7:
embedding = get_embedding(content)
self.long_term[content] = embedding
def recall(self, query):
"""检索相关记忆"""
query_emb = get_embedding(query)
return semantic_search(query_emb, self.long_term)
最佳实践
- 渐进式复杂度:从简单 ReAct Agent 开始,逐步增加功能
- 错误处理:Agent 执行可能失败,必须有重试和回退机制
- 安全边界:限制工具调用权限,防止意外操作
- 监控与日志:记录 Agent 的决策过程,便于调试
- 成本控制:设置 token 预算和最大步数限制
总结
构建生产级 AI Agent 需要综合考虑架构设计、工具集成、记忆管理和错误处理。核心原则是:
- 保持简单(KISS)
- 渐进增强
- 可观察性优先
- 安全的默认行为