AI Agent 深度解析:从概念到主流架构全指南
2023 年,大多数人第一次接触 ChatGPT,发现它能写代码、写文章、回答复杂问题——我们惊叹于它的「知识量」。
一、开篇:你用的还是「问答机」,别人已经在用「员工」
2023 年,大多数人第一次接触 ChatGPT,发现它能写代码、写文章、回答复杂问题——我们惊叹于它的「知识量」。
但如果你今天打开一个 AI 编程助手,告诉它「帮我做一个用户注册功能」,它会:先分析需求,然后搜索你的项目结构,再按照你的代码风格写出完整实现,运行测试,发现报错,自动修复,最后告诉你「完成了,已通过测试」。
这两种体验之间,有一道清晰的分界线。
前者是 AI 模型:你问,它答,一问一答,完全依赖你的提问质量。
后者是 AI Agent:你给目标,它自主规划步骤,调用工具,持续行动,直到完成任务。
这个区别,跟模型本身聪不聪明关系不大,架构变了。
二、AI Agent 是什么:四个要素定义本质
「Agent」这个词来自拉丁语 agere,意思是「行动者」。在 AI 领域,Agent 特指能够自主感知环境、做出决策并采取行动的系统。
一个完整的 AI Agent,必须具备四个要素:
1. 感知(Perception)
Agent 需要接收信息——用户的指令、文件内容、搜索结果、代码运行输出……它不只是接收一个问题,而是持续从环境中获取信息。
2. 记忆(Memory)
Agent 需要记住做过什么、发现了什么、当前处于任务的哪个阶段。没有记忆,每一步都是重头开始,无法完成多步骤任务。
3. 规划(Planning)
面对复杂目标,Agent 需要把目标分解成步骤,判断先做什么后做什么,遇到障碍时调整计划。
4. 行动(Action)
Agent 能够真正改变世界的状态——调用 API、执行代码、写入文件、发送消息……而不只是输出文字。
普通 AI 模型只有「感知」和「输出」,缺少持久记忆、规划能力和真实行动。

三、三次进化跃迁:理解 Agent 的最短路径
要理解 AI Agent,有一个最简洁的框架——AI 的三次进化跃迁。
第一跃:工具(Tool)
早期 AI 系统,比如图像识别 API、翻译接口,本质是输入→输出的单次函数调用。你提供一张图片,它告诉你图里有什么;你输入一段英文,它输出中文。
没有上下文,没有记忆,没有自主性。每次调用都是全新开始。
第二跃:助手(Assistant)
以 ChatGPT 为代表的对话式 AI,引入了多轮对话和上下文记忆。你可以说「帮我改得更正式一点」,它知道「改什么」。
更聪明,但还是「响应者」——你不说话,它就停在那里。每一个下一步,都需要你来触发。
第三跃:Agent(自主行动者)
这是质变,不是量变。
你给它一个目标,它会自主拆解成子任务,决定调用哪些工具,根据执行结果调整计划,循环迭代直到完成——全程你不需要插手每一步。就像从「雇一个人来回答你问题」,变成「雇一个人来帮你把事情做完」。
这两者的差异不只是效率,而是你在这件事上需要投入多少注意力。
理解了这三次跃迁,就理解了为什么 AI Agent 的架构会如此多样——不同的任务类型,需要不同的「做事方式」。

四、主流架构全景:八种不同的「做事方式」
每种 AI Agent 架构,都在回答同一个问题:「Agent 应该以什么样的流程来完成任务?」
下面按从简到复的演化逻辑逐一介绍。架构之间并不互斥,生产中的 Agent 系统通常是几种架构的组合。

架构 1:ReAct(推理 + 行动交替)
ReAct 是 2022 年 Google 提出的框架,名称来自 Reasoning + Acting。它解决的问题很具体:Agent 要么只推理不行动(空谈),要么只行动不推理(乱做)。ReAct 把这两者编织在一起,每一步包含三个阶段:
Thought: 我现在需要查一下这个产品的价格
Action: search("产品名称 价格")
Observation: 搜索结果返回 $299
Thought: 价格已找到,下一步需要计算折扣后的价格
Action: calculate(299 * 0.85)
Observation: 254.15
...
「思考 → 行动 → 观察」循环,直到任务完成。
这是目前使用最广泛的 Agent 模式,适合工具调用次数不多、任务流程相对线性的场景:问答增强、搜索辅助、简单数据查询。
代表框架:LangChain 的 AgentExecutor、OpenAI 的 Function Calling 模式都内置了 ReAct 逻辑。

图片来源:ReAct: Synergizing Reasoning and Acting in Language Models(Yao et al., Google Research, 2022)
架构 2:Plan-and-Execute(先规划,再执行)
ReAct 的「走一步看一步」在简单任务上很好用,但遇到步骤多、依赖关系复杂的任务,容易走弯路。
Plan-and-Execute 的做法是先把地图画出来,再出发:
阶段一(规划):
输入:用户目标
输出:完整执行计划
[步骤1] 搜索竞品信息
[步骤2] 整理对比表格
[步骤3] 撰写分析报告
[步骤4] 生成摘要
阶段二(执行):
按计划逐步执行,每步完成后更新状态
规划者和执行者可以是同一个模型,也可以是不同模型——规划用能力强的,执行用成本低的,这样整体成本可控。
适合市场调研、代码重构、多阶段内容生产等任务。
代表框架:LangChain 的 PlanAndExecute、BabyAGI 的早期版本。
架构 3:Reflection(反思 / 自我批评)
Agent 第一次输出的结果往往不够好。问题是,怎么让它知道哪里不够好?
Reflection 架构引入一个「批评者」角色(可以是同一个模型扮演不同角色),对 Agent 的输出进行评估并提出改进意见:
生成 → 批评 → 修改 → 批评 → 修改 → ... → 输出
批评的维度可以是代码正确性、内容准确性、格式规范性、逻辑连贯性等。
这个架构特别适合对输出质量要求高的场景——代码生成、文章写作、方案设计。迭代几轮之后,输出质量通常会有明显提升。不过迭代次数需要控制,否则 token 消耗会快速上升,而且边际收益递减。
代表框架:Reflexion(学术论文框架)、LATS(Language Agent Tree Search)、LangGraph 自定义循环。
架构 4:Tool Use / Function Calling(工具调用中心)
没有工具调用能力,Agent 只能输出文字,无法真正改变外部世界的状态。
这个架构赋予 Agent 一个「工具箱」,Agent 根据任务需求自主选择调用哪些工具:
tools = [
search_web, # 网络搜索
read_file, # 读取文件
write_file, # 写入文件
run_python, # 执行 Python 代码
call_api, # 调用外部 API
send_email, # 发送邮件
]
# Agent 自主决定:现在应该调用 search_web,参数是 "xxx"现代大模型(GPT-4、Claude、Gemini)都原生支持 Function Calling。与其说这是一种独立架构,不如说它是所有其他架构的基础设施——几乎没有哪个 Agent 系统不需要工具调用。
代表框架:OpenAI Function Calling、Anthropic Tool Use、LangChain Tools、Semantic Kernel Plugins。
架构 5:Memory-Augmented(记忆增强)
Agent 每次启动都是全新状态,无法积累经验,无法记住用户偏好——就像每天早上都要重新认识你的同事。
记忆增强架构构建多层记忆系统:
短期记忆(Working Memory):
当前对话的上下文,存在 prompt 里,会话结束消失
长期记忆(Long-term Memory):
向量数据库(如 Chroma、Pinecone、Weaviate)
存储历史经验、用户偏好、知识积累
通过语义检索按需取用
外部记忆(External Memory):
文件、数据库、知识库
结构化信息的持久存储
关键技术是 RAG(检索增强生成):把相关记忆检索出来放进 prompt,让 Agent 像「有经验的老员工」一样工作。
代表框架:Mem0、LangChain Memory 模块、MemGPT、自定义 RAG 管道。
架构 6:Multi-Agent 协作(多 Agent 角色分工)
一个 Agent 承担所有职责,既要规划又要执行又要检查,在复杂任务上会力不从心。更实际的做法是组建团队:
用户需求
↓
产品经理 Agent(需求分解)
↓
开发 Agent(代码实现) ←→ 测试 Agent(质量检查)
↓
文档 Agent(撰写文档)
Agent 之间通过消息传递协调,可以是流水线(顺序执行)或网状结构(动态交互)。
这个架构的上限很高,但也最难调。多个 Agent 协作时,错误传播的速度比单 Agent 快得多——一个 Agent 的输出错了,下游全受影响。适合可以明确拆分角色、且每个角色的任务边界清晰的场景。
代表框架:CrewAI(最流行的多 Agent 框架之一,角色定义简洁)、AutoGen(微软出品,多 Agent 对话协作)、OpenAI Swarm(轻量级多 Agent 实验框架)。
架构 7:Hierarchical(层级规划)
多 Agent 平级协作时,协调本身会变成问题。谁来决定优先级?谁来处理冲突?
层级架构的答案是:主 Agent(Orchestrator)负责全局规划和任务分配,子 Agent(Workers)专注执行:
主 Agent(Orchestrator)
├── 子 Agent A:负责数据收集
├── 子 Agent B:负责分析处理
│ ├── 子子 Agent B1:统计分析
│ └── 子子 Agent B2:可视化
└── 子 Agent C:负责报告撰写
主 Agent 不执行具体任务,只负责协调和监督。子任务可以高度并行,整体效率比流水线高。
代表框架:AutoGen 的分组聊天(GroupChat)支持层级结构;LangGraph 可以手动构建层级图;CrewAI 的 Manager 模式。
架构 8:Graph-based Workflow(图结构工作流)
前面几种架构用代码描述执行逻辑时,都会遇到同一个问题:条件分支、循环、人工干预的处理越来越复杂,代码越来越难维护,也很难知道 Agent 在任意时刻处于哪个状态。
LangGraph 的做法是把执行流程建模为有向图——节点是状态(State),边是条件(Condition):
# LangGraph 示例(简化)
from langgraph.graph import StateGraph
graph = StateGraph(AgentState)
# 定义节点(状态处理函数)
graph.add_node("planner", plan_step)
graph.add_node("executor", execute_step)
graph.add_node("reviewer", review_step)
# 定义边(转换条件)
graph.add_edge("planner", "executor")
graph.add_conditional_edges(
"reviewer",
should_continue, # 判断是否需要继续
{
"continue": "executor", # 继续执行
"end": END # 任务完成
}
)可视化、可控、可调试——你可以清晰看到 Agent 在图上的位置,在任何节点插入人工干预,在任何边添加条件判断。
这是目前构建生产级 Agent 系统的主流选择,上手比其他框架陡一些,但一旦系统复杂起来,这种可控性的价值会非常明显。
代表框架:LangGraph(LangChain 团队出品)。

图片来源:LangGraph Studio: The First Agent IDE(LangChain 官方博客)
五、代表框架对比:选哪个?
| 框架 | 最擅长 | 上手难度 | 适用场景 |
|---|---|---|---|
| LangChain | 工具集成、RAG 管道 | 中等 | 快速原型、工具调用 |
| LangGraph | 复杂流程控制、生产部署 | 较高 | 生产级 Agent 系统 |
| AutoGen | 多 Agent 对话协作 | 中等 | 代码生成、研究辅助 |
| CrewAI | 角色分工团队协作 | 低 | 内容创作、流程自动化 |
| OpenAI Swarm | 轻量多 Agent 实验 | 低 | 学习 / 原型验证 |
| Mem0 | 长期记忆管理 | 低 | 个人助手、记忆增强 |

数据来源:GitHub Star History(star-history.com),统计截至 2026 年 6 月
选择框架的核心问题:你的任务是否已经稳定且明确? 稳定明确 → LangGraph(可控性优先);还在探索阶段 → CrewAI 或 AutoGen(上手快)。
六、实战选型:三问法 + 最小骨架
面对一个新的 AI Agent 需求,用这三个问题来选择架构:

第一问:任务是单步还是多步?
- 单步或少量步骤 → Tool Use + ReAct 就足够
- 步骤多、逻辑复杂 → Plan-and-Execute 或 Graph-based
第二问:需要几个「专家」协作吗?
- 一个 Agent 能搞定 → 单 Agent 架构(ReAct / Plan-and-Execute)
- 需要多角色分工 → Multi-Agent(CrewAI / AutoGen)
- 有明确主从关系 → Hierarchical
第三问:这是原型还是生产系统?
- 快速验证想法 → CrewAI、OpenAI Swarm,上手快
- 生产部署、需要可靠性 → LangGraph,可控性最强
最小可用骨架(以 LangGraph 为例):
from langgraph.graph import StateGraph, END
from typing import TypedDict, List
# 定义状态
class AgentState(TypedDict):
messages: List[str]
task: str
result: str
iteration: int
# 定义节点函数
def think(state: AgentState) -> AgentState:
"""思考当前任务的下一步"""
# 调用 LLM 进行推理
...
return state
def act(state: AgentState) -> AgentState:
"""执行工具调用"""
# 执行具体操作
...
return state
def should_continue(state: AgentState) -> str:
"""判断是否需要继续迭代"""
if state["iteration"] >= 5 or state["result"]:
return "end"
return "continue"
# 构建图
graph = StateGraph(AgentState)
graph.add_node("think", think)
graph.add_node("act", act)
graph.set_entry_point("think")
graph.add_edge("think", "act")
graph.add_conditional_edges("act", should_continue, {
"continue": "think",
"end": END
})
# 编译并运行
agent = graph.compile()
result = agent.invoke({"task": "你的任务描述", "messages": [], "result": "", "iteration": 0})30 行代码建立了完整的 Agent 运行框架:状态流转、条件分支、循环控制都在这里面了。
七、边界与局限:Agent 还不是万能的
在真正部署 AI Agent 之前,有几个问题值得认真对待。
幻觉风险没有消失
Agent 的每一步都依赖 LLM 的推理,而 LLM 仍然可能产生错误信息。更麻烦的是,在多步骤任务中,早期的一个小错误可能在后续步骤中被放大,等你发现时已经跑偏很远。关键操作必须有人工验证点,这一点目前没有什么好的自动化替代方案。
成本比你想象的高
复杂 Agent 系统每完成一个任务,可能调用 LLM 数十次甚至更多。我们在一些实际项目里看到,一个看起来「简单」的任务,Agent 版本的 token 消耗是单次调用的 20 倍以上。成本控制需要从架构层面就开始考虑,而不是上线后再想办法。
长任务还是容易跑偏
说实话,这是目前 Agent 领域最难解决的问题之一。当任务步骤超过一定数量,Agent 会忘记最初目标、陷入循环,或者做出不相关的操作。目前还没有特别系统性的解法,更多是靠各种工程手段(强化中间检查点、限制最大步骤数、人工介入)来缓解。
工具调用的安全边界
赋予 Agent 写文件、发邮件、执行代码等能力时,权限边界一定要仔细设计。最小权限原则同样适用于 Agent——只给它完成当前任务所需要的权限,不要图方便一次给完。
八、从全自动到人机协作
一开始大家对 Agent 的期待是「全自动」:给我一个目标,我帮你做完所有事。这个理想在某些受控场景下确实已经实现了,比如代码审查、数据报告生成、标准化的内容处理流程。
但在模糊的、高风险的真实业务中,「全自动」往往意味着「不可控」。图结构工作流(LangGraph)的兴起,很大程度上是因为它让人工干预节点变得很自然——你可以在任意节点暂停,让人来审核后再继续。
这不是 Agent 能力不够的退而求其次,而是一种更务实的系统设计:把 Agent 擅长的部分(高速信息处理、重复性操作、多工具并发调用)交给 Agent,把 Agent 容易出错的部分(价值判断、异常处理、目标设定)留给人。
找到这个分工点,比在「用不用 Agent」这个问题上纠结更有价值。
延伸阅读
- 搜索「LangGraph documentation」,重点看 State Management 和 Human-in-the-loop 部分
- 搜索「ReAct: Synergizing Reasoning and Acting in Language Models」,阅读原始论文
- 搜索「CrewAI quickstart」,30 分钟快速体验多 Agent 协作
- 搜索「AutoGen Microsoft Research」,了解微软的多 Agent 研究方向
- 搜索「Mem0 AI memory」,了解 Agent 长期记忆的最新实现