从 ChatGPT 到 Agent:一次范式转移的技术解读

张开发
2026/4/13 4:56:27 15 分钟阅读

分享文章

从 ChatGPT 到 Agent:一次范式转移的技术解读
从 ChatGPT 到 Agent:一次范式转移的技术解读摘要/引言2022年11月30日,OpenAI 推出了基于GPT-3.5 Turbo架构的对话式聊天机器人 ChatGPT——它没有任何特别的应用场景预设,却能回答天文地理、写代码改作文、甚至扮演心理咨询师,上线仅两个月日活就突破了1亿,堪称人类科技史上最快普及的AI产品之一。ChatGPT 的成功,首次让**“通用对话大语言模型(General Purpose Conversational LLM)”**从学术实验室走进了亿万普通用户的视野,也彻底打破了人们对“AI只能做特定任务(Narrow AI)”的刻板印象。然而,ChatGPT 的局限性很快就暴露了出来:它不能主动规划复杂任务(比如帮你制定一场从北京到东京7天的含机票、酒店、景点预约、优惠券领取、当地交通换乘的完整自由行方案,还能处理突发的航班延误情况)、不能实时访问外部信息(所有知识截止到训练数据的最后一刻,比如2023年推出的GPT-4 Turbo知识截止到2024年1月,ChatGPT 原始版截止到2021年9月)、不能自主调用外部工具(比如不能直接打开Excel分析财务数据、不能用Python写爬虫爬取最近一周的股票行情并生成可视化图表、不能登录购物平台帮你比价下单)、缺乏长期记忆(对话超过一定长度后,模型就会“忘记”之前说过的关键信息)。这些局限性恰恰指向了AI发展的下一个核心方向:自主智能体(Autonomous Agent)——也就是具备“感知环境、自主规划、调用工具、执行行动、反思优化”五大核心能力的AI实体。2023年3月,OpenAI 推出了GPT-4,并首次在 API 中开放了函数调用(Function Calling)功能;同年4月,斯坦福大学的研究团队推出了开源框架AutoGPT,让GPT-4能够自主设定目标、调用工具、记忆和反思任务执行过程,瞬间引爆了整个AI社区;同年6月,OpenAI 又推出了Code Interpreter(后来改名为 Advanced Data Analysis)插件,赋予了ChatGPT实时编写和执行Python代码、分析数据、生成图表的能力;2024年,微软推出了Microsoft Copilot Studio,Google推出了Vertex AI Agents,OpenAI也在GPT-4o中大幅增强了Agent能力——从ChatGPT到Agent,无疑是人工智能领域的一次范式转移(Paradigm Shift)。那么,究竟什么是Agent?它和ChatGPT这类传统的对话式LLM有什么本质区别?Agent的核心架构、技术原理、数学模型是什么?我们如何从零开始构建一个简单的Agent?Agent在实际场景中有哪些应用?它的发展历程、未来趋势、边界与挑战又是什么?本文将作为一名资深软件工程师兼技术博主,带你从0到1、从浅入深、从理论到实践,全面解读从ChatGPT到Agent的这次范式转移。文章将涵盖以下核心内容:ChatGPT的技术本质与局限性分析:带你拆解GPT-3.5 Turbo的架构,明确ChatGPT能做什么、不能做什么,以及为什么会有这些局限性——这是理解Agent的基础。Agent的核心概念与范式转移的本质:定义什么是Agent、什么是自主智能体,对比Agent与ChatGPT的核心差异,明确这次范式转移到底转移了什么。Agent的核心架构与技术原理:详细拆解Agent的“感知(Perception)、记忆(Memory)、规划(Planning)、行动(Action)、反思(Reflection)”五大核心模块,用类比、代码、流程图、数学公式等多种方式深入讲解每个模块的工作原理。从0到1构建一个简单的Agent:用Python+LangChain+OpenAI API:带你一步步搭建一个具备“记忆、规划、调用工具(如Python代码解释器、天气查询API)、反思优化”能力的旅行规划Agent,让你亲手体验Agent的开发过程。Agent的实际场景应用与案例研究:分享Agent在个人助理、软件开发、金融分析、医疗健康、教育等多个领域的实际应用案例,分析这些案例的成功之处和可以改进的地方。Agent的发展历程、边界与挑战、未来趋势:梳理Agent从早期的符号AI到今天的大语言模型驱动的自主智能体的完整发展历程,用表格对比概念演变;明确Agent的边界与挑战(如安全、伦理、可靠性、成本等);展望Agent的未来发展趋势(如多模态Agent、多Agent协作、具身Agent等)。最佳实践与Tips:分享作为软件工程师在开发Agent时的最佳实践,比如如何设计工具、如何优化记忆、如何确保可靠性、如何降低成本等。读完本文,你不仅会对Agent有一个全面、深刻的理解,还能亲手构建一个属于自己的简单Agent,为后续深入学习Agent打下坚实的基础。一、 ChatGPT的技术本质与局限性分析要理解Agent,我们首先得搞清楚ChatGPT的技术本质是什么,以及它为什么会存在那些众所周知的局限性。毕竟,Agent不是凭空出现的——它是在ChatGPT这类通用对话大语言模型的基础上,通过补充一系列核心模块(感知、记忆、规划、行动、反思)发展而来的。1.1 ChatGPT的技术本质:基于Transformer的自回归语言模型ChatGPT的底层模型是GPT-3.5 Turbo(以及后来的GPT-4、GPT-4o等),而GPT(Generative Pre-trained Transformer,生成式预训练Transformer)系列模型的核心本质是:基于Transformer架构的自回归(Autoregressive)语言模型,其核心任务是“预测下一个token(词/子词)”。这句话听起来有点抽象,我们可以用一个简单的类比来理解:想象你是一个超级学霸,从小到大全世界的书(维基百科、新闻、小说、代码库、论文、聊天记录……几乎所有人类的文本数据)都被你背下来了,但你从来没有真正“理解”过这些内容的含义——你只是记住了“什么样的词后面通常跟着什么样的词”。现在,有人给你一段开头(比如“请帮我写一篇关于人工智能的高考作文,开头是‘2022年11月,一款名为ChatGPT的AI产品横空出世……’”),你的任务就是根据你背下来的所有文本的“统计规律”,一个词一个词地往下“补”,直到你觉得补出来的内容“像模像样”(符合人类的语言习惯和要求)为止。这就是GPT系列模型的核心工作原理!接下来,我们再稍微深入一点,拆解一下这个类比背后的技术细节——也就是Transformer架构、自回归生成、预训练与微调这三个核心技术点。1.1.1 Transformer架构:GPT系列模型的“大脑”Transformer架构是由Google Brain团队在2017年发表的论文《Attention Is All You Need》中提出的——在此之前,主流的语言模型都是基于循环神经网络(RNN)或长短期记忆网络(LSTM)的,这类网络有一个致命的缺点:处理长文本时效率很低,而且容易“忘记”文本开头的关键信息(也就是所谓的“长距离依赖问题”)。Transformer架构彻底解决了这个问题!它的核心创新点是自注意力机制(Self-Attention Mechanism)——简单来说,自注意力机制可以让模型在处理文本中的每一个词时,同时关注到文本中所有其他词的重要性,而不是像RNN/LSTM那样只能按顺序处理。我们可以用高考作文的例子来理解自注意力机制:当你在写“横空出世”这个词的时候,你不仅要关注它前面的“2022年11月,一款名为ChatGPT的AI产品”,还要根据你背下来的“高考作文通常需要点出事件的影响”这个统计规律,稍微“提前”关注一下后面可能会写的“彻底改变了人们对AI的认知”之类的内容——自注意力机制就是帮你完成这个“同时关注所有词”的任务的。更具体一点,自注意力机制的数学公式可以表示为:Attention(Q,K,V)=softmax(QKTdk)V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)VAttention(Q,K,V)=softmax(dk​​QKT​)V其中:QQQ(Query,查询):表示当前正在处理的词的“问题”——也就是“我要找哪些词来帮我生成下一个词?”;KKK(Key,键):表示文本中所有其他词的“特征标签”——也就是“我有哪些特征可以用来回答当前词的问题?”;VVV(Value,值):表示文本中所有其他词的“实际内容”——也就是“如果我被选中了,我能为生成下一个词提供什么信息?”;dkd_kdk​:表示QQQ和KKK的维度——除以dk\sqrt{d_k}dk​​是为了防止QKTQK^TQKT的值过大,导致softmax函数的梯度消失;softmax\text{softmax}softmax:归一化函数——用来把QKTQK^TQKT的结果转换成“权重”,这些权重的总和是1,表示每个词对当前词的重要性;Attention(Q,K,V)\text{Attention}(Q, K, V)Attention(Q,K,V):最终的注意力输出——也就是所有词的“实际内容”乘以各自的“权重”之后的加权和。当然,Transformer架构中还有很多其他的技术细节,比如多头自注意力机制(Multi-Head Self-Attention)(相当于同时用多个不同的“视角”来关注文本中的词)、位置编码(Positional Encoding)(因为Transformer是并行处理文本的,没有顺序信息,所以需要人为添加位置编码来告诉模型“这个词在文本中的位置在哪里”)、前馈神经网络(Feed-Forward Neural Network,FFNN)(用来对注意力输出做进一步的非线性变换)、层归一化(Layer Normalization)(用来加速模型的训练和收敛)、残差连接(Residual Connection)(用来防止模型的梯度消失)等——不过这些细节对于理解ChatGPT的技术本质和局限性来说,不是必需的,我们只需要记住:Transformer架构是GPT系列模型的“大脑”,它的核心创新点是自注意力机制,解决了RNN/LSTM的长距离依赖问题。1.1.2 自回归生成:ChatGPT“说话”的方式现在,我们有了Transformer这个“大脑”,接下来要做的就是让它“说话”——也就是生成文本。GPT系列模型采用的是自回归生成的方式,简单来说就是:从一个初始的prompt(提示词)开始,每次只生成一个token(词/子词),然后把这个新生成的token加到prompt的末尾,作为下一次生成的输入,重复这个过程,直到生成一个特殊的“结束token(End-of-Sequence Token,EOS)”或者达到预设的最大长度为止。我们还是用高考作文的例子来理解自回归生成:初始prompt:“请帮我写一篇关于人工智能的高考作文,开头是‘2022年11月,一款名为ChatGPT的AI产品横空出世……’”第一次生成:Transformer根据prompt的统计规律,预测下一个token是“彻底”;更新后的prompt:“请帮我写一篇关于人工智能的高考作文,开头是‘2022年11月,一款名为ChatGPT的AI产品横空出世……彻底’”第二次生成:Transformer根据更新后的prompt,预测下一个token是“改变”;更新后的prompt:“请帮我写一篇关于人工智能的高考作文,开头是‘2022年11月,一款名为ChatGPT的AI产品横空出世……彻底改变’”……重复这个过程,直到生成一个EOS token或者达到预设的最大长度(比如800字)为止。自回归生成的优点是:生成的文本符合人类的语言习惯,逻辑比较连贯;但它也有一个致命的缺点:每次只能生成一个token,效率很低,而且生成的文本可能会出现“重复”、“跑题”、“幻觉(Hallucination)”等问题——因为模型只是在根据统计规律“补词”,而不是真正“理解”了文本的含义。1.1.3 预训练与微调:ChatGPT“变聪明”的过程Transformer架构和自回归生成只是GPT系列模型的“骨架”,要让它“变聪明”,还需要经过两个关键的步骤:预训练(Pre-training)和微调(Fine-tuning)。1.1.3.1 预训练:给模型“喂”海量的文本数据预训练是GPT系列模型“变聪明”的第一步,也是最关键的一步——简单来说,预训练就是给模型“喂”海量的、高质量的文本数据(比如维基百科、新闻、小说、代码库、论文、聊天记录……OpenAI没有公布GPT-3.5 Turbo的训练数据量,但据估计,GPT-3的训练数据量大约是45TB的文本数据,GPT-3.5 Turbo和GPT-4的训练数据量只会更大),让模型学习这些文本数据的“统计规律”。预训练的任务就是我们之前提到的“预测下一个token”——对于预训练数据中的每一段文本,我们都会把文本的前半部分作为输入,后半部分作为目标输出,让模型根据输入预测目标输出的每一个token,然后通过**反向传播(Backpropagation)和梯度下降(Gradient Descent)**算法来更新模型的参数,减小预测值和真实值之间的误差。经过预训练之后,模型就变成了一个**“通用知识容器”**——它记住了海量文本数据的统计规律,可以回答很多问题、写很多东西,但它还不能很好地“理解”人类的意图——比如,当你问它“1+1等于几”的时候,它可能会回答“1+1等于2”,也可能会回答“1+1等于王”(因为它在训练数据中见过这个脑筋急转弯),但它不知道你到底想要的是数学答案还是脑筋急转弯的答案。1.1.3.2 微调:让模型“理解”人类的意图为了让预训练好的模型“理解”人类的意图,OpenAI又对GPT-3.5 Turbo进行了两个关键的微调步骤:监督微调(Supervised Fine-tuning,SFT)和基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)——这两个步骤也是ChatGPT能成为“通用对话机器人”的核心原因。1.1.3.2.1 监督微调(SFT):给模型“喂”人工标注的对话数据监督微调是微调的第一步——简单来说,监督微调就是给模型“喂”人工标注的、高质量的对话数据(比如人类提出的问题和人类专家给出的答案),让模型学习“如何根据人类的问题给出合适的答案”。OpenAI没有公布GPT-3.5 Turbo的SFT数据量,但据估计,GPT-3的SFT数据量大约是10万条人工标注的对话数据,GPT-3.5 Turbo和GPT-4的SFT数据量只会更大。经过SFT之后,模型就可以给出比较符合人类意图的答案了,但它的答案质量还不够高——有时候会出现重复、跑题、幻觉等问题,而且有时候会给出有害的答案(比如暴力、色情、歧视性的内容)。1.1.3.2.2 基于人类反馈的强化学习(RLHF):让模型“学会”人类的偏好为了进一步提高模型的答案质量,让模型“学会”人类的偏好(比如更准确、更简洁、更友好、更安全的答案),OpenAI又对SFT之后的模型进行了RLHF微调——这是微调的第二步,也是最复杂的一步。RLHF微调的核心流程可以分为三个步骤:训练奖励模型(Reward Model,RM):首先,让SFT之后的模型对同一个问题生成多个不同的答案,然后让人类标注员对这些答案按照“偏好程度”进行排序(比如“答案A比答案B好,答案B比答案C好”),最后用这些排序后的数据训练一个奖励模型——奖励模型的任务是“根据人类的排序,给模型生成的每一个答案打一个分数(奖励),分数越高表示人类越喜欢这个答案”。强化学习(Proximal Policy Optimization,PPO)微调:然后,把SFT之后的模型作为强化学习的策略网络(Policy Network),把奖励模型作为强化学习的奖励函数(Reward Function),让策略网络和环境(这里的环境就是“用户提出的问题”)交互——策略网络根据用户的问题生成一个答案,奖励模型给这个答案打一个分数,然后通过PPO算法更新策略网络的参数,让策略网络生成的答案的分数越来越高(也就是越来越符合人类的偏好)。约束优化(KL Penalty):最后,为了防止策略网络在强化学习微调的过程中“忘记”预训练和SFT阶段学到的知识(也就是所谓的“灾难性遗忘(Catastrophic Forgetting)”),OpenAI还在奖励函数中加入了一个KL散度惩罚项(KL Penalty)——KL散度是用来衡量两个概率分布之间的差异的,这里的两个概率分布分别是SFT之后的模型的输出概率分布和PPO微调之后的模型的输出概率分布,KL散度越大表示两个模型的输出差异越大,惩罚项也就越大——这样就可以约束策略网络的参数更新,让它不会偏离SFT之后的模型太远。经过RLHF微调之后,GPT-3.5 Turbo就变成了ChatGPT——它可以给出非常符合人类意图的答案,而且答案质量很高,安全性也比较好!1.2 ChatGPT的局限性分析虽然ChatGPT非常强大,但它的局限性也是非常明显的——我们在摘要/引言部分已经提到了一些,现在我们再结合ChatGPT的技术本质,深入分析一下这些局限性的根本原因。1.2.1 局限性1:不能自主规划复杂任务问题描述:ChatGPT不能自主规划复杂任务——比如,当你让它“帮你制定一场从北京到东京7天的含机票、酒店、景点预约、优惠券领取、当地交通换乘的完整自由行方案,还能处理突发的航班延误情况”的时候,它可能会给你一个“大概的框架”(比如“第一天:北京飞东京,入住新宿的酒店,晚上去涩谷十字路口;第二天:去浅草寺、上野公园……”),但它不能自主地去查机票价格、查酒店空房、查景点预约时间、查优惠券信息、查当地交通换乘路线,更不能自主地处理突发的航班延误情况(比如重新订机票、调整酒店入住时间、调整行程安排等)。根本原因:ChatGPT的技术本质是“基于Transformer的自回归语言模型,其核心任务是预测下一个token”——它只是一个“被动的知识查询器和文本生成器”,没有“目标驱动(Goal-Driven)”的意识,也没有“自主规划(Autonomous Planning)”的能力。它不知道“制定一场完整的自由行方案”需要哪些步骤,也不知道这些步骤之间的依赖关系(比如必须先查机票价格和时间,才能确定酒店入住和离开的时间;必须先确定行程安排,才能查景点预约时间和当地交通换乘路线等)——它只能根据你给的prompt,生成一些“大概的文本内容”,而不能自主地把这些内容转化为“可执行的行动计划”。1.2.2 局限性2:不能实时访问外部信息问题描述:ChatGPT不能实时访问外部信息——它的所有知识都截止到训练数据的最后一刻(比如2023年推出的GPT-4 Turbo知识截止到2024年1月,ChatGPT原始版截止到2021年9月)。比如,当你问它“今天北京的天气怎么样?”、“2024年巴黎奥运会的开幕式日期是什么时候?”、“最近一周特斯拉的股票行情怎么样?”的时候,它要么会告诉你“我的知识截止到XXXX年XX月,无法提供实时信息”,要么会根据训练数据中的统计规律“编造”一些信息(也就是所谓的“幻觉”)。根本原因:ChatGPT的技术本质是“基于Transformer的自回归语言模型,其核心任务是预测下一个token”——它的所有知识都存储在**模型的参数(Weights and Biases)**中,而模型的参数是在预训练和微调阶段就已经固定下来的(除非重新训练或微调,否则不会改变)。ChatGPT没有“实时访问外部数据源(比如天气API、股票API、新闻API、搜索引擎等)”的能力——它只能根据已经存储在参数中的知识来生成文本,而不能从外部获取新的知识。1.2.3 局限性3:不能自主调用外部工具问题描述:ChatGPT不能自主调用外部工具——比如,当你让它“帮我打开Excel文件‘财务报表.xlsx’,分析一下2023年的营收情况,并生成一个可视化的折线图”的时候,它可能会给你一段Python代码(比如用pandas读取Excel文件,用matplotlib生成折线图),但它不能自主地去执行这段代码,也不能自主地去打开Excel文件、生成折线图——你需要自己把这段代码复制到Python编辑器中去执行,然后把执行结果反馈给它,它才能根据执行结果继续生成文本。根本原因:ChatGPT的技术本质是“基于Transformer的自回归语言模型,其核心任务是预测下一个token”——它只是一个“文本生成器”,没有“执行环境(Execution Environment)”,也没有“工具调用(Tool Calling)”的能力(至少在原始版的ChatGPT中是这样的——后来OpenAI推出了插件功能和Advanced Data Analysis插件,才赋予了ChatGPT一定的工具调用能力,但这些工具调用是“被动的”,需要用户明确指定,而不是“自主的”)。它不知道“打开Excel文件、分析财务数据、生成折线图”需要调用哪些工具,也不知道这些工具的“接口格式(Interface Format)”是什么——它只能根据你给的prompt,生成一些“大概的文本内容或代码”,而不能自主地去执行这些内容或代码。1.2.4 局限性4:缺乏长期记忆问题描述:ChatGPT缺乏长期记忆——对话超过一定长度后(比如GPT-3.5 Turbo的上下文窗口(Context Window)是4096个token,GPT-4的上下文窗口是8192个token,GPT-4 Turbo的上下文窗口是128k个token,GPT-4o的上下文窗口是128k个token),模型就会“忘记”之前说过的关键信息。比如,当你和ChatGPT聊了1000句关于你的个人信息(比如姓名、年龄、职业、爱好、家庭住址、信用卡号……)之后,你再问它“我的家庭住址是什么?”,它可能会回答“对不起,我没有记住你的家庭住址——因为对话太长了,我的上下文窗口已经满了”,要么会根据训练数据中的统计规律“编造”一些信息。根本原因:ChatGPT的技术本质是“基于Transformer的自回归语言模型,其核心任务是预测下一个token”——它的所有“记忆”都存储在**上下文窗口(Context Window)**中,而上下文窗口的大小是有限的(比如GPT-3.5 Turbo的上下文窗口只有4096个token,大约相当于3000个汉字)。每次生成新的token之前,模型都会把之前的对话历史(也就是上下文窗口中的内容)作为输入——如果对话历史超过了上下文窗口的大小,模型就会“截断”之前的对话历史,只保留最近的一部分内容,这样就会“忘记”之前说过的关键信息。1.2.5 局限性5:容易产生幻觉问题描述:ChatGPT容易产生幻觉——也就是会“编造”一些不存在的信息,而且这些信息看起来非常真实,很难分辨。比如,当你问它“请给我推荐一篇关于Transformer架构的最新论文,作者是张三,发表在2024年的Nature上”的时候,它可能会给你一篇“看起来非常真实的论文”——有标题、有摘要、有作者、有发表时间、有期刊名称,但实际上这篇论文根本不存在,是它根据训练数据中的统计规律“编造”出来的。根本原因:ChatGPT的技术本质是“基于Transformer的自回归语言模型,其核心任务是预测下一个token”——它只是在根据训练数据中的统计规律“补词”,而不是真正“理解”了文本的含义,也没有“验证信息真实性”的能力。它不知道哪些信息是真实的,哪些信息是不存在的——只要这些信息符合训练数据中的统计规律,它就会把它们“补”出来。二、 Agent的核心概念与范式转移的本质现在,我们已经搞清楚了ChatGPT的技术本质和局限性——接下来,我们就可以正式进入Agent的世界了。在这一部分,我们将:定义什么是Agent、什么是自主智能体;对比Agent与ChatGPT的核心差异;明确这次从ChatGPT到Agent的范式转移到底转移了什么。2.1 Agent的核心概念“Agent”这个词在计算机科学和人工智能领域已经存在了很长时间——但直到大语言模型(LLM)的出现,Agent才真正从“学术实验室”走进了“现实世界”,并成为了AI发展的下一个核心方向。那么,究竟什么是Agent?什么是自主智能体?2.1.1 广义的Agent定义在计算机科学和人工智能领域,广义的Agent定义是:能够感知环境(Perceive the Environment)、通过行动(Act)作用于环境、并自主(Autonomously)实现一定目标(Achieve a Goal)的实体。这个定义听起来有点抽象,我们可以用一些生活中的例子来理解:人类:人类是最典型的Agent——我们可以通过眼睛、耳朵、鼻子、舌头、皮肤等感官感知环境(比如看到今天的天气是晴天、听到闹钟响了、闻到饭香了……),可以通过手、脚、嘴等器官作用于环境(比如起床、刷牙、吃饭、上班……),可以自主地实现一定的目标(比如“今天要完成一个项目”、“这个月要赚1万块钱”、“今年要去日本旅游”……)。动物:动物也是Agent——比如猫可以通过眼睛、耳朵、鼻子感知环境(比如看到老鼠、听到脚步声、闻到鱼香了……),可以通过爪子、嘴作用于环境(比如抓老鼠、吃鱼、睡觉……),可以自主地实现一定的目标(比如“填饱肚子”、“找一个安全的地方睡觉”、“繁衍后代”……)。扫地机器人:扫地机器人也是Agent——它可以通过传感器(比如碰撞传感器、悬崖传感器、摄像头、激光雷达……)感知环境(比如看到墙壁、碰到家具、检测到悬崖、识别到垃圾……),可以通过轮子和刷子作用

更多文章