【Agent 学习日记】我们来说说 Agent 的基础框架是什么?
目录
✨Agent 基础框架的四大核心模块
✨1. 感知模块 (Perception Module) —— Agent的“五官”
✨2. 大脑模块 (Brain Module) —— Agent的“CPU和操作系统”
✨3. 执行模块 (Execution Module) —— Agent的“手脚”
✨4. 记忆模块 (Memory Module) —— Agent的“笔记与档案”
✨完整的运行流程示例:一个“旅行规划Agent”
✨总结
✨面试回答
简单来说,Agent的基础框架是一个“感知-决策-执行-学习”的闭环循环系统。它的核心思想是:让一个智能体(Agent)能够像人一样,观察环境、思考判断、采取行动,并从行动结果中学习改进。
我们可以把一个标准的Agent框架拆解为四大核心模块,它们相互作用,构成了Agent的灵魂。
Agent 基础框架的四大核心模块
1. 感知模块 (Perception Module) —— Agent的“五官”
这是Agent与外部环境交互的入口。它负责接收并理解来自环境、用户或其他Agent的信息。
- 功能:将原始、非结构化的数据(如文字、图像、语音、传感器读数)转化为Agent内部可以理解和处理的结构化状态。
- 关键技术:
- 文本感知:读取用户输入的Prompt或系统指令。
- 多模态感知:利用视觉语言模型(VLM)识别图像、理解视频帧;利用语音识别模型(ASR)处理音频。
- 结构化数据感知:解析JSON、XML、数据库查询结果等。
- 输出:一个结构化的“状态”(State)描述,作为大脑模块的输入。
2. 大脑模块 (Brain Module) —— Agent的“CPU和操作系统”
这是最核心、最复杂的部分,负责所有决策和逻辑处理。我们也可以把大语言模型(LLM)看作大脑的“思考皮层”。
大脑模块内部又可以细分为几个关键子模块:
- A. 意图理解与任务分解
- 功能:解析用户的模糊指令,明确其真实意图。然后将一个复杂任务(如“帮我分析一下特斯拉第三季度的财报并写一份摘要”)分解成一系列可执行的、有序的子任务或步骤。
- 示例:任务分解为
1. 搜索并获取特斯拉Q3财报->2. 提取关键财务数据(收入、利润、交付量)->3. 概括管理层评论->4. 整理成摘要格式。
- B. 规划与决策 (Planning & Reasoning)
- 功能:制定达成目标的行动计划。它会根据当前状态和分解后的任务,决定下一步要做什么(是调用一个工具,还是生成一段文本,还是询问用户)。这一过程常需要推理能力。
- 关键技术:
- Chain-of-Thought (CoT):通过“让我们一步步思考”来引导模型进行复杂推理。
- Tree-of-Thoughts (ToT):探索多种推理路径,并选择最优解。
- ReAct (Reason + Act):交替进行“推理”和“行动”,让模型思考当前情况并决定下一步行动。
- 计划-执行 (Plan-and-Execute):先制定完整的计划步骤,然后再逐步执行。
- C. 工具调用 (Tool Use / Function Calling)
- 功能:这是Agent突破语言模型局限的关键。Agent需要调用外部工具来获取实时信息、执行计算、操作软件等。LLM会生成一个特殊的结构化输出(如JSON),指定要调用哪个工具以及传入什么参数。
- 工具示例:搜索引擎API、计算器、代码解释器(Python)、数据库查询器、日历应用、发送邮件函数、甚至是操控机械臂的API。
- 流程:
大脑决策: 需要查询天气->生成: { "tool": "get_weather", "params": {"city": "Beijing"} }->执行模块调用工具->将结果返回给大脑。
3. 执行模块 (Execution Module) —— Agent的“手脚”
这个模块负责将大脑的决策转化为对环境的具体操作。
- 功能:接收大脑模块发来的具体动作指令,并精确地执行它。执行后,环境状态会发生变化。
- 动作类型:
- 原子动作:一次简单的操作,如“点击按钮”、“发送文本”、“调用一次API”。
- 复合动作:由一系列原子动作组成的脚本。
- 输出动作:直接生成回复给用户,这是最常用的一种“执行”。
- 反馈:执行完成后,该模块会将执行结果(成功/失败、返回的数据)反馈给大脑模块,形成闭环。大脑模块会据此判断下一步行动。
4. 记忆模块 (Memory Module) —— Agent的“笔记与档案”
这是让Agent能进行多轮交互和长期学习的关键。没有记忆,Agent每次对话都是“失忆”的。
记忆分为两大类:
- 短期记忆 (Short-term Memory):
- 对应:当前对话的上下文。
- 实现:将所有对话历史(用户指令、Agent的推理和行动、工具返回结果)都放在LLM的上下文中(Context Window)。缺点是受限于模型的最大上下文长度。
- 长期记忆 (Long-term Memory):
- 对应:在多个会话中持久化的知识或经验。
- 实现:通常使用向量数据库。Agent会将重要的信息(如用户的偏好、已解决过的问题、领域知识)进行向量化嵌入(Embedding)并存储。当需要回忆时,它会对问题做同样的向量化,去数据库中检索最相关的信息,然后将这些信息注入到当前的工作上下文中。
- 用途:
- 事实记忆:“用户上周说过他喜欢喝美式咖啡。”
- 过程记忆:“上次解决数据库连接错误时,我重启了服务并清理了缓存。”
- 经验学习:通过反馈(如用户点击“不喜欢”)来调整未来行为。
完整的运行流程示例:一个“旅行规划Agent”
让我们用一个具体例子串联起所有模块:
用户输入:“帮我规划一个去东京的5天4晚旅行计划,预算中等,我比较喜欢动漫文化。”
- 感知模块:接收文本,将其转化为内部状态
UserIntent: travel_planning, Destination: Tokyo, Duration: 5days, Preference: anime。 - 大脑模块(短期记忆加载):Agent的短期记忆(上下文)中包含当前这个用户请求。
- 任务分解:大脑内部将任务分解为子任务:
- Step 1: 搜索东京动漫相关景点(秋叶原、三鹰之森吉卜力美术馆等)。
- Step 2: 查找中等价位的住宿推荐。
- Step 3: 规划每天的交通路线。
- Step 4: 生成完整的日程表。
- 规划与工具调用:
- 推理:“我需要获取实时信息,因为我的内部知识可能过时且没有具体预算信息。”
- 动作1:调用
web_search工具,参数query="东京 动漫景点 推荐 最新" - 动作2:调用
map_search工具,参数location="Tokyo", query="中等价位酒店 靠近秋叶原"
- 执行模块:并行(或顺序)调用真实的网络搜索API和地图API,并将结果(景点列表、酒店列表)返回给大脑。
- 大脑再决策:收到工具返回的原始信息后,大脑模块利用LLM的生成能力,结合所有信息,规划出一条合理的、包含日期、景点、住宿、饮食建议的5日行程。
- 执行模块(输出):将最终生成的计划文本输出给用户。
- 记忆模块(长期):在这次对话结束后,Agent可以将
“用户:张三,偏好:动漫文化,目的地:东京”这条信息存储到长期记忆中。下次该用户再问“帮我推荐一部动漫主题的旅行目的地”时,Agent就能检索到这条记忆并给出个性化建议。
总结
模块 | 类比人类 | 核心作用 | 关键技术 |
感知模块 | 五官 | 接收并转化外界信息 | 多模态模型、结构化解析 |
大脑模块 | 大脑 | 核心决策中心:理解、分解、规划、调用工具 | LLM、CoT/ToT/ReAct、Function Calling |
执行模块 | 手脚 | 执行决策,对环境产生实际影响 | API调用、代码执行、机器人控制 |
记忆模块 | 笔记/经验 | 保存短期上下文和长期知识 | 上下文窗口、向量数据库、Embedding |
最重要的核心思想:
- LLM作为“推理引擎”:Agent不是简单地生成文本回复,而是把LLM当作“思考核心”来生成决策、规划和工具调用指令。
- 闭环循环:
感知 -> 决策 -> 执行 -> 再感知...这个循环让Agent能够应对动态、复杂的任务。 - 工具扩展能力:Agent的能力边界由其可调用的工具集决定。通过工具,Agent可以操作整个世界(数字或物理)。
面试回答
一个 Agent 的基础框架,本质上就是一个‘感知-决策-执行’的闭环循环系统。
具体拆开看,我把它理解为四个必须的模块:
- 大脑模块:这是核心。它不负责输出最终答案,而是负责推理。比如‘我现在该用哪个工具?用户到底要什么?’——典型代表是 ReAct 模式(推理+行动)。
- 感知模块:Agent 怎么接收信息?不只是文本,还有图像、语音、甚至系统报错日志。这一步决定它能否理解当前状态。
- 执行模块:这是 Agent 的‘手和脚’。比如调用搜索引擎、写代码、发API请求。
- 记忆模块:要分两层——短期记忆(当前对话上下文,像人脑子里想着的事)和长期记忆(存在向量数据库里的历史知识,像人翻笔记本)
举个例子:
我要 Agent 帮我订杯咖啡
- 感知:听到‘我渴了’;
- 大脑:推理出‘需要订咖啡’;
- 记忆:想起我上周点的是冰美式;
- 执行:调用外卖 API 下单。
这就跑完了一个完整的 Agent 循环。
如果小假的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!
