Agent 架构

前言:为何构建 Agent 的三层框架

从控制边界(会话/回合/步骤)理解 Agent 架构的动机和认知框架

00 - 前言

为什么写这个系列

Agent 是一个正在高速演化的概念。三个月前的最佳实践,今天可能已被新的设计模式取代。这种变化速度带来一个困境:面对层出不穷的新框架、新术语、新范式,我们既容易陷入"每个都是革命"的狂热,也难免产生"不过是旧酒装新瓶"的麻木。

本系列文章试图提供一个稳定的认知框架。

我们不追逐最新的工具或最热的概念,而是回到 Agent 的结构本身——它的运行时是如何组织的?控制权是如何流转的?状态是在哪里沉淀的?

当你理解了这个底层结构,新的工程改进就有了落点。你可以冷静地判断:这个设计解决的是哪一层的问题?它与我现有的架构是互补还是冲突?

目标读者:正在构建或维护 Agent 系统的工程师。你需要对 LLM 和工具调用有基本了解,但不需要认同任何特定的 Agent 框架。

核心框架:会话、交互、行动

Agent 的运行时可以抽象为三个层次,它们不是按时间长短划分,而是按控制权的边界划分:

会话(Session)— 完整任务生命周期
    └── 交互(Turn)— 人机控制权移交
            └── 行动(Step)— 与环境的单次交互

| 层级 | 边界定义 | 核心问题 | |------|----------|----------| | 会话 | 任务开始与结束 | 资源从哪来?状态存哪去? | | 交互 | Human 与 Assistant | 何时交还控制权?如何检查质量? | | 行动 | Assistant 与环境 | 调用什么工具?如何处理结果? |

这个分层的稳定性在于它不依赖于执行速度。无论模型推理快慢,无论工具响应延迟高低,这三个控制边界始终存在。

当你读到某个新框架时,可以问自己:它解决的是哪个边界上的问题?是改进了人机协作方式,还是优化了工具调用效率?

前三章的演进脉络

本系列的前三章将沿着一个清晰的线索展开:

第一章:基础组件

在深入架构前,我们先统一语言。我们看 LLM 作为预测引擎的本质,看提示词作为运行时配置的意义,看工具调用如何建立意图与执行的桥梁,以及为什么 Bash 是 Agent 最通用的操作界面。

第二章:对话循环

从最基础的形态开始——一问一答的 ChatBot。我们先看模型本身:输入序列,输出序列。然后看对话机器人如何将历史对话与新输入打包,构成循环。最后看控制权如何在 User 和 Assistant 之间交替流转。

第三章:行动循环

接下来,我们扩展 Assistant Turn 的内部结构。它不再是一次性的响应生成,而是可以嵌套多个 Action-Observation 循环:模型思考 → 调用工具 → 观察结果 → 再次思考。这个循环使 Assistant 能够在单次 Turn 内自主完成多步骤任务,而无需 User 的中间介入。

这两章构成了 Agent 运行时最基础的结构图景。后续的章节将在此基础上,探讨会话管理、控制平面、失效模式等工程主题。

如何使用本系列

你可以按顺序阅读,也可以根据兴趣跳读。每章都尽量保持独立,但建议至少先读完前两章建立整体概念。

我们不提供可运行的代码库,而是提供可映射的思维模型。当你在实际项目中做架构决策时,希望这些模型能帮助你更快地理清思路。

让我们开始。