Agent的核心组件

深入理解基于LLM的Agent核心组件:LLM大脑、规划模块、记忆模块和工具使用

🧠 Agent的定义

**Agent(智能体)**的本质是以 LLM 为核心推理引擎,结合规划能力、工具使用能力和记忆能力,能够自主完成复杂任务的智能系统。

Agent vs 普通LLM调用

普通 LLM 调用是"一问一答"的被动模式——你给一个 prompt,它返回一个 completion,交互就结束了。LLM 本身不会主动做任何事情,也不会根据结果来决定下一步该干什么。

Agent 的核心特征是自主性(Autonomy)——它能够自主地感知环境、制定计划、使用工具、执行行动,并且根据执行结果来动态调整后续策略。

Agent与LLM调用的区别

**举例说明:**假设用户说"帮我查一下明天北京的天气,如果下雨就把我后天的户外会议改成线上"。

  • 普通 LLM:最多只能告诉你"你可以去查天气然后改会议"
  • Agent:会自动执行完整流程——调用天气 API → 判断是否下雨 → 调用日历 API 找到会议 → 调用会议修改接口 → 汇报结果

学术上比较经典的定义来自 Lilian Weng 的博客,她把 Agent 定义为 LLM + Planning + Memory + Tools 的组合体,这个框架至今仍是业界最广泛认可的 Agent 架构抽象。


🏗️ Agent的核心组件

一个完整的 Agent 系统通常由四个核心模块构成:LLM(大脑)、规划模块、记忆模块、工具使用。这四个模块各司其职又紧密协作,共同支撑了 Agent 的自主决策和任务执行能力。

Agent核心组件架构图

🧠 LLM——Agent的大脑

LLM 是整个系统的中枢,负责:

  • 理解用户意图
  • 进行逻辑推理
  • 生成行动计划
  • 解读工具返回结果

Agent 的智能水平上限取决于底层 LLM 的能力。在工程实践中,我们通常通过精心设计的 System Prompt 来给 LLM 设定角色、约束行为边界、规定输出格式,这相当于给"大脑"装上了一套操作手册。

📋 规划模块——任务分解与推理

规划能力是 Agent 区别于简单 LLM 应用的关键标志。当 Agent 接收到一个复杂任务时,它会把任务分解成多个可执行的子步骤,然后按照逻辑顺序逐步执行。

主流规划策略分为两类:

规划策略分类

1. 无反馈的规划

代表框架 ReAct(Reasoning + Acting)

  • Thought:先进行推理思考
  • Action:决定执行一个动作
  • Observation:观察动作的结果
  • 进入下一轮循环

优点是实现简单、思路清晰,是目前最广泛使用的 Agent 推理框架。

2. 带反馈的规划

代表框架 Reflexion

  • Agent 在执行失败后会对失败原因进行自我反思
  • 修正策略重新执行

这种方式更接近人类解决问题的真实过程——会根据反馈不断调整方案。

🗄️ 记忆模块——上下文与经验

Agent 的记忆通常分为两种:

记忆模块分类

1. 短期记忆(Short-term Memory)

  • 本质是当前对话的上下文(Context)
  • 包括用户的历史消息、Agent 的推理过程、工具调用结果等
  • 受限于 LLM 的上下文窗口长度

常见解决方案:

  • 对话摘要(Summarization)
  • 滑动窗口
  • 基于关键信息提取的压缩策略

2. 长期记忆(Long-term Memory)

  • 持久化存储的外部知识,通常通过向量数据库实现
  • Agent 可以把重要的历史交互、经验、用户偏好等信息存入
  • 在需要时通过 RAG 的方式检索召回
  • 使 Agent 表现出"越用越聪明"的特性

🔧 工具使用——与外部世界交互

LLM 本身只能生成文本,不能查数据库、不能调 API、不能操作文件系统。通过工具使用机制,Agent 可以将 LLM 的推理能力与外部世界的执行能力连接起来。

工具使用机制

Function Calling 机制:

  1. 预先定义好工具描述(名称、功能说明、参数 schema)
  2. 放在 System Prompt 或通过 Function Calling 接口传给 LLM
  3. LLM 判断需要使用某个工具时,生成结构化的函数调用请求
  4. Agent 框架解析请求并执行函数
  5. 把执行结果返回给 LLM 继续推理

常见工具类型:

  • 搜索引擎(联网检索信息)
  • 数据库查询
  • API 调用(天气、日历、邮件等)
  • 代码执行器
  • 文件读写操作

⚙️ 工程关键设计

工程关键设计

🔒 安全与边界控制

Agent 拥有工具调用能力意味着它能对外部系统产生真实影响(如发邮件、改数据库),所以必须设计:

  • 权限控制:限制 Agent 能访问和操作的资源范围
  • 人工确认机制(Human-in-the-Loop):在执行危险操作前需要人类确认
  • 防止 Agent 在推理出错时执行不可逆的危险操作

👥 多Agent协作

当任务非常复杂时,单个 Agent 可能难以胜任。可以设计多个专业化的 Agent 各负责一个子领域,通过编排层(Orchestrator)来协调分工合作。

  • AutoGenCrewAI 等框架就是这个思路
  • 本质上是把"一个全能 Agent"拆成"多个专家 Agent 的团队"

📊 可观测性与调试

Agent 的多步推理过程是非确定性的,每次运行可能走不同路径,给调试带来很大挑战。工程上需要:

  • 完善的日志记录:记录每一步的输入输出
  • Trace 追踪:追踪整个推理链路
  • 中间状态可视化:快速定位是哪一步推理出错

📚 总结

核心组件 主要作用 技术实现
🧠 LLM 大脑中枢 推理引擎、System Prompt
📋 规划 任务分解 ReAct、Reflexion
🗄️ 记忆 上下文连贯 短期上下文、长期向量数据库
🔧 工具 外部交互 Function Calling

关键要点:

  • Agent 的本质是自主性——能感知、规划、行动、调整
  • 四大核心组件缺一不可,协同支撑智能决策
  • 工程落地需关注安全多Agent协作可观测性

Agent,本质上是以 LLM 为核心推理引擎,具备自主规划、工具调用和记忆能力,能够自主完成复杂任务的智能系统。它跟普通的 LLM 调用最大的区别在于自主性——普通 LLM 调用是一问一答的被动模式,而 Agent 能够自主地把一个复杂任务拆解成多个步骤,在每一步进行推理决策,选择合适的工具去执行,观察结果后再动态调整下一步策略,形成一个"思考-行动-观察"的闭环循环,直到任务完成。 核心组件通常有四个。第一个是 LLM 本身,它充当 Agent 的大脑,负责意图理解、逻辑推理和决策生成。第二个是规划模块,让 Agent 能够进行任务分解和多步推理,主流的实现方式是 ReAct 框架。第三个是记忆模块,分为短期记忆和长期记忆,短期记忆保证一次任务内的连贯性,长期记忆通过向量数据库存储历史经验。第四个是工具使用能力,通过 Function Calling 机制让 Agent 能够调用外部 API、查数据库、执行代码等。在实际落地中,还需要特别关注安全边界控制、Human-in-the-Loop 机制以及整个推理链路的可观测性。


最后更新于 2026-03-25 10:19 UTC
그 경기 끝나고 좀 멍하기 있었는데 여러분 이제 살면서 여러가
使用 Hugo 构建
主题 StackJimmy 设计