AI Agent 是当前大模型应用领域最受关注的方向,但同时也是概念最混乱的方向。市面上讨论 Agent 的文章,一半在畅想"数字员工替代人类",另一半在教 Prompt 话术,真正把 Agent 的技术架构讲清楚的内容少之又少。这篇文章站在工程师视角,把 Agent 的核心架构拆开:它的工作循环是什么、为什么有效、工具怎么设计、上下文怎么管理、记忆系统怎么搭,以及一个完整的 Agent 系统由哪些模块组成。

一、Agent 的本质:ReAct 循环的工程化

拆开任何一个 Agent 系统,内核都是同一个循环——ReAct(Reasoning + Acting)。这个模式来自 2022 年 Yao 等人的论文,核心是三步循环:Thought(思考下一步该做什么)→ Action(执行动作,通常是调用工具)→ Observation(观察环境返回的结果),然后带着观察结果进入下一轮思考,直到任务完成。

为什么 ReAct 有效?关键在于 Observation 这一环。它让 Agent 的推理始终"接地"——执行动作后获得的外部信息(API 返回、命令输出、文件内容)构成了反馈闭环,模型基于真实结果继续推理,而不是凭空想象。相比纯思维链(Chain-of-Thought,让模型一口气想完再答),ReAct 的幻觉和错误累积被大幅抑制。这是 Agent 区别于"高级对话机器人"的分水岭:对话机器人只会"想",Agent 会"想 + 做 + 看结果"。

ReAct 循环的实现其实非常轻量。一个完整的 agent-loop 核心代码也就几百行:读取用户任务 → 拼装系统提示词 → 调模型 → 解析输出(是最终回答还是工具调用)→ 执行工具 → 把结果拼回上下文 → 循环。理解了这一点,就会明白 Agent 可以用任何语言实现,LangChain 之类框架只是把循环、工具管理、记忆这些通用部分封装好,让你聚焦业务。

二、Agent 的三要素:模型、工具、上下文

ReAct 循环的三步,对应 Agent 系统的三个能力要素。

思考能力由模型基座决定。 模型的推理能力直接决定 Agent 上限——能不能理解复杂指令、能不能做多步推理、在信息不完整时能不能合理假设。这是不可违背的约束:同样的框架,换更强的模型,所有任务的表现直接提升。所以选 Agent 的底层模型,要看重推理能力而非单纯的对话流畅度。

行动能力由工具集决定。 工具是 Agent 的"手脚"。同一个模型配不同的工具就能做不同的事——配检索工具就是信息搜集器,配代码执行工具就是编程助手,配数据库工具就是数据分析师。工具的丰富度和质量,决定了 Agent 能触达的外部世界有多大。ReAct 论文里的实验数据也印证了这一点:有了动作空间后,任务成功率比纯推理高出几十个百分点。

上下文是 Agent 的"工作台"。 模型每一步的思考、工具返回的观察结果,都在上下文里累积。上下文管理是 Agent 工程中最精细的部分——后面单独展开。

三、工具设计:Agent 能力的边界

工具设计是 Agent 开发中最重要也最容易被轻视的环节。几个关键原则。

第一,工具描述必须精确。模型靠描述决定何时调用工具——描述越模糊,调用越随意。好的工具描述要写清楚:这个工具做什么、输入参数的含义、什么时候应该用、什么时候不应该用。可以给出使用示例,把"何时调用"讲明白。

第二,参数要结构化校验。模型填充的参数可能不合法——类型错误、越界、拼写错误。工具入口必须有严格的参数校验,校验失败的返回明确错误信息,让模型能"看懂"并自我修正。

第三,结果要结构化返回。工具返回的结果应尽量结构化(JSON),附上简洁的摘要,避免大段原始文本撑爆上下文。比如搜索工具,返回每个结果的标题、URL、摘要即可,而不是整篇正文。

第四,安全边界要硬。工具是 Agent 触达真实世界的通道,也是风险入口。写入操作(改数据、发消息、删文件)必须鉴权、限流、留审计日志;高危操作默认拒绝,需要人工确认。一个没有防护的数据库工具,被模型误调用一次就可能造成不可逆的损失。

四、上下文管理:Agent 的"工作台"怎么整理

Agent 运行时的上下文由三部分组成:系统提示词(长期规则)、对话/思考历史(过程记录)、工具返回的观察结果(外部信息)。三者混杂在一起,上下文会随迭代轮数快速增长,最终逼近窗口上限或稀释注意力。

工程上的上下文管理手段包括:

系统提示词瘦身。 把角色设定、任务目标、约束规则写在 system prompt 里,但务必精简——不必要的长篇规则本身就在占窗口。系统提示词是"常驻内存",其它内容才是"运行数据"。

思考历史压缩。 每轮循环的 Thought 文本会不断累积。实践做法是让模型输出"精简思考"——只保留关键推理,不写长篇自我对话。更高级的手段是历史摘要:当历史超过阈值时,用模型把早期步骤压缩成要点,替换掉原文。

观察结果去重与裁剪。 工具返回的结果可能包含冗余(比如搜索返回了 20 条,实际只需要前 5 条)。在工具层就做裁剪,只把真正有用的部分放进上下文。

分区与标记。 用明确的标记区分"历史步骤"和"当前状态",帮助模型快速定位当前进度。很多 Agent 框架用"当前任务 + 已完成步骤列表 + 最新观察"的结构组织上下文,效果比无结构堆叠好得多。

五、记忆系统:短期与长期的配合

记忆是 Agent 从"会话工具"走向"长期助手"的关键。记忆分两层。

短期记忆对应会话内的上下文——前面说的思考历史、观察结果,属于"工作记忆",随会话结束而清空。长期记忆则跨会话持久化,解决"上次聊过的东西这次还能记得"的问题。长期记忆的工程实现通常是向量数据库:把重要的用户信息、历史决策、领域知识向量化存储,新会话开始时按相关性召回,注入上下文。

长期记忆的写入策略值得设计:不是所有对话内容都值得记住。实践做法是设定"记忆提取"环节——每轮或每几轮对话后,让模型判断"这段对话里有没有值得长期保存的信息(用户偏好、关键事实、待办事项)",有则写入存储。召回策略同样要控制:每次召回的记忆不要太多,聚焦当前任务相关的部分,否则反而干扰注意力。

六、Agent 系统架构:从单循环到完整产品

一个生产级 Agent 系统,绝不止一个 ReAct 循环,而是多个模块的协作:

任务解析层把用户请求解析为可执行的目标,判断是否需要在任务前补充信息(比如要求登录、需要用户确认)。规划层决定执行路径——简单任务直接执行,复杂任务拆解为子任务序列。执行层运行 ReAct 循环,调用工具、处理结果。验证层对 Agent 的产出做校验——格式是否合规、结果是否完整、是否需要重试。记忆层负责上下文管理和长期记忆存取。安全层做权限校验、内容审核、成本控制。可观测层记录每一步决策轨迹,供排障和审计。

这七层构成了一个完整的 Agent 系统骨架。实践中很多"Agent 不好用"的案例,问题往往不在模型而在外围层缺失:没有验证层,模型输出错误格式就直达用户;没有安全层,Agent 越权操作酿成事故;没有可观测层,出问题只能瞎猜。

七、从单 Agent 到多 Agent 与 Agentic 工作流

单 Agent 的能力边界清晰后,演进方向有二。一是多 Agent 协作——多个专职 Agent 组成团队,通过任务分解和上下文隔离处理超大规模任务(前一篇文章已详细展开)。二是 Agentic 工作流——把 Agent 嵌入业务流程,与现有系统(CRM、项目管理、CI/CD)对接,让 Agent 成为业务流程中的执行者,配合人工审批完成端到端闭环。

给工程师的最终建议:Agent 开发的核心能力不是"会调框架",而是理解 ReAct 循环的原理、工具设计的边界意识、上下文管理的精细化能力。把这三点吃透,无论框架怎么迭代、模型怎么升级,你都能快速构建出可靠、可控、可观测的 Agent 系统。Agent 不会取代工程师,但掌握 Agent 架构的工程师,会取代不会的。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐