🧠 Agent的定义
**Agent(智能体)**的本质是以 LLM 为核心推理引擎,结合规划能力、工具使用能力和记忆能力,能够自主完成复杂任务的智能系统。
Agent vs 普通LLM调用
普通 LLM 调用是"一问一答"的被动模式——你给一个 prompt,它返回一个 completion,交互就结束了。LLM 本身不会主动做任何事情,也不会根据结果来决定下一步该干什么。
Agent 的核心特征是自主性(Autonomy)——它能够自主地感知环境、制定计划、使用工具、执行行动,并且根据执行结果来动态调整后续策略。
**举例说明:**假设用户说"帮我查一下明天北京的天气,如果下雨就把我后天的户外会议改成线上"。
- 普通 LLM:最多只能告诉你"你可以去查天气然后改会议"
- Agent:会自动执行完整流程——调用天气 API → 判断是否下雨 → 调用日历 API 找到会议 → 调用会议修改接口 → 汇报结果
学术上比较经典的定义来自 Lilian Weng 的博客,她把 Agent 定义为 LLM + Planning + Memory + Tools 的组合体,这个框架至今仍是业界最广泛认可的 Agent 架构抽象。
🏗️ Agent的核心组件
一个完整的 Agent 系统通常由四个核心模块构成:LLM(大脑)、规划模块、记忆模块、工具使用。这四个模块各司其职又紧密协作,共同支撑了 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 机制:
- 预先定义好工具描述(名称、功能说明、参数 schema)
- 放在 System Prompt 或通过 Function Calling 接口传给 LLM
- LLM 判断需要使用某个工具时,生成结构化的函数调用请求
- Agent 框架解析请求并执行函数
- 把执行结果返回给 LLM 继续推理
常见工具类型:
- 搜索引擎(联网检索信息)
- 数据库查询
- API 调用(天气、日历、邮件等)
- 代码执行器
- 文件读写操作
⚙️ 工程关键设计
🔒 安全与边界控制
Agent 拥有工具调用能力意味着它能对外部系统产生真实影响(如发邮件、改数据库),所以必须设计:
- 权限控制:限制 Agent 能访问和操作的资源范围
- 人工确认机制(Human-in-the-Loop):在执行危险操作前需要人类确认
- 防止 Agent 在推理出错时执行不可逆的危险操作
👥 多Agent协作
当任务非常复杂时,单个 Agent 可能难以胜任。可以设计多个专业化的 Agent 各负责一个子领域,通过编排层(Orchestrator)来协调分工合作。
- AutoGen、CrewAI 等框架就是这个思路
- 本质上是把"一个全能 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 机制以及整个推理链路的可观测性。