LLM Agent 智能体底层原理
什么是 Agent
LLM 本身只是一个”只会说话的模型”:你问它”帮我订个机票”,它只能回你一段话,不能真的去订。
Agent(智能体) = 大模型(大脑)+ 工具(手脚)+ 记忆(经验)+ 规划(策略)。
它让大模型从”回答问题”升级为”完成任务”:自主决定下一步做什么、调用什么工具、根据结果调整计划,直到目标达成。
Agent 的核心四要素
| 要素 | 作用 | 举例 |
|---|---|---|
| 大脑(LLM) | 理解、推理、决策 | GPT、Llama、Qwen |
| 工具(Tools) | 与外部世界交互 | 搜索、计算器、代码执行、API |
| 记忆(Memory) | 保存上下文与经验 | 对话历史、向量库、长期记忆 |
| 规划(Planning) | 拆解任务、制定步骤 | ReAct、CoT、Plan-and-Execute |
一、工具调用(Function Calling / Tool Use)
原理
工具调用本质上还是文本生成,只不过模型输出的是结构化调用指令:
- 开发者把工具的描述(名称、参数、用途)以 JSON Schema 形式告诉模型(在 System Prompt 里)
- 模型判断”当前需要调用某个工具”,输出一个特殊的 JSON:
{"name": "get_weather","arguments": {"city": "北京"}}
- 应用层解析这个 JSON,执行真实函数,把结果作为一条新的消息回传给模型
- 模型基于工具返回结果继续推理,直至给出最终答案
工具描述的 Prompt 长什么样
可用工具:- search(query: string): 联网搜索,参数为查询关键词- calculate(expr: string): 计算数学表达式- get_weather(city: string): 查询城市天气
当需要调用工具时,只输出 JSON:{"name": "...", "arguments": {...}}工具描述的质量直接影响调用成功率:描述要准确、参数要精简、说明要覆盖边界情况。
工具调用的关键工程点
- 并行调用:模型一次可调用多个工具(现代 API 支持 tool_calls 数组)
- 失败重试:工具执行出错时,把错误信息回传给模型让它纠错
- 安全校验:工具是真实代码,必须做权限控制(不能把”删除数据库”暴露给任意 Agent)
二、ReAct 范式(推理 + 行动)
ReAct(Reasoning + Acting)是 Agent 最经典的工作范式,由论文 ReAct: Synergizing Reasoning and Acting in Language Models(2022)提出。
核心思想:让模型交替输出思考(Thought)→ 行动(Action)→ 观察(Observation):
Thought: 用户想知道北京天气,我需要查天气Action: get_weather("北京")Observation: 晴,26°CThought: 天气查询完成,可以回答用户了Final Answer: 北京今天晴,气温 26°C为什么 ReAct 有效
- 思考让模型推理当前状态,决定下一步
- 行动让模型实际调用工具
- 观察把真实世界的结果反馈给模型,纠正推理偏差
思考-行动-观察循环可以执行多轮,模型可以自我纠错:如果第一次搜索没结果,它会换个关键词再搜。
实现方式
在 API 时代,ReAct 循环由应用代码驱动:
while not finished: 1. 把当前消息历史发给 LLM 2. LLM 返回:要么是最终答案,要么是工具调用 3. 若是工具调用:执行工具,把结果追加进消息历史 4. 回到 1模型本身不”运行循环”,循环是应用层的 while 循环,模型只是每轮输出”下一步干什么”。
三、规划(Planning)
复杂任务需要拆解。常见规划策略:
1. CoT(思维链)
让模型”一步步思考”再回答,本质是让模型在输出最终答案前先生成中间推理步骤。简单但有效。
2. Plan-and-Execute
先让模型制定完整计划(步骤列表),再逐条执行,执行完一个步骤后可以修订后续计划:
Plan:1. 搜索"AI Agent"定义2. 整理核心概念3. 生成大纲4. 撰写文章好处:计划先行,减少长任务中的”走一步看一步”带来的发散。
3. Tree of Thoughts(思维树)
每步探索多个候选思路,像搜索树一样评估分支。效果好但开销大,主要用于难题推理。
4. Multi-Agent(多智能体协作)
多个 Agent 分工协作:规划者拆任务、执行者干活、评审者把关。典型框架如 AutoGen、CrewAI。协作的关键是消息协议——Agent 之间通过结构化消息传递任务与结果。
四、记忆系统(Memory)
短期记忆 vs 长期记忆
- 短期记忆:当前对话的上下文(直接放在 Prompt 里),受上下文窗口限制
- 长期记忆:跨会话保存的信息(用户偏好、历史结论、知识片段)
长期记忆的实现
长期记忆的存储载体通常是向量数据库:
- 把重要信息(总结、事实、用户偏好)Embedding 后存入向量库
- 新对话开始时,检索与该用户相关的记忆片段
- 把检索到的记忆拼进 Prompt
这就是 RAG 技术在 Agent 记忆上的应用。更进一步的记忆管理:
- 记忆压缩:对话太长时让模型总结旧内容,替换掉原始消息
- 记忆遗忘:过时的记忆要能淘汰,否则会污染判断
- 分层记忆:工作记忆(当前任务)、情景记忆(最近经历)、语义记忆(长期知识)
五、Agent 的完整执行循环
一个典型的单 Agent 系统运行时:
1. 接收用户目标2. 读取相关记忆(检索向量库)3. 循环: a. LLM 推理 → 决定行动 b. 行动 = 工具调用 / 子任务 / 直接回答 c. 工具结果写回上下文 d. 判断是否完成4. 输出结果,更新记忆六、Agent 框架做了什么
主流框架(LangChain、LangGraph、LlamaIndex、Dify、Coze)本质上提供了:
- 工具调用的统一抽象与解析
- ReAct 循环的状态机(LangGraph 的图编排)
- 记忆/向量库的接入封装
- 多 Agent 的消息路由
- Prompt 模板管理
框架解决的是工程复杂度,核心智能仍然来自模型本身。
七、Agent 的局限与风险
- 幻觉累积:多轮推理中错误可能被放大
- 工具误用:模型可能调用错误工具或错误参数
- 长任务漂移:步骤越多越容易偏离原始目标
- 安全风险:Agent 能执行真实操作,越权、数据泄露是真实威胁
- 成本:每轮循环都是模型推理,多轮任务成本线性增长
工程上通过人类确认节点(关键操作需审批)、超时与步数上限、输出校验来兜底。
小结
Agent 的本质公式:
Agent = LLM(推理决策) + Tools(行动能力) + Memory(经验) + Planning(策略)理解 ReAct 循环、工具调用协议、记忆检索这三件事,你就掌握了 Agent 的底层骨架。再往上,所有的 Agent 框架和产品形态(编程助手、客服机器人、自动化工作流)都是在这个骨架上生长出来的。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!


