单 Agent 架构:工具调用、记忆、规划三大组件的实现要点。
现状
单 Agent 架构是 Agent 系统中最基础的实现形态,其核心由工具调用、记忆、规划三大组件构成。工业界目前的主流实现,基本都建立在这三个组件的组合之上。
工具调用:从函数签名到执行闭环
工具调用的本质,是让 LLM 能够与外部系统交互。实现上通常分为三步:工具注册、参数解析、结果回传。
工具注册阶段,需要定义工具的函数签名、参数类型、返回值结构。LangChain 的 Tool 抽象、OpenAI 的 Function Calling 规范,都是这一层的典型实现。关键在于参数校验不能只依赖 LLM 的输出,必须在代码层做二次校验,否则类型错误会直接导致工具执行失败。
参数解析阶段,LLM 输出的 JSON 结构往往不够规范。业内常见做法是在 LLM 输出后加一层解析器,对缺失字段赋予默认值、对类型不匹配字段做转换。某电商团队 2026 年在订单查询 Agent 上的复盘提到,他们发现 LLM 输出的参数中,订单 ID 字段有 12% 的情况是字符串而非整数,必须在代码层做类型转换。
结果回传阶段,工具的执行结果需要以 LLM 可理解的方式返回。这里有一个容易被忽视的点:工具返回的内容可能很长,直接塞进上下文会快速消耗 token 预算。常见的处理方式是截断过长输出、或对结果做摘要后再返回。

工具调用执行闭环
记忆管理:短期上下文与长期存储的分层
记忆是单 Agent 架构中最容易被低估的组件。没有记忆,Agent 每次交互都是全新的,无法积累上下文,也无法形成连贯的行为。
短期记忆通常直接依赖 LLM 的上下文窗口。GPT-4 的 128K token 上下文、Claude 的 200K token 上下文,是目前主流的选择。但上下文窗口不是无限的,随着对话轮次增加,早期信息会被挤出窗口,导致 Agent 遗忘关键信息。
长期记忆需要外部存储。常见的实现方式有三种:向量数据库存储对话历史、关系型数据库存储结构化状态、键值存储存储会话级缓存。某金融团队在 2026 年的内部技术分享中提到,他们选择向量数据库存储用户偏好,关系型数据库存储交易记录,键值存储存储会话级临时状态,三者配合使用。
记忆的管理有一个关键原则:不是所有信息都需要长期存储。高频访问、结构化、需要精确检索的信息,适合存在关系型数据库;低频访问、非结构化、需要语义检索的信息,适合存在向量数据库;临时性、会话级、不需要持久化的信息,适合存在键值存储。
单 Agent 的适用边界
单 Agent 架构的适用边界,取决于任务的复杂度。当任务满足以下条件时,单 Agent 架构是合理的选择:
第一,任务路径相对固定,不需要复杂的决策分支。单 Agent 的规划能力受限于 LLM 的推理能力,对于需要多步推理、多分支决策的复杂任务,单 Agent 容易出现规划错误。
第二,工具数量适中,通常在 10 个以内。工具数量过多会导致 LLM 在选择工具时出现混淆,降低调用准确率。
第三,上下文长度可控,对话轮次不超过 20 轮。超过 20 轮后,上下文管理成本会显著上升,单 Agent 架构的维护难度会增加。
当任务超出上述边界时,需要考虑多 Agent 架构或分层架构。多 Agent 架构通过任务分解,将复杂任务拆分为多个子任务,由不同的 Agent 分别处理;分层架构通过引入规划层、执行层、评估层,将不同职责分离,降低单 Agent 的复杂度。

单 Agent 适用边界判断
单 Agent 架构不是银弹,但在合适的场景下,它是成本最低、实现最简单的选择。工程团队在选型时,应该先评估任务的复杂度,再决定架构的形态。

后端系统设计
工具调用:从函数签名到执行闭环
近期一个明显的趋势是工具调用从「声明式签名」向「执行闭环」演进。早期的 Agent 框架(如 LangChain 早期版本)主要解决工具注册和参数绑定问题,但执行失败后的重试、降级、错误恢复往往需要业务方自行实现。
2025 年下半年开始,主流框架普遍引入了工具调用的完整生命周期管理。以 LangGraph 为例,工具节点现在支持自动重试、超时控制和结果缓存。这种变化的底层逻辑是:工具调用不再是简单的函数调用,而是需要处理网络抖动、参数校验、权限检查、结果格式化等多重环节的工程问题。

工具调用执行闭环
关键信号是:工具调用的错误处理正在成为框架层面的基础设施,而非业务代码的附加逻辑。这意味着在选型时,应该优先考察框架的工具执行闭环能力,而不是工具注册 API 的丰富程度。
记忆管理:短期上下文与长期存储的分层
记忆管理是单 Agent 架构中最容易被低估的组件。近期实践中,一个清晰的共识正在形成:短期上下文和长期存储需要分层设计。
短期上下文(即对话历史)的管理策略趋于统一——大多数场景下采用滑动窗口 + 关键信息摘要的方式。但长期存储的实现路径出现了分化:
- 轻量级方案:基于向量数据库的语义检索,适合知识型 Agent
- 结构化方案:基于关系型数据库的键值存储,适合任务型 Agent
- 混合方案:两者结合,检索用于语义匹配,存储用于精确查询

代码评审折磨
某团队在 2026 年初的复盘报告中提到,他们最初采用纯向量检索方案,但在处理需要精确数值查询的场景时召回率不足 60%。切换到混合方案后,关键查询的准确率提升到 92%。这个案例说明,记忆分层不是理论问题,而是直接影响 Agent 可用性的工程问题。
规划机制:从线性到条件分支
规划模块的演进方向是条件分支和动态调整。早期的单 Agent 规划器大多采用线性链式结构,适合任务路径固定的场景。但当任务复杂度上升时,线性规划的脆弱性会暴露无遗。
近期的实现趋势是引入状态机式的规划模型。Agent 在规划阶段不仅生成执行序列,还会为每个步骤定义前置条件和后置验证。当某一步骤执行失败时,规划器可以根据预设的恢复策略进行分支选择,而不是简单重试或终止。

Agent 工程门禁状态
这种设计的代价是规划复杂度的提升。实践中,建议在任务路径可枚举且分支不超过 3 层时使用条件规划,超过这个阈值应考虑多 Agent 协作架构。
选型边界:单 Agent 的适用场景
单 Agent 架构的适用边界正在被重新定义。根据 2025-2026 年的项目实践,以下场景适合单 Agent:
- 任务路径相对固定,步骤数不超过 10 步
- 工具调用类型不超过 5 种
- 对延迟敏感,需要端到端响应时间控制在 3 秒内
- 记忆管理需求以短期上下文为主
当任务复杂度超出上述范围时,单 Agent 的维护成本会显著上升。此时应该考虑将规划、执行、验证等环节拆分为多个 Agent 协作。

大佬点头
单 Agent 架构的核心价值在于简洁性和可控性。在合适的场景下,它是一个高效且可维护的选择。但在选型时,需要诚实评估任务复杂度,避免用单 Agent 解决本应多 Agent 协作的问题。
在决定采用单 Agent 方案之前,需要先明确它的适用边界。单 Agent 适合任务链路清晰、工具调用次数有限(通常不超过 10 次)、上下文窗口可控的场景。一旦任务复杂度上升,比如需要多轮条件分支、长周期记忆管理或并行工具调用,单 Agent 的瓶颈就会显现。
工具调用的最佳实践:契约校验优先
工具调用的核心问题不是「能不能调」,而是「怎么调得稳」。
实话说,很多团队在工具调用环节踩的坑,往往来自对函数签名的过度信任。一个典型的反模式是:把工具返回的原始 JSON 直接塞进下一轮 LLM 的上下文,而不做任何结构化校验。这会导致 LLM 在后续推理中基于错误数据做出决策,且错误会随轮次累积。
建议的做法是在工具层加一道「契约校验」:用 Pydantic 或 Zod 对返回结果做类型校验,失败时返回明确的错误码而非原始异常。这样 LLM 拿到的是结构化、可预期的输入,而不是「可能有用也可能误导」的原始数据。
记忆管理的取舍:冷热分层策略
单 Agent 的记忆管理,本质是在「上下文窗口成本」和「信息保留粒度」之间做权衡。
短期记忆(对话历史)的处理相对直接:控制 token 用量,优先保留最近 N 轮对话,必要时做摘要压缩。但长期记忆的存储策略需要更谨慎的设计。
业内常见做法是将长期记忆分层:高频访问的「热数据」放在向量数据库中做语义检索,低频访问的「冷数据」归档到关系型数据库。这种分层不是技术炫技,而是成本控制的必要手段——向量检索的 API 调用成本远高于关系型查询,把不常用的数据放进向量库是典型的资源错配。

架构选型不是拍脑袋

单 Agent 选型决策树
规划机制的边界:ReAct 与 Plan-and-Execute 的选择
单 Agent 的规划机制通常采用 ReAct 或 Plan-and-Execute 模式。这两种模式的核心差异在于「计划」的粒度:ReAct 是边执行边规划,Plan-and-Execute 是先规划再执行。
从经验看,ReAct 更适合工具调用路径不确定的场景(比如搜索类任务),而 Plan-and-Execute 更适合路径相对固定的场景(比如数据处理流水线)。选择哪种模式,取决于你对任务不确定性的判断。
选型决策的三条建议
基于上述分析,给出三条可执行的建议:
第一,先画任务流程图,再决定架构。在写第一行代码之前,用 Mermaid 或手绘把任务的关键节点、工具调用点、分支条件画出来。这张图会直接告诉你:任务链路是否线性、工具调用是否密集、上下文是否可控。如果流程图超过 5 个分支节点,单 Agent 的维护成本会显著上升。
第二,给工具调用加「熔断机制」。单 Agent 最怕的是工具调用陷入死循环。建议在工具层加一个最大调用次数限制(比如 20 次),超出后返回「需要人工介入」的信号,而不是让 LLM 无限重试。这个限制不是技术限制,是用户体验限制——用户等 20 次工具调用的耐心,通常撑不到第 10 次。
第三,监控「工具调用成功率」而非「任务完成率」。很多团队只看任务是否完成,但任务完成不代表过程健康。如果一个 Agent 的任务完成率是 80%,但工具调用成功率只有 40%,说明它在靠「运气」完成任务,这种系统上线后就是定时炸弹。

架构评审通过
单 Agent 架构的选型,本质上是在「开发效率」和「系统复杂度」之间做取舍。如果你的任务链路清晰、工具调用可控、上下文窗口够用,单 Agent 是最快落地的方案。但如果任务复杂度已经超出单 Agent 的承载能力,强行用单 Agent 解决,只会让后续的维护成本呈指数级上升。
架构选型没有银弹,只有「在当前约束下的最优解」。
回到主线,单 Agent 不是「一个模型加一堆工具」那么简单。工程落地的核心在于三个组件的协同:工具调用决定 Agent 能做什么,记忆管理决定 Agent 记得什么,规划机制决定 Agent 怎么思考。三者任一短板,都会在实际项目中暴露。
工具调用的关键不是「能不能调」,而是「契约是否清晰」。一个常见的错误是工具参数定义过于宽松,导致模型在调用时产生幻觉参数。业界常见做法是在工具注册阶段做 JSON Schema 校验,强制要求参数类型、必填项、枚举值明确。实话说,这一步省下的调试时间远超预期。

工具契约是地基
记忆管理方面,冷热分层是单 Agent 的必选项。短期上下文(对话历史、当前任务状态)放在模型上下文窗口内,长期记忆(用户偏好、历史决策、知识库)放在外部存储。问题在于,很多团队只做了短期记忆,导致多轮对话后上下文溢出,或者每次对话都从零开始。冷热分层的取舍点在于:哪些信息需要跨会话保留,哪些信息只在当前任务有效。没有统一标准,需要根据业务场景判断。
规划机制的选择直接影响 Agent 的可靠性。ReAct(Reasoning + Acting)适合任务路径不确定的场景,模型在每一步根据当前状态决定下一步动作;Plan-and-Execute 适合任务路径相对固定的场景,模型先规划完整路径,再逐步执行。从经验看,ReAct 的容错性更好,但执行成本更高;Plan-and-Execute 效率更高,但一旦规划错误,后续步骤全部偏离。没有通用最优解,只有场景适配。

单 Agent 规划路径选择
选型决策的三条建议:第一,工具调用契约优先于模型选型,清晰的参数定义比更强的模型更能减少错误;第二,记忆分层优先于上下文延长,冷热分离比单纯扩大窗口更可持续;第三,规划机制匹配任务复杂度,简单任务用 Plan-and-Execute,复杂任务用 ReAct。
下一步动作可以今天就做:检查现有 Agent 的工具定义,确认每个工具的参数是否有 JSON Schema 校验;梳理记忆存储,区分短期上下文和长期存储的边界;评估当前规划机制,判断 ReAct 还是 Plan-and-Execute 更适合你的业务场景。

三步落地,不踩坑
单 Agent 架构的结论在任务复杂度中等、工具调用频率可控、记忆需求明确的场景下成立。当任务复杂度超过单 Agent 的规划能力,或者工具调用涉及多 Agent 协作时,需要重新评估架构选型。这不是单 Agent 的失败,而是架构边界的自然延伸。