AI Agent 架构深度解析:原理、模式与生产落地
这篇是我最近准备搭 Agent 时整理的学习笔记。它和上一篇 《Agentic 入门:让 AI 不再一把梭,而是像人一样反复干活》 是一个系列:上一篇偏“怎么上手”,这一篇偏“底层怎么运转、上线怎么落地”。
最近我想给自己的工作流做一套 Agent,结果第一周就被现实教育了:这事远不只是“写个提示词模板”那么简单。
真动手之后你会发现,问题全在工程细节里。记忆怎么分层存储?任务队列怎么调度?循环什么时候该停?状态怎么恢复?这些都决定了系统是“能跑 Demo”,还是“能稳定跑在生产上”。
最不适应的一点是,传统软件那套确定性思维在这里会失灵一大截。以前写业务代码,if-else 写完,流程基本可预期;现在很多控制流是 LLM 在运行时动态决定的,排错方式也完全变了。
所以这篇我会把最近研究的几条主线串起来:Andrej Karpathy 的 LLM OS 视角、BabyAGI 的循环架构、以及 LangGraph 的状态机模式。目标很简单:把我自己踩坑后想明白的东西讲清楚,也给正在做 Agent 的你一个可复用的分析框架。
一、核心概念深度辨析:Agent 与 Agentic
先说我自己这次最大的认知纠偏:Agent 是”系统实体(名词)”,而 Agentic 是”设计模式与工作流(形容词)”。
1. Agent(智能体):基于大语言模型操作系统(LLM OS)的计算实体
Agent 不仅仅是一个高级聊天机器人,而应该被视为一种具备拟人化特征的数字实体(People Spirits),或者说是基于大语言模型操作系统(LLM OS)运行的一台新型计算机4-6。在 LLM OS 的宏观架构中:
- CPU(中央处理器): 大语言模型(LLM)本身负责指令处理、推理与决策5, 7。
- RAM(内存/工作记忆): 模型的上下文窗口(Context Window)。这是一种短期的工作记忆,LLM 在此编排内存与计算以解决问题7, 8。
- 外设与接口(Tools): Agent 可以通过工具调用与数字世界的外部基础设施交互,例如访问文件系统、运行代码沙箱或调用网络浏览器5, 9, 10。
2. Agentic Workflow(智能体化工作流):告别 Zero-shot 的迭代范式
吴恩达(Andrew Ng)指出,传统上我们主要以”零样本(Zero-shot)”模式使用 LLM,即提示模型逐字生成最终输出而不进行任何修改。这很像要求一个人从头到尾敲击键盘写文章,全程不允许按退格键11。
Agentic 工作流是一种引入迭代循环(Loop)的系统方法论。 它允许系统像人类工程师一样:规划大纲 -> 决定是否需要网络搜索 -> 撰写初稿 -> 审查初稿中的逻辑漏洞 -> 结合审查结果继续修改12。
二、Agent 的底层架构与运行机制
要理解 Agent 的底层架构,我们得先抛弃”它只是个聊天机器人”这个视角,把它当成一台基于自然语言指令运行的新型计算机。
2.1 宏观架构:大语言模型操作系统(LLM OS)
前特斯拉 AI 总监 Andrej Karpathy 提出了理解 Agent 架构的最佳抽象模型:LLM OS(大语言模型操作系统)。在这个架构中:
| 组件 | 对应关系 | 功能描述 |
|---|---|---|
| CPU(处理器) | 大语言模型(LLM) | 负责处理输入、执行逻辑推理、以及发出指令 |
| RAM(内存 / 工作记忆) | 模型的上下文窗口(Context Window) 和 KV Cache | 短期工作记忆,任何在当前执行步骤中需要被 LLM 直接读取的信息,都必须被塞进这个窗口里 |
| 外存(硬盘 / 长期记忆) | 外部的向量数据库(Vector Database,如 Pinecone) 甚至传统关系型数据库 | 由于 LLM 每次调用完成后会”失忆”(无状态),历史数据必须持久化在这里 |
| 外设与执行器(Tools) | 代码沙箱(Code Sandbox)、文件系统读写权限、浏览器 API | 相当于计算机的网卡、显卡或机械臂 |
2.2 核心模块拆解(以经典 Agent 为例)
如果剥开代码看,一个标准的自主运行 Agent(例如早期 BabyAGI 或现代框架的核心模块)通常由以下几个核心组件(Components)构成:
1. 大语言模型控制器(LLM Controller)
这是整个系统的大脑。它接收系统提示词(System Prompt),明确当前的角色设定、可用工具列表以及输出格式(通常为 JSON),以此将自然语言转化为结构化的机器动作。
2. 记忆管理系统(Memory System)
- 短期记忆: 通常由开发框架(如 LangChain/LangGraph)维护当前的对话历史或近期几步的操作日志。
- 长期记忆: 当任务周期极长时,框架会将之前的操作结果转化为”向量嵌入(Embeddings)”,存入向量数据库。当 Agent 执行新任务时,系统会通过”语义搜索(Semantic Search)”提取最相关的历史经验,拼接进当前的上下文中供 LLM 读取。
3. 工具与环境接口(Tool Integrations / Harness)
LangChain 创始人 Harrison Chase 强调,现代 Agent 的强大来源于强大的“脚手架(Harness)”。这包括预置的工具函数。最核心的工具是文件系统(File System)访问权限,因为它可以让 Agent 把长篇的中间结果写入文件,而不是全部塞进上下文里导致内存溢出。
2.3 运行机制:死循环与状态机(The Loop & State Machine)
Agent 并不是”一口气”运行完的,它的底层是一个事件驱动的循环结构(Loop)。在工程实现里,主流运行机制大致有两种:
机制 A:经典的”三节点”死循环(如 BabyAGI)
BabyAGI 证明了只要三个 Python 脚本节点相互配合,就能让 Agent 无限期自主运转:
- 任务执行节点(Task Execution): 读取当前任务队列的第一个任务,结合向量数据库中的历史上下文,调用 LLM 执行任务,并保存结果。
- 任务创建节点(Task Creation): 观察上一步的执行结果,调用 LLM 判断”为了实现总目标,接下来还需要新增什么任务?”,并将新任务丢进队列。
- 任务优先级排序节点(Task Prioritization): 调用 LLM 对现有的任务队列重新排序,清理冗余,决定下一步最该做什么。 这个循环(While Loop)会不断运转,直到任务列表清空或达到预设的终止条件。
机制 B:现代的图与状态机架构(如 LangGraph)
面对更复杂的企业级业务,简单的死循环难以控制。现代框架(如 LangGraph)将运行机制升级为有向图(Graph)和状态机(State Machine):
- 节点(Nodes): 代表具体的处理单元(可以是一个调用 LLM 的函数,也可以是执行 Python 代码的工具)。
- 边(Edges): 包含条件判断逻辑(如 IF-ELSE)。基于当前节点返回的结果,决定数据流向下一个哪个节点。
- 状态管理(State Management): 整个图共享一个全局状态(State)。每次循环都在更新这个全局状态,并自带持久化(Persistence)功能。这意味着当 Agent 运行到一半崩溃,或者遇到高风险操作需要”人类审批”时,程序可以暂停保存状态,之后再无缝恢复。
2.4 底层工程的终极挑战:上下文工程(Context Engineering)与执行轨迹(Traces)
当我们把上面这些模块拼起来后,运行逻辑会发生根本变化,这也是研发人员最需要适应的地方:
- 逻辑不再只存在于代码中: 传统软件的控制流(If-Else)写在代码里;但 Agent 的控制流很大一部分由 LLM 在运行时动态决定(具有不确定性)。
- 上下文工程(Context Engineering)决定成败: 决定 Agent 表现的,是每次循环调用 LLM 时,你在这个循环点(通过检索或状态机)给它组装了什么上下文。如果塞入的信息太多,LLM 会忘记关键指令;如果太少,它会产生幻觉。
- 排错(Debug)依赖执行轨迹(Traces): 在传统开发中,出 Bug 了我们看代码;但在 Agent 开发中,当系统在第 14 步失败时,看代码毫无用处,因为你需要知道前 13 步它往上下文(Context)里塞了什么。因此,记录每一步提示词、输入和输出的执行轨迹(Traces) 取代了源代码,成为了 Agent 开发中测试和调试的“唯一真相来源”。
三、驱动系统运转的核心:四大 Agentic 设计模式
在底层循环与状态机之上,真正让 Agent 表现出”智能感”的,是吴恩达总结的四种核心 Agentic 设计模式(Design Patterns)24:
1. 工具使用(Tool Use)
赋予 LLM 网络搜索、代码执行等外部函数调用能力,以收集信息或处理数据24。
2. 规划(Planning)
面对复杂目标时,LLM 能够自主提出并执行一个多步计划24。
3. 反思(Reflection / Self-Correction)
强迫 LLM 检查自身的输出,发现缺陷并提出改进方案24。例如,在缓解模型幻觉的研究中,Chain-of-Verification (CoVe) 强制模型生成验证问题并自我审查,而 Self-Refine 则采用”生成 -> 反馈 -> 改进”的迭代框架扮演自我批评者的角色25, 26。
4. 多智能体协作(Multi-agent Collaboration)
实例化多个不同的 AI 角色,通过分担任务和相互辩论,得出比单一 Agent 更优的解决方案24。
四、研发视角的范式转换:开发 Agent 与传统软件的区别
LangChain 创始人 Harrison Chase 指出,构建 Agent 会显著改变传统软件工程的一些基本常识27。
1. 逻辑存在于模型中(非确定性系统)
传统软件的逻辑被硬编码(Hard-coded)在代码中,开发者可以确切知道程序的流向;而在 Agent 中,程序的控制流是由大模型在运行时基于上下文动态涌现的,具有高度的黑盒性和不确定性27, 28。
2. “执行轨迹(Traces)”取代代码,成为 Debug 的唯一事实依据
由于 Agent 在循环中反复运行,当系统在第 14 步报错时,单看代码无法推断前 13 步 LLM 的上下文窗口里到底装载了什么29。因此,详细记录每一步输入、输出、工具调用和状态变化的执行轨迹(Traces),取代了源代码,成为了开发者测试、排错(Debug)和团队协作的核心工具27, 30, 31。
3. “脚手架(Harness)”与”上下文工程(Context Engineering)”决定成败
长周期 Agent(Long-Horizon Agents)的成败往往不仅仅取决于底层模型有多强大,更取决于开发者构建的 Harness(深度定制的脚手架体系)32, 33。这包括内置的规划工具、处理超长文本的压缩(Compaction)策略,以及至关重要的文件系统访问权限(File System Access)9, 33, 34。这一切本质上都是 “上下文工程(Context Engineering)”——即在 Agent 循环的每一个特定步骤,精准地为其上下文窗口注入最需要的记忆、工具结果和指引32, 35, 36。
五、生产环境落地的终极指南
对于准备把 Agent 投入生产环境的研发团队,行业里有一个高度一致的共识:不要一上来就追求 100% 全自动(Fully Autonomous)。
1. 做好迎接”Agent的十年”的准备,它是一个”九的游行”
Andrej Karpathy 强调,目前行业处于”Agent的十年(Decade of Agents)”,而非所谓的一年37。构建可靠的 Agent 与研发自动驾驶汽车极度相似:展示一个能解决 90% 问题的 Demo 非常容易,但要达到生产级别,需要经历漫长的”九的游行(March of nines,即追求 99.9% 到 99.99% 的极端可靠性)”38, 39。
2. 定位为”初稿生成器(First Drafts)”
现阶段长周期 Agent 最杀手级的应用场景,不是直接交付最终结果,而是生成一份极具价值的”初稿”40。无论是代码的 Pull Request、SRE 的日志诊断分析报告,还是客户支持的复杂调研,Agent 的作用是承担粗重的初期工作,然后交由人类审核与编辑40, 41。
3. 保留”自主性滑块(Autonomy Slider)”
在产品设计(如 Cursor 或 Perplexity)中,必须赋予用户控制权42-44。开发者可以选择只补全一行代码(Tap completion)、修改单个文件,或是让 Agent 放开手脚重构整个代码仓库,用户可以根据任务复杂度动态调整这种”自主性滑块”44, 45。
4. 终极形态:环境智能体(Ambient Agents)与 智能体收件箱(Agent Inbox)
传统的基于聊天(Chat-based)的 Agent 受限于极高的延迟要求和一对一的交互瓶颈46-48。未来的生产级落地形态将走向环境智能体(Ambient Agents)46, 49。
- 事件驱动与异步执行: Ambient Agents 在后台静默运行,监听并响应事件流(如新收到的客户邮件、代码库提交、系统报警等)46。由于没有即时聊天的延迟压力,它们可以执行包含数十次工具调用和复杂规划的深层任务48, 50。
- 人类在环(Human-in-the-loop)与 Agent Inbox: 这种异步、高并发的运行模式绝不意味着失控。相反,系统必须设计一个类似”智能体收件箱(Agent Inbox)”的交互界面51。Agent 将执行到一半的高风险操作或半成品报告推送到收件箱中,人类在此进行审批(Approve)、编辑修改(Edit)、解答 Agent 的疑问(Answer),甚至进行”时间旅行(Time Travel,即回滚到之前某一步重新运行)”52, 53。这不仅保证了业务的安全性,人类的纠错反馈也将作为记忆(Memory),驱动 Agent 系统的自我迭代与进化51, 54。
核心参考文章
1. 吴恩达 (Andrew Ng) —— Agentic 核心概念与设计模式
2. Lilian Weng (OpenAI) —— LLM Agent 架构百科全书
3. Andrej Karpathy —— LLM OS 系统愿景
4. BabyAGI —— 自主智能体先驱