
前言Agent 不是“一个模型”而是一套系统很多人第一次接触 Agent会以为“Agent 就是一个更聪明的 LLM。”但真正跑起来你会发现LLM 只是其中一块。一个能完成真实任务的 Agent至少需要六个部分协同感知接收输入和环境状态LLM 与规划推理、决策、任务分解记忆保存上下文、状态和经验工具与外部世界交互行动真正执行并改变环境执行循环把上面五步串起来持续运转。这六个部分可以对应成一个人LLM 是大脑规划是调度器记忆是经验与状态工具是手脚行动是执行循环是心跳。2025 年的 Agent 架构综述论文也采用了类似的组件划分当代 Agent 框架的核心组件包括感知、推理引擎、记忆层次、规划模块和工具接口。另一篇综述则将 Agent 能力组织为规划、工具使用、记忆、推理、自我改进和感知。下面我们逐个拆解。一、感知Agent 的输入层1.1 感知什么Agent 的感知来源通常有三类来源例子用户输入文本、语音、图片、文件、表单工具返回API JSON、网页 HTML、数据库结果、代码执行输出环境状态当前时间、系统状态、页面 DOM、传感器数据感知的核心任务不是“看见”而是把原始信息变成 Agent 能理解、能决策的结构化输入。有综述指出感知系统负责将环境感知转化为有意义的表示。1.2 感知层的关键设计归一化把不同来源的数据统一成模型能处理的格式。比如 API 返回的 JSON、网页文本、文件内容最终都要转成文本或结构化上下文。过滤与压缩上下文窗口有限不能把所有原始数据都塞进去。需要去掉无关 HTML 标签截断超长日志只保留关键字段用摘要代替全文。标注来源与时间模型需要知道“这条信息来自哪里、什么时候”。例如[来源: 航班搜索 API][时间: 当前时间] {flight: CA1234, depart: 08:00}异常感知工具报错、超时、空结果都是重要信号不能直接吞掉。1.3 常见工程坑上下文爆炸把整个网页、整个数据库结果直接塞给模型token 瞬间爆掉。噪声干扰无关信息太多模型注意力被稀释。格式不一致同一个工具在不同情况下返回不同结构导致模型解析失败。丢失关键元信息只给内容不给来源和时间模型无法判断可信度。一句话原则感知层要做的是把世界翻译成模型能用的上下文而不是把整个世界搬给模型。二、LLM 与规划大脑与调度器2.1 LLMAgent 的推理核心LLM 是 Agent 的推理引擎。有综述将 LLM 视为 Agent 系统的“认知核心”cognitive core使 Agent 能够感知输入、用自然语言推理并通过输出或工具使用来行动。它负责理解用户意图分析当前状态决定下一步动作生成工具调用参数总结结果并输出。但 LLM 不是唯一策略。在传统强化学习中策略可以是一个神经网络在简单规则系统中策略可以是 if-else。但在现代 AI Agent 语境下LLM 通常扮演策略网络 推理引擎的双重角色。2.2 规划把“大目标”拆成“小步骤”规划回答的是“目标是什么现在在哪下一步该做什么”它把一个大目标拆成可执行的步骤并在执行过程中动态调整。2.3 规划的四个层次层次说明例子任务分解把大目标拆成子任务订机票 → 查日期、搜航班、选座、支付优先级排序决定先做哪个先查天气再决定带不带伞路径选择多条路选一条直飞 vs 转机重规划执行失败后调整航班售罄 → 换航班或换日期2.4 常见规划模式ReActReason ActYao 等人在 2022 年提出的框架让 LLM 以交错方式生成推理轨迹和任务特定动作。推理轨迹帮助模型归纳、跟踪和更新行动计划同时处理异常动作则允许模型与外部源交互以获取额外信息。适合边查边做的任务。Plan-and-ExecuteLangChain 官方博客将其定义为将高层规划与短期执行分离的 Agent 架构。规划器planner几乎总是使用语言模型利用其推理能力规划步骤并处理歧义和边缘情况执行器executor则接收高层目标决定使用哪些工具完成。这种方式适合更复杂的长期规划代价是更多的模型调用。ReflexionShinn 等人在 NeurIPS 2023 提出的框架不通过更新权重而是通过语言反馈来强化语言 Agent。Agent 对任务反馈信号进行言语反思将反思文本保存在情景记忆缓冲区中以引导后续试验中更好的决策。在 HumanEval 编码基准上达到91% pass1 准确率超过 GPT-4 的 80%。Tree of ThoughtsToTYao 等人在 NeurIPS 2023 提出让 LLM 进行审慎的问题求解通过同时探索多条推理路径来做出决策。成本较高适合高价值任务。Anthropic 在其官方工程指南中指出Agent 设计模式并非越复杂越好大多数生产环境的应用主要由少数几种基础构建块组成包括 ReAct 和 Reflection 等。2.5 常见工程坑过度规划任务很简单却生成几十步计划浪费 token 和时间。计划僵化执行中环境变了还死守原计划。无限重规划一直反思、一直调整永远不行动。规划与执行脱节计划很漂亮但工具根本调不通。一句话原则规划不是越详细越好而是在不确定性和成本之间找平衡。三、记忆Agent 的状态与经验3.1 为什么 Agent 需要记忆没有记忆的 Agent 就像金鱼每轮对话都从零开始不记得用户偏好不记得任务进度不记得上次失败的原因。记忆让 Agent 能积累状态、复用经验、保持一致性。有综述指出复杂的记忆架构支持纵向的经验积累。3.2 记忆的三层结构类型作用存储位置例子短期记忆当前对话上下文上下文窗口用户刚说的“不要转机”工作记忆当前任务状态内存/状态对象已选航班、支付进度长期记忆跨会话知识与偏好向量库/数据库用户常坐靠窗、喜欢早班机三层记忆不是互斥的而是协同工作的。此外还可以分情景记忆过去发生过什么Reflexion 的情景记忆缓冲区即属此类语义记忆事实和知识程序记忆如何做某件事。3.3 记忆的五个操作写入把新信息存入记忆检索根据当前任务取出相关记忆压缩把长对话摘要成短文本更新修正过时或错误信息遗忘删除不再需要或敏感的信息。3.4 技术选型方案适用场景注意点上下文窗口短期记忆成本高、有长度限制摘要压缩长对话可能丢细节向量数据库长期语义检索检索质量依赖 embeddingKV / 数据库结构化状态需要自己管理 schema知识图谱关系推理构建成本高3.5 常见工程坑记忆污染把错误信息写进长期记忆之后一直错。检索不准向量检索召回不相关的内容干扰决策。上下文超限不压缩、不遗忘最终撑爆窗口。隐私与合规长期记忆可能存敏感信息需要加密、脱敏、可删除。记忆不一致短期记忆和长期记忆冲突模型不知道该信谁。一句话原则记忆不是越多越好而是在正确的时间取出正确的信息。四、工具Agent 的手脚4.1 工具让 Agent 从“会说”变成“会做”LLM 本身不能发请求、读文件、点按钮。工具是它与外部世界交互的接口。4.2 常见工具类型根据 OpenAI 官方文档构建 Agent 时可以通过内置工具、函数调用、程序化工具调用、工具搜索和远程 MCP 服务器来扩展模型能力。这些能力使模型能够搜索网页、从文件中检索、在运行时加载延迟的工具定义、调用自定义函数、在 JavaScript 中组合工具调用或访问第三方服务。类型说明例子Function Calling调用预定义函数查天气、算汇率HTTP API访问外部服务航班搜索、支付浏览器操作网页填表单、点击、截图代码解释器执行代码Python 计算、绘图数据库查询与写入SQL 查询文件系统读写文件保存报告通过 MCP 接入的工具标准化协议接入外部工具与上下文Model Context ProtocolMCPModel Context Protocol是一个开放协议实现 LLM 应用与外部数据源和工具之间的无缝集成。规范定义了权威的协议要求基于 TypeScript schema 进行定义。4.3 函数调用的工作流程根据 OpenAI 官方文档函数调用的流程如下定义函数你定义函数及其参数指定函数名、描述和 JSON Schema 格式的参数Agent 请求调用模型根据用户输入和工具定义生成对函数的调用请求代码返回结果你的代码执行函数将结果返回给模型harness 继续本轮对话模型基于函数返回结果继续生成响应。用伪代码表示LLM 输出: { tool: book_flight, args: {...} } 运行时层: 校验参数 → 检查权限 → 调用 API → 返回结果 LLM 基于结果继续生成其中“校验参数”和“检查权限”属于运行时层的应用层实现官方文档明确了“Agent 请求调用 → 代码返回结果 → harness 继续”的核心循环。4.4 工具设计要点清晰的描述模型靠描述决定用哪个工具。描述要说明做什么什么时候用输入输出是什么有什么限制。严格的参数 Schema用 JSON Schema 定义参数类型、必填项、枚举值并设置additionalProperties: false来减少模型瞎填参数。OpenAI 文档中的函数定义即采用了这一模式。错误处理工具失败时返回结构化错误而不是抛异常{error: FLIGHT_SOLD_OUT, message: 该航班已售罄}权限最小化只给 Agent 必要的权限。能读就不能写能查就不能删。幂等与超时支付、下单等操作要支持幂等避免重复执行。所有工具都要设超时。4.5 常见工程坑工具误用模型选了不合适的工具。参数幻觉模型编造不存在的参数值。权限过大Agent 能删库、能转账风险极高。超时与重试工具卡住Agent 一直等。副作用不可逆发了邮件、下了单无法撤回。工具描述冲突多个工具功能相似模型不知道选哪个。一句话原则工具是 Agent 能力的边界也是风险的边界。工具设计得好Agent 才可靠。五、行动Agent 的输出与执行5.1 行动不只是“输出文本”Agent 的行动包括输出答案调用工具修改环境写文件、发请求、点按钮请求人工确认。5.2 谁在执行LLM 只负责生成行动意图真正执行的是外部运行时。这与 OpenAI 文档中函数调用的设计一致模型请求调用代码返回结果harness 继续本轮对话。5.3 执行的关键设计沙箱代码执行、浏览器操作要在隔离环境中进行。人工确认高风险动作必须人工确认支付、删除、发送。审计日志记录谁、什么时候、执行了什么、结果如何。回滚与补偿对可逆操作设计回滚对不可逆操作提前拦截。5.4 常见工程坑副作用失控Agent 自动执行了不该执行的操作。缺少确认直接付款、直接删数据。执行结果不反馈执行完不把结果告诉 Agent循环断掉。状态不一致工具执行成功但本地状态没更新。一句话原则行动层要可控、可审计、可回滚尤其是高风险场景。六、执行循环Agent 的心跳6.1 循环结构一个典型的 Agent 循环观察 → 思考 → 行动 → 观察 → 思考 → 行动 → ... → 完成具体步骤观察读取用户输入、工具返回、环境状态思考LLM 推理下一步行动调用工具或输出内容观察获取行动结果判断是否完成未完成则回到第 1 步或第 2 步。6.2 循环的终止条件必须明确设置终止条件否则会死循环任务完成达到最大步数超过时间预算超过成本预算连续失败次数超限需要人工介入。6.3 循环控制控制项作用最大步数防止无限循环超时防止卡死Token 预算防止成本失控工具调用次数限制防止滥用人工确认节点高风险拦截6.4 常见工程坑死循环Agent 反复调用同一个工具永远不结束。成本失控循环几十次token 费用爆炸。状态漂移多轮之后Agent 忘了最初目标。错误累积一步错步步错。缺少可观测性出问题了不知道哪一步出错。一句话原则循环是 Agent 的心脏但必须装上刹车、仪表盘和安全气囊。七、整合一个最小 Agent 架构把上面六个组件串起来一个最小 Agent 架构如下┌─────────────────────────────────────────────┐ │ 用户 / 环境 │ └───────────────────┬─────────────────────────┘ ↓ ┌─────────────────┐ │ 感知层 │ 归一化、过滤、标注 └────────┬────────┘ ↓ ┌─────────────────┐ │ LLM / 策略 │ 推理、决策、任务分解 └────────┬────────┘ ↓ ┌─────────────────┐ │ 规划模块 │ 任务分解、优先级、路径选择 └────────┬────────┘ ↓ ┌─────────────────┐ │ 记忆系统 │ 短期 / 工作 / 长期 └────────┬────────┘ ↓ ┌─────────────────┐ │ 工具层 │ API、浏览器、代码、MCP └────────┬────────┘ ↓ ┌─────────────────┐ │ 执行器 │ 沙箱、权限、审计、确认 └────────┬────────┘ ↓ ┌─────────────────┐ │ 执行循环控制 │ 最大步数、预算、终止 └────────┬────────┘ ↓ 是否完成 / \ 否 是 ↓ ↓ 回到感知 输出结果7.1 伪代码示例def run_agent(user_input, max_steps10): memory Memory() context Perceive(user_input) # 初始感知 for step in range(max_steps): memory.write(context) thought Think(context, memory) # LLM 推理 plan Plan(thought, memory) # 任务分解与调度 action Decide(plan, memory) # 选择工具或输出 if action.type finish: return action.output result Execute(action) # 工具调用 / 输出 context Perceive(result) # 感知行动结果 memory.update(result) return 达到最大步数任务未完成7.2 各部分协作关系感知提供输入LLM负责推理和决策规划决定方向记忆提供状态和历史工具提供能力行动执行并产生结果循环把一切串起来。任何一个组件薄弱Agent 都会表现出明显短板薄弱组件表现感知差看不懂输入漏掉关键信息LLM/规划差步骤混乱反复绕路记忆差重复提问忘记目标工具差调不对 API参数总错行动差执行失败副作用失控循环差死循环成本爆炸八、总结组件设计的核心原则回到主线Agent 不是一个大模型而是一套由感知、LLM/规划、记忆、工具、行动、循环组成的系统。Anthropic 在其官方工程指南中强调大多数生产环境的应用主要由少数几种基础构建块组成应该从评估开始通过代表性任务识别 Agent 的能力差距而不是一开始就追求复杂架构。设计时记住五条原则可观测每一步都要有日志、有轨迹、能回放。可控制最大步数、预算、权限、人工确认。可恢复失败能重试状态能回滚。最小权限工具权限只给必要的。从简单开始先工作流再逐步增加自主性。最后说一句技术成长不只是写代码职业规划和自我包装同样重要。我整理了一份简历、面试和职业规划的学习资料适合想在职场上走得更远的朋友看看。资料展示下面是我整理的AI大模型学习资料和工具包预览适合收藏后按主题逐步学习。如果你想看完整资料目录可以在评论区留言「资料」也欢迎告诉我你更关注AI大模型里的哪类内容。