30 分钟
大模型与 AI Agent 前沿工程

AI Agent 架构:工具调用、记忆、规划与 ReAct

讲清一个能自主完成任务的 Agent 由哪些部件构成,以及它们如何协同

  • 理解 Agent 与普通聊天机器人的本质区别
  • 掌握工具调用(Function Calling)的完整闭环
  • 区分短期/长期记忆及其实现
  • 理解 ReAct/规划—执行循环与终止条件

Agent = 大模型 + 工具 + 记忆 + 可控的行动循环

普通聊天只能“说”,Agent 能“做”:它能把用户目标拆解为步骤,自主决定调用哪个工具、读取工具结果、再决定下一步,直到任务完成。大模型在其中扮演“大脑/决策者”,但真正让它强大的是外接的工具、可积累的记忆,以及一套被严格约束的行动循环。

🐍关键认知:模型不直接执行任何操作

模型本身不能联网、不能读写你的数据库、不能下单。它只能输出“我想调用某工具、参数是什么”的结构化意图,真正执行的是你写的、带权限校验的程序。这层“模型决策、程序执行”的边界,正是 Agent 安全与可控的生命线。

1.1 工具调用(Function/Tool Calling)闭环

一次完整的工具调用分四步:程序把可用工具的名称、用途、参数 Schema 告诉模型;模型判断需要调用时,输出结构化的工具名与参数(而不是自然语言);程序对参数做校验、做权限判断,然后真正执行工具(查天气、查库、调 API);把工具结果回传给模型,由它继续推理或给出最终答复。

配对题把步骤与其职责对应
⚠️工具设计的安全红线

工具粒度要小而明确——一个工具只做一件事。写操作类工具(删除、转账、发送、发布)必须二次确认或加白名单。永远不要把模型给的参数直接拼进 shell 命令或 SQL,否则会产生命令注入。工具必须有超时和失败兜底。

选择题

在 Agent 里,真正执行“查询数据库/下单”这类动作的是哪个部分?

1.2 记忆:短期上下文与长期记忆

短期记忆:当前对话上下文窗口里的内容,随会话结束而清空,受窗口长度限制。长期记忆:把用户偏好、历史事实、过往结论抽取后存入外部(数据库/向量库),需要时检索回来。它又分“情景记忆(发生过什么)、语义记忆(抽象出的事实/画像)、程序记忆(学会的流程/技能)”。

长期记忆的标准做法是「写入时抽取摘要、读取时按相关性检索」,不是把全部历史无脑塞回上下文。记忆得支持删除、纠错——用户说「忘掉这个」就能删,还要注意隐私合规。

避坑

记忆系统的常见坑

记忆污染:错误信息被写成长记忆后会反复误导,需要靠置信度判断,再加上人工/用户确认;记忆冲突:新旧事实矛盾时以新代旧,同时标注时间;记忆膨胀:无差别记录会导致检索噪声,应该抽取「可复用事实」,别记流水账;隐私:敏感信息要脱敏,得提供删除和导出功能。

1.3 规划与行动循环:ReAct 与 Plan-and-Execute

ReAct 是 Reasoning + Acting 的缩写,核心就是让模型在「思考—行动—观察」里循环:先想下一步做什么,调用工具,看返回的结果,再想下一步,直到得出最终答案。它的优势是灵活,能随时根据真实的工具返回结果纠偏;短板是容易走弯路,执行的步数没法提前控制。

Plan-and-Execute 的思路是先一次性把整个任务的步骤清单列好,再一步步往下做,过程里有需要就重新规划。它适合步骤多的复杂任务。实际用的时候经常把它和 ReAct 结合起来:先出整体计划,到执行环节,每个子任务用 ReAct 来处理。

⚠️必须设计“刹车”

自主循环最大的风险是失控:反复调用工具、陷入死循环、成本失控。生产级 Agent 必须设置:最大步数/最大工具调用次数、总超时与 Token 预算、每一步的可观测日志、异常即停与人工接管,以及“无法完成就明确退出”的终止条件。

选择题

下列哪项是生产级 Agent 必须具备、而 Demo 常缺失的?

1.4 一个 Agent 的标准后端结构

一个 Agent 服务,按工程视角拆的话,就这几个部分:对话/状态管理(存会话和中间步骤)、模型网关(统一调模型、重试、限流、算成本)、工具注册表(存名称、Schema、执行器、权限)、记忆层、编排循环(规划/ReAct)、可观测与审计(每一步的输入输出、耗时、Token)、兜底与降级策略。别死记某个框架的 API,框架会换,这些部件是长期稳定的。

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

Agent 的效果很大程度取决于:在有限上下文窗口里,于正确时机、以正确结构放入正确信息——系统指令、检索到的证据、对话历史、工具返回结果、少金属样例。围绕它要做信息的去噪、排序、压缩,以及记忆分层(短期在上下文、长期进向量库)。这比抠一句「魔法咒语」更本质。