跳到正文

Agent 核心机制怎么工作?

大模型智能体的感知、规划与工具调用原理

原题:请详细解释大模型智能体(Agent)的工作原理和核心机制

Agent · 百度真题

30 秒回答

  1. Agent的核心定义:感知-思考-行动的循环架构
  2. ReAct范式的推理与行动交织机制
  3. Function Calling的实现原理和调用流程
  4. 记忆机制的设计(短期/长期记忆)

回答与解析

答案要点

  • Agent的核心定义:感知-思考-行动的循环架构
  • ReAct范式的推理与行动交织机制
  • Function Calling的实现原理和调用流程
  • 记忆机制的设计(短期/长期记忆)
  • 多Agent协作与任务分解策略

Agent的本质:LLM + 工具 + 控制循环

Agent不是简单的"模型套壳",而是让大模型具备自主决策能力的系统架构。


核心架构:感知-思考-行动循环

┌─────────┐    ┌─────────┐    ┌─────────┐    ┌─────────┐
│  环境输入  │ → │  思考推理  │ → │  执行行动  │ → │  观察反馈  │
│ (Observation)│ │ (Thought) │ │  (Action) │ │(Observation)│
└─────────┘    └─────────┘    └─────────┘    └────┬────┘
                                                   │
                              ←←←←←←←←←←←←←←←←←←←┘

关键机制详解

1. ReAct范式(推理+行动交织)

  • 传统CoT:只推理,不行动 → 无法获取外部信息
  • ReAct:Thought → Action → Observation → Thought...
  • 每一步都显式输出思考过程,决定调用工具还是给出答案

2. Function Calling实现

# 核心流程:模型生成结构化调用指令
tools = [{
    "name": "search",
    "description": "搜索实时信息",
    "parameters": {"query": {"type": "string"}}
}]

# 模型输出:{"name": "search", "arguments": {"query": "..."}}
# 系统执行 → 结果回填 → 模型继续推理

3. 记忆设计

类型 作用 实现
短期记忆 单轮对话上下文 窗口缓存
长期记忆 跨会话知识积累 向量数据库存储+检索

4. 规划能力

  • 单Agent:任务分解(将复杂目标拆为子步骤)
  • 多Agent:角色分工(规划者、执行者、验证者协作)

与RAG的本质区别

RAG Agent
交互方式 单次检索+生成 多轮工具调用循环
决策能力 无,被动响应 有,主动规划
适用场景 知识问答 复杂任务执行

Agent的核心价值:让模型从"答题者"变成"执行者"

口语版讲法(约4分钟)

  • Agent本质是让模型从答题者变成执行者
  • 核心循环:感知-思考-行动,ReAct范式
  • Function Calling是连接模型和工具的桥梁
  • 记忆和规划是落地关键
  • 和RAG的边界:Agent适合复杂任务,RAG适合知识问答

面试官你好,这道题问的是大模型智能体的工作原理,我觉得本质上它是在问:怎么让大模型从一个只会回答问题的聊天机器,变成一个能自主执行任务的智能体。这不是简单的套壳,而是一整套架构设计。

我理解Agent的核心就是感知-思考-行动的循环。模型拿到环境输入后,先思考,再决定行动,然后观察反馈,再思考下一步。这个循环里最关键的范式是 ReAct,它把推理和行动交织在一起。传统CoT模型只推理不行动,信息是封闭的;ReAct每一步都输出思考,然后决定是调用工具还是直接给出答案。你可以想象成,模型不再是闷头想,而是不断问自己“我现在需要查什么”,查完再想下一步。

具体到实现,核心机制是 Function Calling。模型输出一个结构化的调用指令,比如{"name": "search", "arguments": {"query": "..."}},系统执行这个函数,把结果回填给模型,模型再继续推理。这个流程看似简单,但落地时有个坑:模型可能幻觉出不存在函数,或者参数格式错。所以上线前我会特别关注两件事,一是函数定义要写得极其清晰,description要写透,二是做一轮严格的格式校验,格式不对直接重试,避免把乱数据喂给下游。

再说记忆和规划。短期记忆就是上下文窗口,但长期记忆得靠 Vector Database 存历史信息或知识。规划这块,单Agent做任务分解,比如把“写一份市场分析报告”拆成“搜索数据、分析趋势、生成报告”几步。多Agent的话,可以角色分工,一个规划者拆任务,一个执行者干活,一个验证者检查,有点像一个小团队。

举个例子,客服退款场景。用户说“我上个月买的衣服没收到,要退款”。如果是RAG,它就搜一下退货政策,然后回复。但Agent会这样跑:先调订单查询工具,发现确实没收到,再调物流工具看状态,如果物流显示已签收,它可能再调客服备注工具查有没有异常,最后综合判断是补发还是退款。每一步都调用不同工具,观察结果再决策。

所以Agent和 RAG 的边界很清楚。RAG适合单次检索加生成的知识问答,比如问“退货政策是什么”,它没有决策能力,只是被动响应。Agent适合复杂任务执行,比如刚才那个退款案例,需要多轮工具调用和主动规划。但真正落地时,我常常两者一起上,比如先用RAG获取知识,再用Agent做决策执行。

最后我说一下我的取舍。我更倾向把Agent看作一个编排层,而不是一个模型能力问题。模型本身是底座,关键是控制循环、工具定义、记忆管理这些工程设计做得好不好。如果这些做不好,模型再强也容易跑偏。所以我会把Agent看成是系统工程,核心是让模型在可控范围内自主行动。

另外,现在有个趋势是把Agent和RAG融合成 Agentic RAG,让Agent动态决定什么时候检索、检索什么,而不是固定走检索再生成。这块我觉得会是下一阶段的重点,但实现起来对模型的推理能力和工具调用的稳定性要求更高。

关键一句:Agent和RAG的融合趋势,即Agentic RAG,让Agent动态决定检索时机和内容

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设你做个电商客服Agent,用户问‘帮我查一下上周的订单’,然后又说‘再推荐个类似的商品’。Agent得先调订单接口,再根据结果决定调用推荐系统。你具体怎么设计这个‘思考-调用-继续思考’的流程?

  2. 问法 2 · 层层追问

    你理解的大模型Agent是咋工作的?……那它怎么决定下一步该干啥?……如果它需要调用外部工具,比如搜索或数据库,你怎么让模型知道什么时候调、调哪个、参数填什么?

  3. 问法 3 · 直球架构

    请直接讲大模型Agent的核心架构和工作原理,重点说清楚感知-思考-行动的循环、ReAct范式、Function Calling的调用流程,以及记忆和规划是怎么设计的。

同模块相关题目