Agent 核心组件有哪些?
大模型智能体必备的规划、记忆、工具调用模块详解
原题:请列举并详细说明大模型智能体的核心组件及其功能
Agent · 百度真题
30 秒回答
- 明确列出Agent的4-5个核心组件(规划、记忆、工具、行动/执行)
- 每个组件需说明具体功能和典型实现方式
- 能区分短期记忆与长期记忆
- 提及ReAct或类似推理-行动循环机制
回答与解析
答案要点
- 明确列出Agent的4-5个核心组件(规划、记忆、工具、行动/执行)
- 每个组件需说明具体功能和典型实现方式
- 能区分短期记忆与长期记忆
- 提及ReAct或类似推理-行动循环机制
- 体现对实际系统设计的理解而非纯理论
大模型智能体的核心架构通常包含四个关键组件:
1. 规划模块(Planning)
- 功能:将复杂任务拆解为可执行的子步骤,支持多步推理
- 典型实现:CoT(思维链)、ReAct(推理+行动交替)、ToT(思维树)
- 关键能力:自我反思、错误修正、动态调整计划
2. 记忆模块(Memory)
| 类型 | 功能 | 实现方式 |
|---|---|---|
| 短期记忆 | 当前对话上下文、中间结果 | 滑动窗口、KV Cache |
| 长期记忆 | 历史经验、领域知识、用户偏好 | 向量数据库(如Milvus)、知识图谱 |
3. 工具调用(Tool Use)
- 功能:扩展LLM能力边界,执行外部操作
- 核心机制:Function Calling / Toolformer范式,JSON格式定义工具Schema
- 常见工具:搜索引擎、代码解释器、数据库、API接口
4. 行动执行(Action)
- 功能:将规划转化为实际输出,与外部环境交互
- 循环模式:观察(Observation)→ 思考(Thought)→ 行动(Action)
5. 控制与协调(可选但重要)
- 多Agent协作时的调度机制
- 安全护栏(Guardrails):输出审核、权限控制
一句话总结:Agent = LLM(大脑)+ 规划(思考策略)+ 记忆(经验沉淀)+ 工具(手脚延伸),通过"推理-行动"循环完成自主任务。
口语版讲法(约4分钟)
- 一句话定位:本质是问大脑怎么分工
- 规划模块:拆任务、定步骤,ReAct循环
- 记忆模块:短期与长期,业务场景里的缓存与向量库
- 工具调用:Function Calling,不是万能钥匙
- 风险与取舍:边界划分、失败场景、我的判断
这道题其实是在问,当我们想用大模型做自主任务时,大脑怎么分工,哪些部件必须得有。我会从四个核心组件来拆,分别是规划、记忆、工具调用,还有执行循环。先说规划。规划模块的核心是把一个复杂问题拆成可执行的子步骤,比如用户说“帮我查订单状态,如果超时了发起退款”,模型不能一步到位,得先查订单、判断状态、再决定下一步。典型的实现是 ReAct 循环,就是推理和行动交替,模型每输出一个思考就跟着一个动作,然后观察结果再继续。另一种是 Chain-of-Thought,让模型一步步推理,适合不需要外部动作的场景。但实际落地时,我倾向于把两者结合,比如先 CoT 拆出子任务,然后用 ReAct 去执行每个子任务,这样更可控。这里有个坑,就是规划不能太死板,如果第一步查询失败了,计划得能动态调整,否则整个流程就卡死了。所以我会给规划加一个重试和回退机制,最多重试三次,三次都失败就上报异常。再一个组件是记忆。记忆分短期和长期。短期记忆就是当前对话的上下文,比如用户刚才说了什么、中间结果是什么,实现上就是 Sliding Window 或者 KV Cache,把最近的几轮对话或者关键中间结果存下来。长期记忆则负责沉淀历史经验、领域知识、用户偏好,比如一个电商客服 Agent,需要记住某个用户是 VIP,他之前投诉过物流慢,那么下次对话就要避免再推荐慢的快递。长期记忆的典型实现是 Vector Database,比如用 Milvus 存向量,按语义检索。但这里要划清边界:如果知识是结构化且频繁更新的,比如商品库存和价格,直接查数据库比向量检索更可靠,别为了用向量而用向量。举个例子,客服场景里用户问“我的订单怎么还没到”,Agent 需要先查订单数据库得到物流单号和状态,然后查知识库里的物流政策,最后查向量库里的类似投诉处理记录。这三个来源缺一不可,不能只靠向量检索。第三个核心组件是工具调用。大模型本身只能生成文本,要执行外部操作必须通过工具。典型方式是 Function Calling,就是给模型定义一组工具 Schema,模型根据用户需求选择调用哪个工具,并填充参数。比如订单查询工具,参数是订单号,返回状态。但工具调用不是万能的,常见失败场景是模型幻觉参数,比如把“订单号”和“手机号”搞混。所以上线我会特别关注工具参数的校验,用正则或者枚举值做一层过滤,参数不对直接拒绝调用并让模型重新思考。另外,工具的数量不能太多,超过十来个模型就容易选错,所以我会对工具做分类和优先级排序,高频工具优先暴露。最后是行动执行,其实就是把规划、记忆、工具串起来的循环。模型先观察当前状态,然后思考下一步做什么,接着执行一个动作,拿到结果再观察,如此反复。这个循环的关键是终止条件,不能无限循环下去。我会设置最大步数,比如十步,超过就返回部分结果并提示用户。还有安全护栏,比如输出审核,防止模型生成违规内容。所以整体上,我会把 Agent 看成 一个由规划驱动、记忆辅助、工具执行的闭环系统,而不仅仅是 LLM 加几个插件。落地时最怕的是组件之间耦合太紧,比如规划模块直接硬编码了工具名称,那换场景就得重写。所以我会设计成松耦合的,规划模块只输出意图和参数,由调度模块去匹配工具,这样可扩展性好很多。其实还有一个容易被忽略的组件是监控和日志,没有它你根本不知道 Agent 在哪一步失败了,每次循环的输入输出都要落盘,方便事后复盘和优化。但这个可能更偏工程侧了。
关键一句:监控和日志是容易被忽略但关键的组件,没有它无法定位失败环节,需要记录每次循环的输入输出。
面试官还可能这样问
- 问法 1 · 场景切入
假设我们要做一个电商客服智能体,用户问‘帮我查一下上周的订单’,它需要先调用订单API,再根据结果回复。你觉得这个智能体应该由哪些核心部件组成?各自负责什么?
- 问法 2 · 层层追问
你理解的大模型智能体通常包含哪些模块?……那记忆这块你怎么区分短期和长期?……如果任务执行到一半发现计划不对,怎么调整?
- 问法 3 · 直球架构
请直接列举并说明大模型智能体的核心组件,包括每个组件的功能、典型实现方式,以及它们如何协同完成一个复杂的多步任务。