认识 AI Agent:概念、架构、设计模式与主流框架

你让一个普通的 AI 助手"帮我整理本周的项目周报",它多半回你一份周报模板,然后结束。换成 Agent,它会自己去查项目文档、提取关键信息、按模板生成摘要,甚至主动推送到协作群。差别在于:普通 AI 是你问一句、它答一句;Agent 是你给一个目标,它自己想办法完成。这篇文章从 Agent 是什么讲起,到它的架构、特性、常见设计模式,最后梳理主流的 Agent 框架。

1. Agent 是什么

1.1 带大脑、有手脚、有计划

在 AI 的语境下,Agent(智能体)是一种能够感知环境、进行自主决策、并调用工具去完成特定任务的智能系统。简单说,就是一个"带大脑、有手脚、有计划"的数字助手。

对照着看会清楚很多。以"学生准备社团活动"为例:

  • 传统 AI 像复读机:你问"怎么写活动策划",它给你一份模板,然后结束。
  • Agent 像社团负责人:先调用日历 API 查空闲场地,再拆解出"定场地、发通知、拉赞助"几个步骤;自动发邮件联系场地管理员,用搜索工具找潜在赞助商名单;原场地被占了就自动查备用场地并重新协调;还记得你上次对音响不满意,这次自动在需求单里注明。

1.2 问答模式与任务驱动模式

两者的核心区别在交互模式:传统 AI 是"问答模式",你推一下它动一下;Agent 是"任务驱动模式",你给个目标,它自己想办法完成。

这里要分清一件事:不是所有用了大模型的应用都叫 Agent。判断标准在于它有没有"自主规划并调用工具"的能力。一个只会按固定提示词回答的聊天机器人不是 Agent;一个能自己决定"先查什么、再调哪个工具"的才是。

2. Agent 的基本架构

2.1 核心公式

一个典型的 Agent 以大型语言模型(LLM)为核心,围绕它构建三个组件:规划(Planning)、记忆(Memory)、工具使用(Tool Use)。业界公认的一个经典公式:

Agent = LLM(大脑)+ 规划(策略)+ 记忆(经验)+ 工具(手脚)

2.2 四个组件拆解

  • LLM(大脑):核心,负责逻辑推理、意图识别和语言生成。Agent 的所有行动指令都源于 LLM 对当前任务的理解。
  • 规划(Planning):依赖 LLM 分析当前任务状态、拆解目标、生成思考路径,决定下一步动作。
  • 记忆(Memory):分短期记忆(上下文历史,保持对话连续)和长期记忆(外部知识库,如向量数据库、知识图谱),防止遗忘历史信息、从经验中学习。
  • 工具使用(Tool Use):真正执行动作的模块,调用搜索引擎、计算器、代码解释器、第三方 API 等,突破模型自身的能力边界。

用"晚上下班回家"的场景串起来:你对智能音箱说"我回来了"。大脑理解"回来"意味着恢复居家环境;规划自动拆成三步,开客厅灯、开空调、放轻音乐;记忆记得你平时喜欢白光、空调 24℃、钢琴曲音量 30%;工具依次给智能灯泡、空调、音乐播放器发指令。

2.3 Agent 与 Workflow 的区别

这是最容易混淆的一对概念。

工作流(Workflow)是一系列预定义的、有序的步骤,按固定流程自动执行。开发者提前写好所有路径:发生 A 就执行 B,失败就走 C。同样的输入永远得到同样的执行路径,像一条工业流水线。

Agent 是给定目标后,根据当前情况临时决定每一步做什么,执行路径不确定,会根据环境反馈不断调整。

特性 Workflow(工作流) Agent(智能体)
核心理念 确定性流程,按预设路径执行 自主决策,动态规划步骤
决策者 开发者(代码预设) AI 模型(运行时判断)
执行路径 固定,分支有限 动态,可调整、重试
工具调用 硬编码、固定调用 自主选择时机和工具
容错能力 弱,异常常导致整体失败 强,可降级、换方案、自我修正

一个类比:工作流像跟团游,8 点集合、9 点到博物馆、12 点开饭,行程表是死代码,博物馆闭馆也会把你拉到门口;Agent 像背包客,目标是"去西安感受历史",发现博物馆排队太长,就查附近古迹、先去吃个肉夹馍避开高峰。

实际开发中两者经常配合使用,形成"基于工作流的智能体":工作流提供约束,防止 AI 乱跑、无限循环或产生幻觉,保证核心步骤不出错;Agent 提供智能,在具体环节里处理复杂、非结构化的数据。

3. Agent 的基本特性

一个合格的 Agent 通常具备五个特性,用旅行规划 Agent 的例子逐条对照:

  1. 自主性(Autonomy):能在没有直接干预的情况下运作,对自身行动有控制权。你只说"帮我规划五一去云南的 4 天行程",它自己决定查机票、酒店、景点顺序。
  2. 反应性(Reactivity):能感知环境变化并及时反应。发现 5 月 1 日昆明机票售罄,立刻调整方案,改建议飞丽江或改日期。
  3. 主动性(Proactiveness):不仅响应需求,还主动规划中间步骤以达成隐含的高阶目标。主动比较航班价格、计算总预算、推荐最优路线。
  4. 学习能力(Adaptability):能从历史交互中提取抽象偏好并用于后续任务。你反馈"不喜欢太赶的行程",它下次自动留出更多自由时间。
  5. 社交能力(Social Ability):多个 Agent 之间能通信协作。它能与专门的机票预订 Agent、酒店预订 Agent 协作,通过标准协议相互询问、协商。

4. 常见设计模式

Agent 不是一拍脑袋想出来的,业界沉淀了几种经典设计模式。理解它们,就理解了 Agent"怎么思考"。

4.1 ReAct:推理与行动的循环

两种"半成品"模式

ReAct 是由 Google Research 在 2022 年提出的推理框架,核心是把推理(Reasoning)和行动(Acting)结合起来。在它之前,模型要么只推理、要么只行动,各有各的坑:

纯推理(Reasoning-Only):只在内部推演,不调用外部工具。问"今天北京天气,给穿衣建议",它凭"4 月北京平均 15℃"推理,得出"晴朗、建议薄外套"。实际当天是 8℃ 有雨,答案完全错误。问题在于它依赖过时的平均数据,产生了幻觉。

纯行动(Action-Only):只生成行动指令,不解释为什么。问"今天天气如何,晴天就推荐几个公园",它机械执行:查天气得到"8℃、沙尘暴",判断"不适合户外",却仍然推荐公园列表。问题在于缺乏"思考"环节做条件判断,明知不适合户外还一路往下走。

ReAct 的 TAO 循环

ReAct 把两者结合起来,按照"思考 → 行动 → 观察"循环迭代,简称 TAO 循环:
#mermaid-svg-WVb3NsOxNnB8Z38V{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-WVb3NsOxNnB8Z38V .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-WVb3NsOxNnB8Z38V .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-WVb3NsOxNnB8Z38V .error-icon{fill:#552222;}#mermaid-svg-WVb3NsOxNnB8Z38V .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-WVb3NsOxNnB8Z38V .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-WVb3NsOxNnB8Z38V .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-WVb3NsOxNnB8Z38V .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-WVb3NsOxNnB8Z38V .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-WVb3NsOxNnB8Z38V .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-WVb3NsOxNnB8Z38V .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-WVb3NsOxNnB8Z38V .marker{fill:#333333;stroke:#333333;}#mermaid-svg-WVb3NsOxNnB8Z38V .marker.cross{stroke:#333333;}#mermaid-svg-WVb3NsOxNnB8Z38V svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-WVb3NsOxNnB8Z38V p{margin:0;}#mermaid-svg-WVb3NsOxNnB8Z38V .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-WVb3NsOxNnB8Z38V .cluster-label text{fill:#333;}#mermaid-svg-WVb3NsOxNnB8Z38V .cluster-label span{color:#333;}#mermaid-svg-WVb3NsOxNnB8Z38V .cluster-label span p{background-color:transparent;}#mermaid-svg-WVb3NsOxNnB8Z38V .label text,#mermaid-svg-WVb3NsOxNnB8Z38V span{fill:#333;color:#333;}#mermaid-svg-WVb3NsOxNnB8Z38V .node rect,#mermaid-svg-WVb3NsOxNnB8Z38V .node circle,#mermaid-svg-WVb3NsOxNnB8Z38V .node ellipse,#mermaid-svg-WVb3NsOxNnB8Z38V .node polygon,#mermaid-svg-WVb3NsOxNnB8Z38V .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-WVb3NsOxNnB8Z38V .rough-node .label text,#mermaid-svg-WVb3NsOxNnB8Z38V .node .label text,#mermaid-svg-WVb3NsOxNnB8Z38V .image-shape .label,#mermaid-svg-WVb3NsOxNnB8Z38V .icon-shape .label{text-anchor:middle;}#mermaid-svg-WVb3NsOxNnB8Z38V .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-WVb3NsOxNnB8Z38V .rough-node .label,#mermaid-svg-WVb3NsOxNnB8Z38V .node .label,#mermaid-svg-WVb3NsOxNnB8Z38V .image-shape .label,#mermaid-svg-WVb3NsOxNnB8Z38V .icon-shape .label{text-align:center;}#mermaid-svg-WVb3NsOxNnB8Z38V .node.clickable{cursor:pointer;}#mermaid-svg-WVb3NsOxNnB8Z38V .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-WVb3NsOxNnB8Z38V .arrowheadPath{fill:#333333;}#mermaid-svg-WVb3NsOxNnB8Z38V .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-WVb3NsOxNnB8Z38V .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-WVb3NsOxNnB8Z38V .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-WVb3NsOxNnB8Z38V .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-WVb3NsOxNnB8Z38V .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-WVb3NsOxNnB8Z38V .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-WVb3NsOxNnB8Z38V .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-WVb3NsOxNnB8Z38V .cluster text{fill:#333;}#mermaid-svg-WVb3NsOxNnB8Z38V .cluster span{color:#333;}#mermaid-svg-WVb3NsOxNnB8Z38V div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-WVb3NsOxNnB8Z38V .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-WVb3NsOxNnB8Z38V rect.text{fill:none;stroke-width:0;}#mermaid-svg-WVb3NsOxNnB8Z38V .icon-shape,#mermaid-svg-WVb3NsOxNnB8Z38V .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-WVb3NsOxNnB8Z38V .icon-shape p,#mermaid-svg-WVb3NsOxNnB8Z38V .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-WVb3NsOxNnB8Z38V .icon-shape .label rect,#mermaid-svg-WVb3NsOxNnB8Z38V .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-WVb3NsOxNnB8Z38V .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-WVb3NsOxNnB8Z38V .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-WVb3NsOxNnB8Z38V :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Thought 思考:分析下一步
Action 行动:调用工具
Observation 观察:拿到结果

还是那个天气问题,ReAct 的做法是:

text 复制代码
Thought 1: 需要先查天气,再根据天气决定是否推荐公园。
Action: get_weather(city="Beijing")
Observation: {"temp": 8, "condition": "沙尘暴"}

Thought 2: 沙尘暴不适合户外,用户要求晴天才推荐公园,改为推荐室内场馆。
Action: recommend_indoor_places(city="Beijing")
Observation: ["国家博物馆", "首都图书馆"]

Final Answer: 今天 8℃ 有沙尘暴,不建议去公园,推荐国家博物馆或首都图书馆。

每一步都先思考、再行动、再根据观察结果决定下一步,既拿到了真实数据,又避免了机械执行。

优势与劣势

优势:动态适应(根据上一步结果即时调整策略);可解释性强(Thought→Action→Observation 轨迹清晰可追溯);显著降低而非杜绝幻觉。工具观察提供了事实锚点,但如果工具返回的数据本身有误,模型仍可能基于错误信息继续推理。

劣势有四条:易陷入循环或跑偏(缺乏全局计划,可能忘记原始目标);无法并行(必须串行执行,同时查天气、股价、新闻要轮流调三次工具);不适合长周期任务(必须阻塞等待,启动 10 小时模型训练会让会话超时);工具调用次数不可控(反复试错导致成本飙升)。

落地时的修正

实际落地几乎没人直接用原生的 ReAct 循环,业界通常做四件事:引入双层架构,顶层规划器输出任务清单,底层执行器对每个子任务跑 ReAct,防止跑偏;独立子任务直接并行调用;长周期任务下发消息队列不阻塞会话;设置最大迭代步数控制成本。

4.2 Plan & Execute:先规划后执行

Plan & Execute 是另一种设计模式:先由规划器(Planner)生成高层多步骤计划,再由执行器(Executor)按序执行,执行中可基于中间结果触发重新规划。它不像 ReAct 那样"每走一步都全局思考下一步",而是"先画施工蓝图,再按图施工,遇到地质变化时修改图纸"。

优点:不易跑偏(全局计划像施工图纸);可并行执行(无依赖的步骤同时运行);效率高成本低(任务分解的推理集中在规划阶段完成,执行阶段多为固定工具调用)。

缺点也明显:异常分支处理薄弱(计划一旦生成就难应对中途的新信息);计划出错则全盘失败(遗漏关键步骤或顺序错误);不适合探索性任务("帮我找个有意思的 GitHub 项目","有意思"无法提前编码进计划)。

修正思路:主流框架采用 Planning + ReAct 混合模式,执行器在局部循环里自治;计划生成后先检查步骤顺序、分段执行勤存盘、哪步坏了只修哪步;探索性任务改用"探索-评估"循环,把主观目标转成可计算的满意度分数。

4.3 Reflection:生成-反思的闭环

Reflection 是让同一个(或不同)模型对自身输出进行审视、批评并迭代改进的模式,核心是"生成 → 反思"的闭环。

举个例子,写一条节约用水用电的公告。初稿"请大家节约用水用电,不要乱扔垃圾"太笼统、像喊口号;第一轮反思后改成具体行为"离开教室关灯关风扇,洗手后拧紧水龙头";第二轮反思再加正面鼓励,最终版本更有感染力。这就是"生成-反思-优化"的循环。

优点:质量更高(生成者与批判者自我博弈);不依赖别人(无需构建双模型);减少返工(把错误前置到 AI 自己的推理过程中)。

缺点:费时间(每轮反思都要完整重读和重新生成,3 次反思约 4 倍 token 成本);容易改过头(过度修改让内容变得刻板);自己可能有盲区(评判标准来自模型自身,数学不好的模型检查不出自己的逻辑漏洞)。

修正思路:快照对比加强制早退,设置最大反思轮次(通常 1-3 次),引入外部校验(代码跑测、事实核查、用户反馈)。

4.4 ReAct 与 Reflection 的对比

特性 ReAct Reflection
核心机制 推理-行动-观察的紧密循环 尝试-评估-反思-重试的迭代循环
主要目标 与外部环境交互完成任务 总结经验教训提升质量
关键依赖 外部工具或环境的反馈 评估机制判断对错
适用场景 网络搜索、数据库查询、API 调用等实时反馈任务 代码生成、数学推理、复杂创作等准确性要求高的任务

两者不互斥,经常互补:主体用 ReAct 调用工具执行动作,任务完成后或失败时外挂一个 Reflection 模块监控质量、分析错误。这样 Agent 既能高效"行动",又能聪明"成长"。

5. 主流 Agent 框架

理解了原理,再看怎么落地。主流框架大致分两类:一类是代码库(Library),开发者用代码组装 Agent;一类是平台(Platform/SaaS),可视化拖拉拽搭建。

5.1 代码库类框架

框架 一句话定位 类型
LangChain 模块化智能体开发的"乐高"底座,Prompt、Memory、Tool 自由组合 Python/JS
LangGraph 构建有状态、可控的复杂智能体工作流,基于图的编排引擎 Python/JS
LlamaIndex 以数据为中心的 RAG(检索增强生成)与 Agent 框架,连接私有数据与 LLM Python/TS
Haystack 模块化 RAG 与 Agent 流程构建,Pipeline 设计 Python
Spring AI 提供 AI 能力集成的抽象层,扩展 Agent 构建能力 Java
LangChain4j LangChain 的 Java 移植版,从设计之初就以 Agent 为核心 Java
AgentScope 企业级开箱即用,三层架构,Runtime 兼容 LangGraph/AutoGen Python/Java
Semantic Kernel 轻量级 AI 编排 SDK,把 AI 能力融入现有业务代码 .NET/Python/Java
AutoGen 多智能体"会议"式对话协作,通过 Agent 间对话协商解决任务 Python/.NET
Microsoft Agent Framework 微软统一的企业级多智能体 SDK,统一 Semantic Kernel 与 AutoGen 经验 .NET/Python
CAMEL 角色扮演式多智能体框架,探索大规模智能体社会行为 Python/TS
CrewAI "AI 梦之队"角色扮演协作,为 Agent 定义角色、目标与背景故事 Python

5.2 平台类框架

平台 一句话定位 类型
Coze(扣子) 字节跳动一站式 AI Bot 开发平台,低门槛可视化搭建,一键发布到飞书、微信 SaaS
Dify 可视化 LLMOps 与 Agent 编排平台,可视化编排工作流、RAG 与 Agent 开源/云
n8n AI 原生工作流自动化平台,400+ 集成节点,把 Agent 融入自动化流程 开源/云
百度千帆 百度企业级一站式大模型开发平台,支持 Agent、RAG、工作流编排 SaaS
FastGPT 开箱即用的知识库问答与 AI 工作流平台,一键接入企微、飞书、钉钉 开源/云
AutoGPT 早期"自主 AI"概念项目,让 AI 自主拆解并执行任务 开源

5.3 怎么选

选框架不是看谁名气大,而是看场景。要快速验证一个 Bot 想法、面向非程序员,用 Coze、Dify 这类平台更合适;要做精细控制、接入现有工程、构建生产级复杂工作流,用 LangGraph、AutoGen、CrewAI 这类代码库。Java 技术栈有 Spring AI、LangChain4j;.NET 有 Semantic Kernel。还要注意一点:一旦用某个框架构建了核心智能体生态,后续会面临"框架锁定",这也是 A2A(Agent-to-Agent)协议要解决的问题之一,即让不同框架的 Agent 能互相通信。

结语

把整条线串起来:Agent 之所以区别于普通 AI,是因为它把 LLM 从"答题者"变成了"执行者",大脑负责推理,规划拆解目标,工具真正动手,记忆积累经验。ReAct、Plan & Execute、Reflection 三种设计模式,对应"边想边做""先想再做""做完再改"三种做事方式。至于选哪个框架,代码库框架让你能够掌控全局,平台类框架让你能够快速上手。理解了这个从"是什么"到"怎么思考"再到"用什么做"的脉络,再去上手任何一个 Agent 框架,都不会觉得陌生了。

相关推荐
Hrain-AI1 小时前
AI 爬虫三档授权工程落地:搜索放行、训练拦截、Agent 分层(附脚本)
人工智能·elasticsearch·milvus
sunhy_csdn1 小时前
“词码”作为 Token 候选译名
人工智能
Hrain-AI1 小时前
多 Agent 并行不打架:worktree 隔离与反馈回流落地(附脚本)
网络·数据库·人工智能·架构
Koi慢热1 小时前
DayDayMap学术社区体验:卫星网络测绘专题用下来怎么样
网络·人工智能·windows·web安全·网络安全
净水深流2 小时前
中央厨房冷链技术实践:多温区改造、WMS落地与IoT温控架构
大数据·数据库·人工智能·冷库冷链
万联WANFLOW2 小时前
从“连接网络”到“编排业务”:企业网络架构正在发生什么变化?
网络·人工智能
MatrixOrigin2 小时前
从 App + Database 到 Agent + Context:下一代企业 AI Infra 的架构推演
人工智能·ai-native·矩阵起源·企业ai基础设施·ai state
是Yu欸2 小时前
鸿蒙PC移植:2048 从网页小游戏到 AI 桌面应用
大数据·人工智能·算法·数据挖掘·openharmony·codex
熠速2 小时前
HIL测试中的总线与通信协议
人工智能·自动驾驶·仿真测试·硬件在环半实物仿真