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