- 大模型项目实战:Agent开发与应用
- 高强文
- 3765字
- 2025-05-07 11:54:57
PREFACE
前言
AI Agent(或简称为Agent)是建立在大语言模型之上的智能应用,是将人工智能与特定场景深度结合的重要方式。Agent模仿人类“思考-行动-观察”的规划模式,具备自主思考和自主决策的能力,能够适应环境的变化,自主学习和改进,完成用户设定的目标。与大语言模型的对话应用不同,Agent的突出特点是主动性,在行为上表现为多步操作、多角色会话、多轮迭代、反复修正答案以及调用外部资源的能力。
20世纪80年代,对于AI Agent是否能够真正产生自主性的、生物意义上的“智能”这一问题已在哲学层面展开讨论。20年前,深度学习的发展促进了Agent的进化。近几年来,在大语言模型的支持下,Agent越来越具备主动性,“思考”问题的方法也在参考人类特征的基础上,形成一套包含规划、记忆、工具和行动的功能规范。在Agent与大语言模型技术结合方面,ReAct、ToT、Reflexion、CoT等思考框架的研究成果不断,相关论文以及与之配套的开源代码诠释了理论如何变为现实。看似眼花缭乱实则科学严谨的提示词工程,在与大语言模型的交互中,使得Agent像施展魔法般地实现了人类预定的目标。展望未来,基于Agent,人们对通用人工智能(Artificial General Intelligence,AGI)充满了想象空间。
Agent的发展离不开大语言模型的支持,而大语言模型则通过Agent扩展其功能。随着GPT-4、GLM-4、Llama3、Qwen2等模型的发布,依托这些模型的应用技术也取得了显著的进步,GPT-4率先推出了Function-calling功能,其他模型也迅速跟进。这一创新反映了大语言模型将超越单纯的内容生成,向更智能、更主动、更有规划性的AGI方向发展。AutoGPT、BabyAGI等Agent应用的推出,使代表着主动思考、主动决策、主动执行的AGI技术取得了长足的进步。同时,LangChain、AutoGen等Agent开发框架的问世与流行,使这个领域的应用开发变得更加便捷,多角色、多模态的Agent应用纷纷涌现。
目前,Agent正处于快速发展过程中,已在长记忆会话、任务处理、检索增强、辅助编程等领域产生了许多产品和应用案例。本书详细介绍了8种开源的主流Agent应用以及7种Agent开发框架,从基础、应用、开发三个层面对Agent知识进行了循序渐进的讲解。考虑到实际应用场景,本书还涵盖了支撑Agent应用的大型语言模型的安装、服务开发以及微调技术,从而使Agent的知识体系更加完整。
本书特点
本书具有以下特点:
❍基于开源技术:本书中涉及的所有Agent技术都是开源项目,所使用的大模型也皆为开源模型且可在本地部署,而非依赖OpenAI等云服务。案例代码中不依赖额外的API,均可在本地部署的模型支持下进行调试和运行。此外,本书所有案例代码已在GitHub上开源。
❍技术广泛:本书涵盖了8种Agent应用(应用篇)和7种Agent开发框架(开发篇),共涉及15种开源Agent技术。Agent正在快速发展,覆盖的技术越多,读者学习或深入研究的选择越多。
❍国内外并重:本书使用的技术中,国产Agent、国产大模型技术占有一定的比例,如QAnything、AgentScope、CodeFuse-ChatBot、Qwen-Agent、GLM-4、CogVLM2等。对于读者来说,阅读本书后,如果想了解相关技术细节,那么国产项目的中文文档更易于深入学习。
❍详解大模型技术:大语言模型是Agent的运行基础,本书专门对大模型的开发技术进行了详细讲解,内容包括大语言模型的应用、服务开发与微调。通过学习,读者能够深入了解Agent背后的内容生成原理。
❍案例涉及的领域广泛:本书提供了10个不同场景的Agent应用开发案例,案例涉及的领域广泛,且贴近读者的学习与生活,如任务驱动、多角色协同、辅助编程、RAG、图像、多模态等,实用性强。
内容来源
本书的内容源于笔者的研究与实践。在写作过程中,我精心挑选了各类Agent技术,涵盖多个领域和场景,力求在知识的广度和深度上都有所考量,希望为读者提供多元化的参考。具体来说,本书的写作素材来源主要包括以下几个方面:
❍实践案例:在本书撰写过程中,我实践了大量Agent应用,并开发了一系列多领域的示例程序。
❍官方资源:本书整合了来自各种Agent应用和开发框架的官网资料,确保得到官方的前沿信息。
❍培训课件:在过去两年中,我作为培训讲师,为教师、学生以及软件企业举办了多场大语言模型培训,其中,Agent实操课程也是一个重要的培训主题,因此获得了大量学员反馈,从而优化了本书内容。
读者对象
本书涉及的Agent技术丰富、操作步骤详细、源代码完整,适合Agent使用者和开发者上手实践。
❍对于使用者来说,8种典型的Agent开源应用,能够满足他们在部署与使用方面的需求。❍对于开发者来说,10个不同场景的Agent应用开发案例以及多种大语言模型服务,能够满足他们学习、实践的需求。
如何阅读本书
这是一本讲解Agent基础知识、开发与应用方法的实战指南,共分为三篇:
❍基础篇:包括第1和2章,介绍了Agent定义、发展历程、常用开源技术、主要组件等基础知识和开发环境的搭建过程。
❍应用篇:包括第3~6章,从通用型、任务驱动型、辅助开发型和检索增强型的分类角度,介绍了AutoGPT、MemGPT、BabyAGI、Camel、Devika、CodeFuse-ChatBot、DB-GPT、QAnything这8种流行度高、社区完善、正在快速发展的开源Agent应用,描述其运行原理、安装方法和使用过程。
❍开发篇:包括第7~16章,完成10个不同场景的Agent应用开发实战。一方面,以AgentScope、LangChain、LangGraph、AutoGen、LlamaIndex、CrewAI、Qwen-Agent这7种目前被广泛应用的开源Agent开发框架为基础,针对每个框架各讲解一个开发案例。另一方面,通过案例介绍了Agent开发过程中关键的Function-calling特性及大语言模型开发技术。此外,对基于CogVLM2的多模态模型应用开发,也提供了案例演示。
实践要求及说明
在本书的大部分示例中,Agent需要大语言模型具备Function-calling特性或对推理能力要求较高,所以基本上选用了8B、9B等参数规模的模型,运行这些模型所需的GPU内存在20GB左右。书中还涉及一些大模型的微调技术和多模态模型的应用开发,所以至少需要1张24GB内存的推理卡或显卡。虽然部分示例在Ollama的量化环境下只需要6GB内存即可正常运行,但为了完整实践所有示例,建议采用24GB或以上内存的推理卡或显卡,以及与之配套的服务器或高端个人计算机。
以下是关于阅读与实践本书内容的注意事项。
①操作系统。Agent应用服务本身可以运行在Windows和Linux下。Agent需要大语言模型的支持,在本书所介绍的装载大语言模型的三种方法中,只有Ollama支持Windows操作系统,其余两种由于依赖vLLM而不能在Windows上运行。综合以上情况,建议读者在Ubuntu 22.04操作系统中实践本书内容。书中涉及的文件下载、文件编辑、文件复制等操作系统命令均使用了Linux的方式描述,如果读者使用Windows,则要根据情况采用对应的操作方法。
②命令换行。在操作系统命令行下执行命令时,Linux系统支持对较长的命令采用“\”进行换行,命令执行结果不会发生变化,而在Windows系统中要将“\”换成“^”。
例如,以下命令在Linux系统中运行正常:

该命令如果要在Windows系统中正常运行,则需要把首行行尾的“\”替换成“^”,格式如下:

③命令注释。本书中描述的在操作系统命令行下执行的命令,如果以“#”开头则为注释,无须执行。为了避免读者将多条命令误以为是一条连续的命令一起执行而发生错误,我一般会在每条命令的前一行加注释。
④示例代码。得益于Python语言的精练以及各种Agent开发框架的封装,本书的示例代码大多在100行左右,开发篇中列出的基本上都是完整源代码。但书中为了详细地解释程序原理,特意对代码进行了分段叙述,这会因缩进难以观察而影响代码的整体性和可读性,建议读者调试程序时,从本书的配套代码库中下载所用的代码。
⑤主机名称。为了统一和规范书中程序的配置与访问方式,减少可能的歧义,本书采用以下约定:如果是本机地址,则使用127.0.0.1表示;如果涉及GPU服务器,则使用主机名“server-dev”指代。主机名对应的IP地址可以通过配置DNS解析来确定,在Windows系统中修改C:\Windows\System32\drivers\etc\HOSTS文件,在Linux系统中修改/etc/hosts文件。
勘误和支持
本书的所有源代码和简要操作步骤,已在https://github.com/little51/agent-dev上开源,读者可自行查阅。
虽然我在写作时已尽力谨慎,反复测试验证,但本书中仍可能出现一些疏漏或者不准确之处,恳请读者指正。若读者有勘误或意见,可通过邮件little51@126.com反馈,或者在https://github.com/little51/agent-dev代码库上提交issue。
致谢
2023年以后,我一直从事大语言模型应用开发与培训工作。2024年初,我结合工作中积累的经验,对培训课件进行整理,形成一些关于大模型应用开发的原始写作素材,并获得与机械工业出版社合作的机会,开始撰写《大模型项目实战:多领域智能应用开发》[1]一书。2024年7月,在该书的写作接近尾声时,为期半个月的人工智能培训也在按计划进行,我将AI Agent的一些内容加到课程中,得到了广大学员的积极反馈和同事的建议,这激励我撰写一本关于Agent的图书,于是我一边开发多个领域的Agent示例程序,一边进行文本书写。经过近三个月不停歇的工作,这本新书即将问世。
在这一过程中,我要感谢以下朋友:
我要感谢我所在公司的集团领导梁明道先生,在我的印象中,十年前他就开始反复给我描绘“智体”的前景,这对我在Agent方面的研究大有裨益。在他的理论中,这种具有主动性、自我决策和自动执行的实体,一定会成为AGI的发展方向。甚至在十年前,他就注册了aiit.com这样的四字域名,用于以后的智体产品研发与推广。
感谢我的同事董炜,他一如既往、一丝不苟地安排培训工作,使我在培训过程中将所有精力都用到了课件的准备和与学员的交流上。学员的学习反馈和他们对课程的建议,对本书中的Agent技术选型起到关键作用。
感谢我的同事杨乐,他很早就开始研究Agent开发,得知我打算写一本该领域的图书时,他给了我很多建议,并协助我采购了双推理卡设备。具备一定算力的机器,是Agent开发中最重要的基础设施支持。
本书中涉及的Agent应用与开发框架以及各种大语言模型,都是开源项目,而且很大一部分使用的是极其宽松的MIT授权方式。作为开源社区的负责人和开源的受益者,本书的示例源码也全部开源。感谢开源!
高强文
[1]该书已由机械工业出版社出版,书号为978-7-111-76234-8。—编辑注