A02:Agent入门 - 从LLM到智能体
A02:Agent入门 - 从LLM到智能体
🤖 从"会说话"到"能做事"的质变
大语言模型如同拥有渊博知识的学者,能够流畅地对话、写作、推理,但它始终停留在"纸上谈兵"的阶段。而Agent,则是为这位学者装上了"感官和四肢",使其能够真正感知世界、采取行动、改变环境。
一、为什么我们需要Agent?
1.1 LLM的"静态"局限
回顾A01章节,我们已经认识到LLM的核心局限:
无法主动感知:只能被动接收输入,无法主动获取外部信息 缺乏行动能力:只能生成文本,无法调用工具或执行操作 知识静态固化:训练数据截止后,无法获取新知识 上下文受限:长对话或复杂任务容易丢失关键信息
1.2 Agent的"动态"优势
Agent通过引入感知-决策-执行循环,实现了从静态模型到动态智能体的跨越:
感知环境 → 理解状态 → 制定计划 → 执行行动 → 观察结果 → 迭代优化
核心突破: 主动性:能够主动感知环境变化并作出响应 工具性:可以调用外部工具扩展能力边界 持续性:通过记忆机制维持长期状态 适应性:根据反馈动态调整策略
1.3 从LLM到Agent的必然路径
Agent不是对LLM的替代,而是对其能力的增强和扩展: 维度 LLM Agent 能力范围 语言理解和生成 感知、决策、执行全流程
信息获取 训练数据 实时环境 + 外部工具
行动能力 文本输出 工具调用 + 环境交互
状态维持 短期上下文 长期记忆 + 状态管理
目标导向 无 明确目标 + 规划执行
二、Agent的核心能力:规划、记忆、工具
2.1 规划能力:从"走一步看一步"到"运筹帷幄"
规划是Agent的"大脑",负责将复杂目标分解为可执行的步骤。
规划的层次:
战略规划(长期): 设定总体目标和方向 制定宏观策略框架 评估资源和约束条件
战术规划(中期): 将目标分解为子任务 确定任务执行顺序 分配资源和优先级
操作规划(短期): 生成具体的行动指令 处理即时环境变化 进行实时决策调整
规划示例: 目标:为用户安排一次完美的周末旅行
战略规划: 确定目的地类型(城市/自然/文化) 预算范围设定 时间窗口确认
战术规划: 第一步:查询目的地天气和景点 第二步:预订酒店和交通 第三步:规划每日行程 第四步:准备旅行清单
操作规划: 调用天气API获取实时天气 搜索酒店并比较价格 预订机票/火车票 生成每日详细行程表
2.2 记忆机制:超越上下文窗口的限制
记忆是Agent的"经验库",使其能够积累知识、维持状态、学习成长。
记忆的分类:
短期记忆(工作记忆): 维护当前对话上下文 保存临时计算结果 跟踪任务执行状态
长期记忆(知识库): 存储用户偏好和历史 积累领域专业知识 保存成功经验模式
外部记忆(检索增强): 访问外部知识库 检索相关文档资料 获取实时信息更新
记忆管理策略: 选择性存储:只保存重要和有价值的信息 层次化组织:按时间、主题、重要性分类 动态更新:定期清理过时信息,添加新知识 高效检索:快速定位相关记忆内容
2.3 工具调用:扩展能力的"四肢"
工具是Agent的"执行器",使其能够突破LLM的能力边界。
工具的类型:
计算工具: 数学计算器:精确执行复杂数学运算 代码解释器:运行编程代码并获取结果 数据分析:处理和可视化数据
信息工具: 搜索引擎:获取最新网络信息 数据库查询:访问结构化数据 API调用:集成第三方服务
操作工具: 文件系统:读写本地文件 网络请求:发送HTTP请求 硬件控制:操作物理设备(IoT)
工具调用流程: 识别需求:判断是否需要外部工具 选择工具:从可用工具中选择最合适的 参数准备:准备工具调用所需的参数 执行调用:发起工具调用请求 结果处理:解析工具返回的结果 整合输出:将结果融入最终响应
三、经典Agent架构模式
3.1 ReAct模式:思考与行动的循环
ReAct(Reason + Act)是最早也是最经典的Agent架构,通过思考-行动-观察的循环实现智能决策。
核心循环: Thought(思考)→ Action(行动)→ Observation(观察)→ 思考…
工作流程:
思考阶段(Thought): 分析当前状态和目标 评估可用的行动选项 选择最优的下一步行动
行动阶段(Action): 执行选定的行动 调用相应的工具或接口 产生环境变化
观察阶段(Observation): 感知行动后的环境状态 收集执行结果和反馈 更新内部状态表示
ReAct示例:
用户:计算2024年北京到上海的高铁票价总和
Thought 1: 我需要先获取北京到上海的高铁票价信息 Action 1: 调用12306 API查询北京到上海的高铁票价 Observation 1: 获取到票价信息:二等座553元,一等座933元,商务座1748元
Thought 2: 我需要计算三种座位的票价总和 Action 2: 调用计算器:553 + 933 + 1748 Observation 2: 计算结果:3234
Thought 3: 我已经得到最终答案 Action 3: 回复用户 Observation 3: 2024年北京到上海的高铁票价总和为3234元
ReAct的优势: 灵活性高:能够根据实时反馈动态调整策略 适应性强:适合处理不确定和变化的环境 易于实现:架构简单,便于理解和调试
ReAct的局限: 效率问题:每步都需要LLM推理,计算成本高 容易迷失:复杂任务可能在循环中迷失方向 缺乏全局观:可能陷入局部最优解
3.2 Plan-and-Execute模式:先规划后执行
Plan-and-Execute模式通过分离规划和执行阶段,解决了ReAct在复杂任务中的效率问题。
核心流程: 规划阶段(Planning)→ 执行阶段(Execution)→ 结果整合
工作流程:
规划阶段: 全面分析任务需求和约束 生成完整的任务分解计划 确定执行顺序和依赖关系
执行阶段: 按计划顺序执行各个子任务 调用相应的工具和资源 收集执行结果
结果整合: 汇总各子任务的执行结果 生成最终的综合输出 进行质量检查和优化
Plan-and-Execute示例:
用户:帮我分析一下2024年第一季度科技股的表现
规划阶段: Plan: 收集2024年Q1主要科技股的股价数据 计算各股票的季度涨跌幅 分析行业整体表现趋势 生成可视化图表 撰写综合分析报告
执行阶段: Step 1: 调用股票API,获取AAPL、MSFT、GOOGL等股票数据 Step 2: 使用Python计算涨跌幅 Step 3: 调用数据分析库进行趋势分析 Step 4: 生成折线图和柱状图 Step 5: 整合所有信息,撰写分析报告
结果:生成完整的2024年Q1科技股分析报告
Plan-and-Execute的优势: 效率高:一次性规划,减少LLM调用次数 全局优化:能够从整体角度优化任务执行 可并行化:独立子任务可以并行执行 易于调试:规划和执行分离,便于问题定位
Plan-and-Execute的局限: 灵活性差:难以应对执行过程中的突发变化 规划难度:复杂任务的规划本身就很困难 容错性低:某个子任务失败可能影响整体
3.3 混合架构:结合两者优势
在实际应用中,往往需要结合ReAct和Plan-and-Execute的优势,形成混合架构。
典型混合模式:
分层规划 + 迭代执行: 高层:使用Plan-and-Execute进行宏观规划 低层:使用ReAct处理具体执行细节
动态调整 + 预先规划: 初始:生成完整计划 执行:根据实际情况动态调整 反馈:持续优化后续步骤
混合架构示例:
用户:帮我组织一次公司团建活动
高层规划(Plan-and-Execute): 确定活动主题和预算 选择活动地点和时间 安排交通和餐饮 准备活动物料 发送通知和收集反馈
低层执行(ReAct循环): 对于步骤2"选择活动地点": Thought: 需要了解公司位置和员工偏好 Action: 调用地图API查询周边场地 Observation: 获取到5个候选场地信息 Thought: 需要比较各场地的价格和设施 Action: 调用爬虫获取详细信息 Observation: 收集到完整对比数据 Thought: 根据预算和需求做出选择 Action: 确定最终场地并预订
四、感知-决策-执行循环详解
4.1 感知层:环境信息的获取
感知是Agent与外部世界交互的窗口,负责收集和处理环境信息。
感知的来源:
用户输入: 自然语言指令 上传的文件和数据 交互式反馈
环境状态: 系统运行状态 外部API返回数据 实时传感器信息
历史上下文: 对话历史记录 任务执行进度 用户偏好设置
感知处理流程: 原始输入 → 预处理 → 特征提取 → 语义理解 → 状态更新
4.2 决策层:智能推理的核心
决策是Agent的"大脑",负责分析信息、制定策略、选择行动。
决策的要素:
目标分析: 理解用户真实需求 识别隐含约束条件 设定成功标准
状态评估: 当前环境状态分析 可用资源和工具盘点 潜在风险和机会识别
策略生成: 多方案对比评估 成本效益分析 风险控制考虑
决策算法: 规则引擎:基于预定义规则的决策 启发式搜索:使用经验法则快速决策 机器学习:基于历史数据的学习决策 强化学习:通过试错优化决策策略
4.3 执行层:行动的实施
执行是Agent的"手脚",负责将决策转化为实际的行动。
执行的类型:
语言输出: 生成自然语言响应 创建文档和报告 生成代码和脚本
工具调用: 调用外部API服务 执行计算和分析 操作文件和数据
环境交互: 发送网络请求 控制硬件设备 更新系统状态
执行监控: 实时跟踪执行进度 捕获异常和错误 记录执行日志
五、Agent架构的演进趋势
5.1 从单智能体到多智能体协作
随着任务复杂度的提升,单一Agent的能力逐渐受限,多Agent系统成为发展趋势。
多Agent协作模式:
分工协作: 不同Agent负责不同专业领域 通过消息传递协调工作 共享知识和资源
竞争博弈: 多个Agent竞争同一目标 通过博弈论优化策略 实现最优资源配置
层级组织: 主Agent协调多个子Agent 形成树状或网状结构 实现复杂任务的分层管理
5.2 从确定性到自适应学习
传统Agent依赖预定义规则,而新一代Agent具备自主学习能力。
学习机制:
经验积累: 从成功案例中学习最佳实践 从失败中总结教训 持续优化决策策略
环境适应: 动态调整参数和策略 适应环境变化和用户偏好 实现个性化服务
知识进化: 主动获取新知识 更新内部知识库 保持与时俱进
5.3 从工具调用到自主创造
未来的Agent将不仅限于调用现有工具,还能够自主创造新的工具和方法。
创造能力:
工具生成: 根据需求自动生成新工具 优化现有工具的使用方式 组合多个工具形成新功能
方法创新: 发现新的问题解决路径 创造新的工作流程 提出创新性的解决方案
系统构建: 自主设计和构建新系统 优化系统架构和性能 实现系统的自我进化
六、实践指南:构建你的第一个Agent
6.1 选择合适的架构
根据任务特点选择最适合的Agent架构: 任务类型 推荐架构 理由 简单问答 LLM + 工具调用 不需要复杂规划
多步骤任务 ReAct 需要动态调整
复杂项目 Plan-and-Execute 需要全局优化
长期目标 混合架构 需要分层管理
6.2 设计核心组件
构建Agent时需要考虑的关键组件:
感知模块: 输入解析器 环境监控器 状态管理器
决策模块: 规划引擎 策略选择器 风险评估器
执行模块: 工具调用器 输出生成器 执行监控器
记忆模块: 短期记忆 长期知识库 检索系统
6.3 实现迭代优化
Agent的构建是一个持续优化的过程:
初始版本: 实现基本功能 验证核心逻辑 收集用户反馈
迭代优化: 分析失败案例 优化决策策略 扩展工具能力
持续学习: 积累成功经验 更新知识库 适应新需求
📝 本章小结
Agent代表了从静态语言模型到动态智能体的关键跨越。通过引入规划、记忆、工具调用三大核心能力,Agent弥补了LLM的固有局限,实现了从"会说话"到"能做事"的质的飞跃。
我们深入探讨了两种经典的Agent架构: ReAct模式:通过思考-行动-观察的循环实现灵活决策 Plan-and-Execute模式:通过先规划后执行的方式提升效率
理解感知-决策-执行循环是掌握Agent设计的关键。这个循环不仅是Agent运作的核心机制,也是我们设计和优化Agent的指导原则。
记住:Agent不是要取代LLM,而是要增强LLM。优秀的Agent设计应该充分发挥LLM的语言理解和推理能力,同时通过工具和记忆扩展其行动边界。
🔮 下章预告
在B部分中,我们将进入连接篇(MCP),探讨如何让Agent连接外部世界。我们将学习MCP协议如何标准化Agent与工具的交互,以及如何构建丰富的工具生态系统,让Agent真正成为连接数字世界的桥梁。
准备好让你的Agent走出"象牙塔",拥抱真实世界了吗?