LLM 时代的软件将被 Agents 重写
LLM 时代的软件将被 Agents 重写关键词:LLM Agents、大语言模型、智能体架构、软件重定义、自主系统、LangChain、Prompt Engineering摘要:本文将从“智能助手”到“自主员工”的软件需求转变入手,用“小学生乐高积木搭智能小车”“奶茶店全自动AI服务员”等生活类比,深入浅出地拆解LLM Agents的核心概念、工作原理、技术架构;通过对比传统软件与LLM Agents驱动软件的开发、部署、维护模式,揭示Agents重写软件的底层逻辑;最后给出完整的Python实战项目(基于LangChain和OpenAI API的个人待办助手Agent),并探讨Agents未来的发展趋势与挑战。读完本文,你将明白为什么说Agents是LLM时代的“软件操作系统”,以及如何从零开始构建第一个属于自己的Agent。背景介绍从“只会按按钮”到“自己想办法”:我们的软件需求变了各位读者朋友,先问问自己一个问题:你现在用的手机APP、电脑软件,是不是大部分还是“你点我动”的?比如你要订明天早上8点到上海虹桥高铁站的早餐+火车票:先打开日历APP看明天有没有其他安排(哦对,今天晚上要看球但不影响)打开12306APP查明天7点-8点之间的余票(二等座商务座都行,但别太贵)选好二等座填好信息付钱打开美团饿了么查“虹桥高铁站早餐店24小时营业”“离检票口近”选好“全家包子铺豆浆油条茶叶蛋套餐”填好取餐码和检票口信息付钱再打开闹钟APP设三个闹钟:6:00起床、6:30出门、7:30到高铁站累不累?一共至少点了几十下按钮,填了好几次重复的信息,还得自己判断有没有余票冲突、早餐店合不合理、闹钟够不够早——这些“思考+决策+执行”的事,传统软件根本不会帮你干,它们只是“按程序跑的机械臂”。但在LLM(大语言模型)出现之后,我们的需求瞬间升级了:能不能直接对手机说一句“帮我订明天早上8点左右到虹桥高铁站的火车票和离检票口近的早餐,别耽误明天上午10点的客户会议,预算控制在300以内(含车票早餐地铁打车)”,然后它自己搞定一切?答案是——完全可以!这种能听懂人话、理解目标、自己思考决策、调用各种工具、自动完成一系列复杂任务的东西,就是我们今天要讲的LLM Agents(大语言模型驱动的智能体)。Agents为什么能“重写”软件?我们常说“需求决定供给”——既然我们的软件需求已经从“工具人助手”变成了“自主员工”,那传统的“功能固定、流程僵化、需要大量人工操作”的软件,肯定就不够用了。这时候,LLM Agents就像一颗“原子弹”,炸掉了传统软件的天花板,开启了一个全新的“自主软件时代”。那为什么是LLM,而不是之前的AI技术(比如Siri、小爱同学、规则引擎)呢?因为之前的AI要么是“只会回答固定问题的复读机”(比如Siri很多时候会说“我不太懂你在说什么”),要么是“需要程序员一条一条写规则的木偶”(比如规则引擎要是遇到规则里没写的情况就直接罢工)——只有LLM,拥有通用的自然语言理解能力、推理能力、知识储备能力,能像人一样“思考”“随机应变”。所以说,LLM是Agents的“大脑”,Agents是LLM的“手脚”和“灵魂”——大脑再聪明,没有手脚也干不了活;手脚再灵活,没有灵魂(目标驱动的思考决策逻辑)也只是一堆废铁。两者结合起来,就能打造出“能自主工作的智能体”,从而彻底重写我们今天的软件。预期读者这篇文章适合所有对LLM、AI、软件开发感兴趣的朋友:如果你是普通用户:你会明白未来的软件会是什么样的,以及如何用现有的工具(比如ChatGPT插件、LangChain)体验Agents如果你是初级开发者:你会学会如何从零开始用Python和LangChain构建第一个属于自己的Agent如果你是资深开发者/架构师:你会了解Agents的核心技术架构、与传统软件的对比、最佳实践以及未来的发展趋势如果你是产品经理:你会明白如何设计一个好的Agents产品,以及Agents时代的产品经理需要具备什么样的能力文档结构概述本文将按照“为什么是Agents→什么是Agents→Agents怎么工作→如何构建一个Agent→Agents的实际应用→Agents的未来”的逻辑顺序展开,具体章节如下:背景介绍:已经讲完啦~核心概念与联系:用生活类比拆解Agents的核心概念、概念之间的关系,给出架构示意图和流程图核心算法原理 具体操作步骤:讲解Agents的核心算法(ReAct、Reflexion等),并用Python代码片段演示数学模型和公式 详细讲解 举例说明:讲解Agents背后的简单数学模型(比如马尔可夫决策过程的简化版)项目实战:基于LangChain和OpenAI API的个人待办助手Agent:从开发环境搭建到源代码实现,详细讲解如何构建一个能自动管理待办事项、调用日历、天气、新闻API的Agent实际应用场景:介绍Agents在各个行业(比如电商、教育、医疗、金融)的实际应用工具和资源推荐:推荐一些常用的Agents开发工具、框架、学习资源未来发展趋势与挑战:探讨Agents未来的发展方向(比如多模态Agents、多Agent协作),以及目前面临的挑战(比如安全性、可靠性、可解释性)总结:学到了什么?:用通俗易懂的语言再次强调核心概念思考题:动动小脑筋:提出一些思考题,鼓励读者进一步思考和应用所学知识附录:常见问题与解答:解答一些读者可能会遇到的问题扩展阅读 参考资料:推荐一些相关的论文、书籍、博客术语表核心术语定义LLM(Large Language Model,大语言模型):一种基于Transformer架构的深度学习模型,通过在海量文本数据上训练,拥有通用的自然语言理解能力、推理能力、知识储备能力,能生成连贯的文本。比如GPT-4、Claude 3、文心一言、通义千问都是LLM。Agent(智能体):一种能感知环境、理解目标、自己思考决策、采取行动、与环境交互、最终实现目标的实体。在本文中,我们主要讨论LLM Agents——也就是以LLM为核心大脑的智能体。Tool(工具):Agent用来与环境交互的“武器”,比如日历API、天气API、12306 API、计算器、文件读写工具等。Prompt(提示词):给LLM的“指令”,告诉LLM它的身份、任务、规则、需要的信息等。Prompt Engineering(提示词工程)就是如何写好提示词的技巧。Memory(记忆):Agent的“大脑存储区”,用来保存对话历史、任务进度、环境信息等,让Agent能“记得之前发生的事”。Planning(规划):Agent的“思考策略”,用来把一个大目标分解成一系列小步骤,比如把“订明天的早餐+火车票”分解成“查日历→查余票→订车票→查早餐店→订早餐→设闹钟”。Action(行动):Agent的“执行步骤”,也就是调用某个工具来完成某个小任务。Observation(观察):工具执行完行动之后返回的结果,Agent会根据观察结果继续思考决策。ReAct(Reasoning + Acting,推理+行动):一种常用的Agent核心算法,让Agent先推理“下一步该做什么”,再采取行动,再观察结果,再推理,直到完成目标。相关概念解释Transformer架构:LLM的底层技术架构,由Vaswani等人在2017年的论文《Attention Is All You Need》中提出,核心是Self-Attention(自注意力)机制,能让LLM理解文本中各个词语之间的关系。LangChain:一个非常流行的Agents开发框架,提供了很多现成的组件(比如Memory、Tool、Agent、Chain),能让开发者快速构建Agents。Chain(链):LangChain中的一个概念,用来把多个LLM调用或者工具调用串联起来,完成一个固定流程的任务。和Agent不同的是,Chain的流程是固定的,而Agent的流程是动态的——Agent会根据观察结果自己调整流程。Multi-Agent System(多Agent系统):由多个Agent组成的系统,这些Agent可以互相通信、协作、竞争,完成一个单独Agent无法完成的复杂任务,比如“一个CEO Agent+一个技术总监Agent+一个产品经理Agent+一个程序员Agent”组成的AI创业公司。缩略词列表缩略词全称中文解释LLMLarge Language Model大语言模型Agent——智能体Tool——工具Prompt——提示词Memory——记忆Planning——规划Action——行动Observation——观察ReActReasoning + Acting推理+行动APIApplication Programming Interface应用程序编程接口Transformer——Transformer架构LangChain——LangChain框架Chain——链Multi-Agent System——多Agent系统核心概念与联系故事引入:奶茶店的“全自动AI服务员”各位读者朋友,想象一下你开了一家网红奶茶店,生意特别好,每天都排着长队,但服务员却不够用——这时候,你请来了一个全自动AI服务员Agent,我们来看看它是怎么工作的:感知环境:AI服务员通过摄像头看到你(哦不,是看到顾客)排着队,通过麦克风听到第一个顾客说:“给我来一杯三分糖去冰的珍珠奶茶,珍珠多放一点,再打包带走,等会儿要赶公交车,能不能快点?”理解目标:AI服务员先理解了顾客的核心目标:“制作一杯符合要求的珍珠奶茶,打包带走,尽快完成”;同时记住了顾客的细节要求:“三分糖、去冰、珍珠多放一点、赶公交车要快”。记忆调用:AI服务员先回忆了一下今天的奶茶店情况:“今天珍珠煮得够多,三分糖去冰的配方是‘茶底200ml、奶150ml、糖3g、冰0g、珍珠50g(但顾客要求多放,那就放80g)’,打包袋有足够的,赶公交车的话要优先处理这个订单”。规划步骤:AI服务员把目标分解成了一系列小步骤:“①跟顾客确认订单细节;②把订单优先录入系统;③通知奶茶制作师优先制作;④给顾客一个优先取餐码;⑤提醒顾客公交车还有10分钟到,奶茶大概3分钟就能做好;⑥奶茶做好后装袋;⑦叫号取餐”。采取行动+观察结果:行动①:跟顾客说“好的,您的订单是三分糖去冰的珍珠奶茶,珍珠多放一点,打包带走,赶公交车要优先处理对吗?”观察①:顾客说“对的对的,麻烦快点!”行动②:把订单“三分糖去冰珍珠奶茶 珍珠80g 打包 优先”录入系统观察②:系统提示“订单已录入,标记为优先”行动③:通过对讲机跟奶茶制作师说“小李,优先处理订单号001,三分糖去冰珍珠奶茶,珍珠80g,打包”观察③:小李说“收到!马上做!”……以此类推,直到顾客取到奶茶离开反思总结:顾客离开后,AI服务员会反思一下今天的工作:“今天优先处理赶时间的顾客效果不错,下次可以多问一句‘您赶时间吗?赶时间的话可以优先处理’;另外珍珠多放一点的话可以加个5毛钱的选项,下次可以跟顾客提一下”。看!这个AI服务员Agent是不是就像一个“真人服务员”一样?它能听懂人话、理解目标、记得之前的事、自己规划步骤、采取行动、观察结果、随机应变——这就是我们今天要讲的LLM Agents!核心概念解释:像给小学生讲故事一样好,现在我们用刚才的“奶茶店全自动AI服务员”的例子,来拆解LLM Agents的8个核心概念:核心概念一:LLM——Agent的“超级大脑”在刚才的例子中,AI服务员能听懂人话、理解目标、规划步骤、反思总结,靠的是什么?靠的就是LLM——也就是Agent的“超级大脑”。我们可以把LLM想象成一个读了全世界所有书、看了全世界所有视频、听了全世界所有对话的超级学霸——它什么都知道(当然,也有不知道的,比如实时的天气、今天的奶茶店珍珠够不够多,这时候就需要工具了),能听懂任何人类语言,能像人一样思考推理,能生成任何人类能生成的文本(比如订单、对话、代码、文章等)。在LLM出现之前,我们要做一个AI服务员,得一条一条写规则:比如“如果顾客说‘三分糖’,就加3g糖;如果顾客说‘去冰’,就加0g冰;如果顾客说‘赶时间’,就标记为优先”——但如果顾客说“给我来一杯像我今天心情一样甜的珍珠奶茶,今天我生日,开心!”,规则引擎就直接罢工了,因为规则里没写“像心情一样甜”“生日开心”对应的糖量。但LLM就不一样了——它能理解“像心情一样甜”“生日开心”的意思,知道应该加多少糖(比如全糖或者七分糖),还会跟顾客说“生日快乐!给您加了全糖和双倍珍珠,祝您天天开心!”——这就是LLM的魔力!核心概念二:Tool——Agent的“超级武器库”刚才的超级学霸LLM,虽然什么都知道,但它不能直接与现实世界交互——比如它不能直接查看今天的奶茶店珍珠够不够多,不能直接录入订单,不能直接跟奶茶制作师说话,不能直接查看公交车还有多久到。这时候,我们就需要给LLM配上Tool(工具)——也就是Agent的“超级武器库”。每个工具都有一个特定的功能,比如:珍珠库存查询工具:查询今天的珍珠够不够多订单录入工具:把订单录入系统对讲机工具:跟奶茶制作师说话公交车查询工具:查询公交车还有多久到计算器工具:计算奶茶的价格文件读写工具:记录今天的销售数据我们可以把Tool想象成超级学霸的“手脚”“眼睛”“耳朵”“嘴巴”——超级学霸虽然聪明,但没有手脚眼睛耳朵嘴巴也干不了活;配上这些工具之后,超级学霸就能“看到”“听到”“摸到”“做到”现实世界的事了。核心概念三:Memory——Agent的“超级日记本”刚才的超级学霸LLM,还有一个缺点——它没有记忆!比如你先跟AI服务员说“给我来一杯三分糖去冰的珍珠奶茶”,然后又说“珍珠多放一点”,如果没有Memory的话,LLM就会忘记你刚才说的“三分糖去冰的珍珠奶茶”,只会问你“珍珠多放一点什么?”。这时候,我们就需要给LLM配上Memory(记忆)——也就是Agent的“超级日记本”。Memory可以保存:对话历史:刚才你跟AI服务员说了什么任务进度:订单录了吗?奶茶做了吗?环境信息:今天的珍珠够不够多?公交车还有多久到?长期记忆:你之前来过几次奶茶店?每次都点什么?我们可以把Memory想象成超级学霸的“超级日记本”——超级学霸虽然聪明,但如果不记日记的话,很快就会忘记之前发生的事;配上这个超级日记本之后,超级学霸就能“记得之前的一切”了。核心概念四:Prompt——Agent的“工作手册”刚才的超级学霸LLM,虽然聪明、有工具、有记忆,但它不知道自己的身份是什么、任务是什么、规则是什么——比如如果没有Prompt的话,你跟AI服务员说“给我来一杯珍珠奶茶”,LLM可能会跟你说“珍珠奶茶的配方是茶底200ml、奶150ml、糖5g、冰5g、珍珠30g”,而不是给你录订单。这时候,我们就需要给LLM配上Prompt(提示词)——也就是Agent的“工作手册”。Prompt会告诉LLM:身份:你是这家网红奶茶店的AI服务员任务:接待顾客、录入订单、通知制作师、叫号取餐规则:赶时间的顾客要优先处理、珍珠多放一点可以加5毛钱、生日的顾客可以加双倍珍珠需要的信息:如果顾客的订单有不完整的地方,要问清楚(比如“您要几分糖?去冰还是少冰?”)可以使用的工具:珍珠库存查询工具、订单录入工具、对讲机工具、公交车查询工具等我们可以把Prompt想象成超级学霸的“工作手册”——超级学霸虽然聪明,但如果没有工作手册的话,就不知道自己该干什么;配上这个工作手册之后,超级学霸就能“知道自己的身份、任务、规则,该干什么就干什么”了。核心概念五:Planning——Agent的“思维导图”刚才的超级学霸LLM,虽然聪明、有工具、有记忆、有工作手册,但有时候遇到复杂的大任务,还是会不知道从哪里下手——比如你跟AI服务员说“给我订明天早上8点左右到虹桥高铁站的火车票和离检票口近的早餐,别耽误明天上午10点的客户会议,预算控制在300以内”,如果没有Planning的话,LLM可能会先订早餐,再订车票,再查日历,发现明天上午10点的客户会议其实是在杭州,而不是上海,白忙活了。这时候,我们就需要给LLM配上Planning(规划)——也就是Agent的“思维导图”。Planning会把一个复杂的大目标分解成一系列简单的小步骤,比如:先查日历,确认明天上午10点的客户会议在哪里如果是在上海虹桥,再查明天7点-8点之间的余票选好二等座填好信息付钱查离检票口近的24小时营业的早餐店选好符合预算的套餐填好信息付钱设三个闹钟:6:00起床、6:30出门、7:30到高铁站确认所有步骤都完成了,预算有没有超过300我们可以把Planning想象成超级学霸的“思维导图”——超级学霸虽然聪明,但如果没有思维导图的话,遇到复杂的大任务就会手忙脚乱;配上这个思维导图之后,超级学霸就能“一步一步有条不紊地完成任务”了。核心概念六:Action——Agent的“执行按钮”刚才的超级学霸LLM,虽然聪明、有工具、有记忆、有工作手册、有思维导图,但它不能直接执行工具——比如它想查今天的珍珠够不够多,但不知道怎么按珍珠库存查询工具的“执行按钮”。这时候,我们就需要给LLM配上Action(行动)——也就是Agent的“执行按钮”。Action会告诉LLM:下一步该调用哪个工具调用这个工具需要什么参数(比如珍珠库存查询工具需要的参数是“今天的日期”)我们可以把Action想象成超级学霸的“执行按钮”——超级学霸虽然知道该用哪个工具,但如果没有执行按钮的话,就用不了工具;配上这个执行按钮之后,超级学霸就能“想用哪个工具就用哪个工具”了。核心概念七:Observation——Agent的“观察报告”刚才的超级学霸LLM,虽然按了珍珠库存查询工具的“执行按钮”,但它不知道工具执行的结果是什么——比如珍珠库存查询工具返回的结果是“今天的珍珠还剩1000g”,如果没有Observation的话,LLM就不知道这个结果,还是会继续问“今天的珍珠够不够多?”。这时候,我们就需要给LLM配上Observation(观察)——也就是Agent的“观察报告”。Observation会把工具执行的结果返回给LLM,让LLM根据这个结果继续思考决策。我们可以把Observation想象成超级学霸的“观察报告”——超级学霸虽然按了工具的执行按钮,但如果没有观察报告的话,就不知道工具执行的结果;配上这个观察报告之后,超级学霸就能“根据观察结果继续思考决策”了。核心概念八:ReAct——Agent的“工作循环”刚才的超级学霸LLM,现在已经有了超级大脑、超级武器库、超级日记本、工作手册、思维导图、执行按钮、观察报告——但它不知道怎么把这些东西组合起来工作。这时候,我们就需要给LLM配上ReAct(Reasoning + Acting,推理+行动)——也就是Agent的“工作循环”。ReAct的工作流程是:Reasoning(推理):LLM根据对话历史、任务进度、环境信息、工作手册,推理下一步该做什么Acting(行动):LLM根据推理结果,调用某个工具(Action)Observation(观察):工具执行完行动之后,返回结果(Observation)Repeat(重复):LLM根据观察结果,继续推理、行动、观察,直到完成目标我们可以把ReAct想象成超级学霸的“工作循环”——超级学霸按照“思考→做事→看结果→再思考→再做事→再看结果→直到完成任务”的循环工作,这就是人类的工作方式,也是Agent的工作方式!核心概念之间的关系:用小学生能理解的比喻好,现在我们用“小学生乐高积木搭智能小车”的例子,来解释这8个核心概念之间的关系:比喻说明LLM(超级大脑):小学生的大脑——聪明,能理解 instructions(说明书),能规划怎么搭智能小车Tool(超级武器库):乐高积木的零件——轮子、电机、电池、传感器、控制器、螺丝刀等Memory(超级日记本):小学生的笔记本——记录搭智能小车的步骤、遇到的问题、解决的方法Prompt(工作手册):乐高积木的说明书——告诉小学生怎么搭智能小车、有什么规则、需要什么零件Planning(思维导图):小学生画的搭智能小车的步骤图——先搭底盘、再装轮子、再装电机、再装电池、再装传感器、再装控制器、最后测试Action(执行按钮):小学生的手——用来拿零件、装零件、拧螺丝Observation(观察报告):小学生的眼睛——用来看看零件装对了没有、电机转不转、传感器灵不灵ReAct(工作循环):小学生的搭车循环——看说明书→想下一步该装什么→拿零件装→看装对了没有→再看说明书→再想→再装→再看→直到智能小车能跑核心概念之间的关系图我们先来看一下核心概念之间的ER实体关系图(Mermaid架构图):读取/写入