开发者Club开发者Club

AI Agent 深度解析:从概念到主流架构全指南

2023 年,大多数人第一次接触 ChatGPT,发现它能写代码、写文章、回答复杂问题——我们惊叹于它的「知识量」。

开发者Club
阅读 收藏

一、开篇:你用的还是「问答机」,别人已经在用「员工」

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 模型只有「感知」和「输出」,缺少持久记忆、规划能力和真实行动。

AI Agent 四要素框架图:感知、记忆、规划、行动

三、三次进化跃迁:理解 Agent 的最短路径

要理解 AI Agent,有一个最简洁的框架——AI 的三次进化跃迁

第一跃:工具(Tool)

早期 AI 系统,比如图像识别 API、翻译接口,本质是输入→输出的单次函数调用。你提供一张图片,它告诉你图里有什么;你输入一段英文,它输出中文。

没有上下文,没有记忆,没有自主性。每次调用都是全新开始。

第二跃:助手(Assistant)

以 ChatGPT 为代表的对话式 AI,引入了多轮对话和上下文记忆。你可以说「帮我改得更正式一点」,它知道「改什么」。

更聪明,但还是「响应者」——你不说话,它就停在那里。每一个下一步,都需要你来触发。

第三跃:Agent(自主行动者)

这是质变,不是量变。

你给它一个目标,它会自主拆解成子任务,决定调用哪些工具,根据执行结果调整计划,循环迭代直到完成——全程你不需要插手每一步。就像从「雇一个人来回答你问题」,变成「雇一个人来帮你把事情做完」。

这两者的差异不只是效率,而是你在这件事上需要投入多少注意力。

理解了这三次跃迁,就理解了为什么 AI Agent 的架构会如此多样——不同的任务类型,需要不同的「做事方式」。

AI 三次进化跃迁:从工具到助手到 Agent

四、主流架构全景:八种不同的「做事方式」

每种 AI Agent 架构,都在回答同一个问题:「Agent 应该以什么样的流程来完成任务?」

下面按从简到复的演化逻辑逐一介绍。架构之间并不互斥,生产中的 Agent 系统通常是几种架构的组合。

8 种主流 AI 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 与其他方法对比(HotpotQA 任务)

图片来源: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 工作流可视化界面

图片来源:LangGraph Studio: The First Agent IDE(LangChain 官方博客)

五、代表框架对比:选哪个?

框架最擅长上手难度适用场景
LangChain工具集成、RAG 管道中等快速原型、工具调用
LangGraph复杂流程控制、生产部署较高生产级 Agent 系统
AutoGen多 Agent 对话协作中等代码生成、研究辅助
CrewAI角色分工团队协作内容创作、流程自动化
OpenAI Swarm轻量多 Agent 实验学习 / 原型验证
Mem0长期记忆管理个人助手、记忆增强

LangGraph vs AutoGen vs CrewAI GitHub Star 趋势对比

数据来源:GitHub Star History(star-history.com),统计截至 2026 年 6 月

选择框架的核心问题:你的任务是否已经稳定且明确? 稳定明确 → LangGraph(可控性优先);还在探索阶段 → CrewAI 或 AutoGen(上手快)。

六、实战选型:三问法 + 最小骨架

面对一个新的 AI Agent 需求,用这三个问题来选择架构:

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 长期记忆的最新实现

评论

登录后即可发表评论

登录账户

加载评论中...