跳到正文

Agent 组件如何实现自主决策与学习?

规划、记忆、工具调用如何配合实现自主决策与持续学习

原题:请系统阐述大模型智能体(Agent)的基本工作原理与工作机制,详细说明其核心组成部分(如规划、记忆、工具调用、执行与反馈等模块)的功能,并解释这些组件如何协同工作以实现复杂任务的自主决策与持续学习。

Agent · 百度真题

回答与解析

Agent vs LLM:从"问答"到"行动"

LLM是被动响应器,Agent是主动决策者。核心差异在于Agent具备目标驱动环境交互能力——能分解任务、调用工具、根据反馈调整策略。


四大核心模块

1. 规划(Planning)

  • 任务分解:将复杂目标拆解为可执行的子步骤(如"订机票"→查航班→选座位→支付)
  • 推理策略:CoT(链式思考)、ToT(树状搜索)、ReAct(推理+行动交错)
  • 动态调整:根据执行反馈重新规划(如工具调用失败时换备用方案)

2. 记忆(Memory)

类型 作用 典型实现
短期记忆 当前对话上下文、任务状态 滑动窗口、摘要压缩
长期记忆 历史经验、用户偏好、领域知识 向量数据库(如用embedding存成功案例)
工作记忆 当前步骤的中间结果 显式的状态变量

3. 工具调用(Tool Use)

  • Function Calling:LLM生成结构化参数调用外部API(搜索、计算、数据库等)
  • 工具选择:根据任务意图匹配最优工具(需工具描述prompt)
  • 结果解析:将工具返回的非结构化数据转为LLM可理解的上下文

4. 执行与反馈(Action-Feedback Loop)

观察环境 → 规划决策 → 执行动作 → 获取反馈 → 更新状态 → 循环
  • 自我反思:执行失败后分析原因(如参数错误→修正重试;工具不可用→换方案)
  • 奖励信号:任务完成度、用户满意度作为优化依据

协同工作机制:以ReAct为例

Thought: 我需要查北京明天天气 → 
Action: 调用天气API(location="北京", date="明天") → 
Observation: 返回JSON数据 → 
Thought: 根据温度建议穿衣 → 
Action: 生成回复给用户

关键闭环:每个Action的Observation会写入记忆,影响下一步Thought,形成推理-行动-观察的持续迭代。


持续学习

  • 经验沉淀:将成功任务轨迹(规划路径+工具调用)存入长期记忆
  • 反思优化:失败案例触发"自我批评"prompt,提取教训更新策略
  • 模型微调:用高质量交互数据SFT或RLHF优化底层LLM的决策能力

学习建议

建议从经典Agent架构(如ReAct、Reflexion)入手,结合实际案例理解各模块作用,多阅读论文与开源项目,强化对闭环协作机制的理解。

口语版讲法(约4分钟)

  • 这道题本质在问什么:Agent从被动问答到主动决策的跃迁
  • 核心四大模块:规划、记忆、工具调用、执行反馈
  • 协同机制:以ReAct为例的推理-行动-观察闭环
  • 落地风险与前提:工具可靠性、记忆一致性、失败处理
  • 我的取舍:把Agent看作可进化的任务编排器,持续学习靠经验积累

面试官你好,这道题问的是Agent的工作原理,我觉得本质上是想考察从被动问答到主动决策的跃迁。LLM本身是一个静态的响应器,你问它答,但Agent不一样,它要有目标感、能拆任务、会调工具,还能根据反馈自己调整。

我先说核心模块,规划、记忆、工具调用、执行反馈这四个。规划这块,说白了就是任务分解和推理策略。比如用户说‘帮我订机票’,Agent不能一步到位,得拆成查航班、选座位、支付这些子步骤。推理策略我常用ReAct,就是推理和行动交错进行,每一步先想再动,动完看结果再想下一步。这里有个坑,规划不是死板的,如果工具调用失败了,比如支付接口超时,Agent得能动态调整,比如换备用支付方案。

再一个是记忆。记忆分短期、长期和工作记忆。短期记忆就是当前对话上下文,用滑动窗口或者摘要压缩来管理;长期记忆存历史经验和用户偏好,我一般用向量数据库,比如把成功案例的embedding存进去,下次遇到类似场景直接检索复用;工作记忆就是当前步骤的中间结果,用显式的状态变量维护。这里有个前提,长期记忆的写入和检索质量很关键,如果embedding模型选得不好或者索引构建有问题,记忆反而会干扰决策。

工具调用是Agent跟外部世界交互的接口。Function Calling是主流做法,LLM生成结构化参数去调API,比如搜索、计算、数据库。工具选择需要精确匹配任务意图,所以工具的description prompt要写得足够清晰。结果解析也要注意,工具返回的可能是JSON或者HTML,得转成LLM能理解的上下文。

执行反馈是个闭环:观察环境、规划决策、执行动作、获取反馈、更新状态,然后继续。我特别看重自我反思这个环节,执行失败后要分析原因,比如参数错误就修正重试,工具不可用就换方案。举个例子,客服退款场景,Agent先查订单状态,如果订单异常,它不能直接退款,得先走人工审核流程,然后根据审核结果再决定下一步。这个闭环的关键是每个动作的观察结果都要写回记忆,影响下一步的思考。

协同工作机制我拿ReAct举例:Thought是‘我需要查北京明天天气’,然后Action是调用天气API,传入location和date参数,Observation返回JSON数据,再Thought‘根据温度建议穿衣’,最后Action生成回复给用户。每一步的Observation都会更新短期记忆,形成推理-行动-观察的持续迭代。

这里有个延伸点,就是持续学习怎么落地。我倾向于把成功任务轨迹,包括规划路径和工具调用记录,存到长期记忆里做经验沉淀;失败案例则触发自我批评prompt,让Agent自己分析原因并更新策略。但更激进的做法是用这些高质量交互数据做SFT或RLHF微调底层模型,不过这样做成本高且容易遗忘,所以我会把Agent看成一个可进化的任务编排器,优先靠记忆和反思来迭代,模型微调只作为锦上添花。

落地时我会特别关注几个风险:一是工具可靠性,如果外部API不稳定,Agent的整个推理链就会断;二是记忆一致性,长期记忆如果混入了噪声,决策质量会下降;三是失败处理,如果Agent在闭环里卡住了,得设计超时和回退机制。所以我的判断是,Agent的核心不是模型多强,而是闭环设计多健壮。

关键一句:持续学习靠经验沉淀和反思,模型微调是锦上添花,优先用记忆和反思迭代。

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设你在做一个智能客服Agent,用户说“帮我查一下订单”,但订单号没给。Agent得自己问用户、调接口、还可能要处理查询失败。你讲讲这个Agent从拆任务到调工具、再到根据反馈调整的整个工作流程是怎么设计的?

  2. 问法 2 · 层层追问

    你觉得大模型和智能体的核心区别在哪?……那Agent怎么把一个大目标拆成一步步做?……拆完之后它怎么调用外部工具,比如查数据库或发API?……如果工具调用失败了,它怎么自己调整?

  3. 问法 3 · 直球架构

    请从系统设计角度,完整阐述智能体的工作原理,包括规划、记忆、工具调用、执行反馈这几个核心模块,以及它们如何协同实现自主决策和持续学习。直接讲清楚ReAct这类闭环机制就行。

同模块相关题目