AI Agent组件如何协同工作?
拆解感知、规划、记忆与执行模块的功能与协作
原题:请详细阐述一个AI Agent系统通常包含哪些核心组件,并说明每个组件的主要功能。
Prompt工程 · 百度真题
30 秒回答
- 明确列出Agent的4-5个核心组件(规划、记忆、工具、行动、感知等)
- 每个组件的功能描述准确
- 能说明组件间的协作关系
- 提及主流架构模式(如ReAct、CoT)
回答与解析
答案要点
- 明确列出Agent的4-5个核心组件(规划、记忆、工具、行动、感知等)
- 每个组件的功能描述准确
- 能说明组件间的协作关系
- 提及主流架构模式(如ReAct、CoT)
- 有实际框架或项目经验加分
一个完整的AI Agent系统通常包含以下核心组件:
1. 感知模块(Perception)
- 接收外部环境输入:用户query、多模态数据、工具返回结果等
- 负责信息解析和预处理,转化为模型可理解的格式
2. 规划模块(Planning)
- 任务分解:将复杂目标拆解为可执行的子步骤
- 推理策略:支持CoT(思维链)、ReAct(推理+行动交替)、ToT(思维树)等模式
- 动态调整计划,根据反馈迭代优化
3. 记忆系统(Memory)
- 短期记忆:当前对话上下文、会话窗口内的信息
- 长期记忆:向量数据库存储的历史经验、用户画像、领域知识
- 通过检索增强实现跨会话的个性化服务
4. 工具/行动模块(Tools & Action)
- 工具注册:外部API、数据库、计算引擎等
- 工具选择:根据规划结果动态选择合适工具
- 参数解析:将自然语言转化为结构化调用参数(Function Calling)
- 结果处理:解析工具返回,决定继续规划或输出结果
5. 执行与反馈循环
- 观察→思考→行动的闭环执行
- 异常处理:工具失败时的重试、降级或重新规划
典型协作流程:感知输入 → 记忆检索 → 规划决策 → 工具执行 → 结果反馈 → 记忆更新。
实际框架参考:LangChain/LangGraph、AutoGPT、MetaGPT等,核心差异在于规划策略的自动化程度和Multi-Agent协作机制。
口语版讲法(约4分钟)
- 一句话点出本质:Agent 核心是感知-规划-记忆-工具-行动的闭环
- 感知模块:输入解析,多模态预处理
- 规划模块:任务分解与推理策略,ReAct 和 CoT 的适用边界
- 记忆系统:短期与长期记忆,向量数据库的落地前提
- 工具与行动:Function Calling 和异常处理
- 闭环协作与风险:观察-思考-行动循环,失败场景与取舍
这个问题其实是在问,你要怎么把一个纯语言模型变成一个能自主完成任务的系统。核心就是一个感知-规划-记忆-工具-行动的闭环。
先说感知模块。它负责接收外部输入,比如用户问的问题、图片、或者工具返回的结果。它的工作不只是接收,还要把这些原始数据转化成模型能理解的格式,比如把图片转成描述文本,或者把工具返回的 JSON 解析成自然语言。
再一个就是规划模块,这是 Agent 的脑子。它负责把复杂目标拆成可执行的子步骤,比如用户说“帮我订一张去北京的机票”,它要拆成查航班、比价格、下单、支付这些步骤。推理策略上,ReAct 和 Chain-of-Thought 是两种主流模式。CoT 适合纯推理任务,比如数学题,让模型一步步思考;ReAct 更适合需要跟外界交互的场景,比如搜索、查数据库,它让模型在思考和行动之间交替。实际落地时,我一般会混合使用,比如先用 CoT 做任务分解,再用 ReAct 执行每个子步骤。这里有个坑:如果任务需要频繁调用工具,ReAct 容易陷入循环,所以我会在规划时加一个最大步数限制,超时就直接报错。
然后是记忆系统。短期记忆就是当前对话的上下文,靠 sliding window 控制长度。长期记忆靠 Vector Database 存储历史经验和用户画像。举个例子,客服场景里,用户之前投诉过退款问题,下次来问其他订单时,Agent 能检索到那个历史记录,给出更个性化的回复。但长期记忆有个前提:向量检索的召回质量要够高,否则检索到不相关的内容反而会干扰模型。我见过一个失败案例,因为 Embedding 模型没做好领域适配,导致 Agent 总是引用错误的历史对话,越帮越忙。
工具和行动模块是 Agent 的手脚。它通过 Function Calling 把用户的自然语言请求转化成 API 调用。这里的关键是工具注册和参数解析。比如用户说“查一下这个订单的状态”,Agent 要能识别出“订单号”这个参数,并从上下文提取出来。工具执行后,返回结果还要解析,决定是继续规划还是直接输出。异常处理也很重要,比如工具超时或者返回错误,我会设计重试机制,重试三次还失败就降级,比如改用备选工具或者直接告诉用户“暂时查不到”。
最后是执行与反馈循环。整个流程是观察-思考-行动的闭环:感知输入,检索记忆,规划决策,调用工具,拿到结果后更新记忆,然后进入下一轮。真正上线时,我最关注的是失败场景。比如工具调用失败后,Agent 有没有能力重新规划,而不是卡死。另一个风险是 Hallucination,如果 Agent 对工具返回的结果过度解读,可能会编造不存在的功能,所以我会在系统 Prompt 里强调“只基于工具返回的事实回答,不要猜测”。
说到这个,其实现在很多框架像 LangChain 已经封装好了这些组件,但我觉得它们有个共同问题:规划策略太死板。比如 ReAct 在复杂任务中容易产生冗余步骤。我更倾向自己实现一个轻量的规划器,用 Few-shot 示例来引导模型做更高效的分解。当然,这需要领域数据来构造示例,不是所有场景都适用。
所以我的理解是,Agent 不是一个固定的架构,而是根据场景做取舍。比如客服场景,记忆和工具是核心;而代码生成场景,规划和执行更重要。我会把 Agent 看成一套可插拔的组件,根据需求灵活组合。
关键一句:现有框架如LangChain的规划策略太死板,倾向于自己实现轻量规划器用Few-shot引导
面试官还可能这样问
- 问法 1 · 场景切入
假设我们做一个智能客服助手,用户问“帮我查一下上周的订单”,然后系统需要自己规划步骤、调API、摘要结果。你感觉这类系统里该有哪些核心模块?各自管什么事?
- 问法 2 · 层层追问
一个AI Agent能自主完成任务,你觉得它内部得有几个基本部分?……那它怎么知道先做什么后做什么?……记忆和工具又分别起什么作用?……能不能串起来讲讲它们怎么配合?
- 问法 3 · 直球架构
请直接说说一个AI Agent系统的核心组件,至少四个,每个组件的功能是什么,以及它们之间的协作流程。