在大语言模型的浪潮如火如荼之际,有一个概念也被频繁提到,那就是AI Agent。大家或多或少都对AI Agent这个词有所耳闻,但不一定有一个非常清晰的认知,比如AI Agent的具体定义究竟是什么?它和LLM的关系是什么?它能帮我们解决什么问题?AI Agent的技术难点和发展现状怎么样?本文将会逐一解答这些问题,最后也会给出一个AI Agent的具体设计例子:如何设计一个拥有AI Agent能力的QQ机器人。祝这趟AI Agent探索之旅愉快~
作者:sophiasong@QQ机器人
随着大模型的兴起,AI Agent被认为是大模型最重要的落地方向之一,无论是在学术界还是在工业界,对AI Agent的各种研究和实践一直热度很高。本文主要从 AI Agent的研究背景、学术界对AI Agent的探索、工业界对AI Agent的探索、基于AI Agent的QQ机器人设计构思这几个角度展开,聊聊AI Agent的一些调研结果。我们先来看下AI Agent的发展历史。
AI Agent(智能体)的发展史是一个从哲学思想启蒙到现代人工智能实体落地的漫长过程,大致可以分为以下几个阶段:
1. 哲学启蒙与概念化阶段(古希腊 - 20世纪中叶)
特点: 这一阶段见证了哲学家们对智能机器的早期设想和理论探索。 案例: 哲学家们如赫拉克利特斯、庄子、亚里士多德和丹尼斯·狄德罗等,对思维、意识和知识表示进行了深入思考,为AI的理论基础埋下了种子。莱布尼兹的“通用计算机”概念和对形式逻辑的贡献对计算机科学和AI产生了影响。图灵也在1950年提出了图灵测试,成为判断机器智能的重要标准,对AI的发展产生了深远影响。
2. 早期探索与规则基础阶段(1950s-1970s)
特点: 这个时期的特点是基于规则的系统,旨在模拟人类的逻辑和决策过程。 案例: 约瑟夫·魏森鲍姆开发的ELIZA聊天机器人是这一时期的代表作,它使用模式匹配技术来模拟心理治疗师的角色。此外,Newell和Simon的"Logic Theorist"和"General Problem Solver"也是重要的早期AI项目。
3. 知识系统与专家系统阶段(1980s-1990s)
特点: 这一阶段的重点是利用专业知识库来辅助决策,模拟专家的思维过程。 案例: MYCIN是一个著名的医学诊断系统,它利用专家知识来诊断感染并推荐治疗方案。DENDRAL是一个化学领域的专家系统,用于推断分子结构。此外,CLIPS和PROLOG等工具和语言也促进了专家系统的发展。
4. 机器学习与数据挖掘阶段(1990s-2000s)
特点: 机器学习的出现使得AI系统能够从数据中自动学习模式和规律,而无需明确的规则,从而提高其泛化能力。 案例: 用于邮件过滤的朴素贝叶斯分类器是一个典型的机器学习应用。推荐系统,如Amazon和Netflix的推荐引擎,利用协同过滤等技术为用户提供个性化推荐。
5. 互联网规模的AI与大数据阶段(2000s-2010s)
特点: 随着互联网的普及和大数据时代的到来,AI开始处理海量数据,并应用于各种互联网服务中,同时云计算和分布式系统等技术的发展为此提供了支持。 案例: IBM Watson是一个著名的问答系统,它在Jeopardy!比赛中战胜了人类冠军。Google的搜索引擎算法优化利用了机器学习技术,PageRank算法基于链接分析为互联网搜索带来了重大影响。Amazon的推荐系统也是一个典型的大数据AI应用。
6. 深度学习与神经网络阶段(2010s-至今)
特点: 深度学习技术,特别是深度神经网络,在处理复杂数据(如图像和语音)方面显示出强大的能力。 案例: Google DeepMind的AlphaGo战胜围棋世界冠军李世石,展示了深度学习在复杂决策问题中的巨大潜力。同时,深度神经网络技术在图像识别、语音识别和自然语言处理等领域取得了突破性进展,如ImageNet竞赛中的AlexNet和VGGNet等。
7. 强化学习与自主决策阶段(2010s-至今)
特点: 强化学习的发展使得AI系统能够通过与环境交互来学习最优策略,从而实现自主决策。 案例: DeepMind的AlphaGo Zero和AlphaZero通过强化学习自我对弈,不仅在围棋领域取得了突破,还在国际象棋和将棋等棋类游戏中展示了强大实力。OpenAI Five在DOTA 2游戏中的成功也证明了强化学习在多智能体系统中的应用前景。
8. 基于LLM的AI Agent阶段(2020s至今)
特点: 大语言模型的出现赋予了AI系统更强的语言理解和生成能力,推动了AI Agent的智能化。 案例:OpenAI的GPT系列模型是一种基于Transformer的生成式大语言模型,能够生成连贯的文章和故事,对自然语言处理领域产生了重大影响。GitHub Copilot利用大语言模型为程序员提供代码自动补全和编程建议。DALL·E能够根据文本描述生成新颖的图像。
AI Agent一个很经典的案例就是AI斯坦福小镇。
AI斯坦福小镇是一个经典的基于LLM的AI Agent案例,斯坦福和谷歌的研究员构建了一个名为Smallville 的虚拟小镇,把25个基于GPT的AI角色放入虚拟小镇,让它们自己生活。他们有工作,会八卦,能组织社交,结交新朋友,甚至举办情人节派对,每个小镇居民都有独特的个性和背景故事。为了让小镇居民更加真实,Smallville小镇还设置了许多公共场景,包括咖啡馆、酒吧、公园、学校、宿舍、房屋和商店等。小镇居民的行为有多像人?举例来说如果他们看到早餐着火了,会走过去关掉炉子;如果看到浴室有人,会在外面等待;如果遇到一个想交谈的个体,会停下来聊天等等。
其中智能体的主要架构如下:
智能体感知他们的环境,所有感知都保存在智能体经验的综合记录中,称为记忆流。根据他们的感知,该架构检索相关记忆并使用这些检索到的动作来确定动作。这些检索到的记忆还用于形成长期计划并创建更高级别的反思,这两者都被输入到记忆流中以供将来使用。
AI Agent可以解决下面两个问题:
关于AI Agent理论方面的定义和架构有许多不同的描述,这里结合一些综述性文章,给出目前接受度比较广的几种定义和架构。
目前一种比较主流的定义来自OpenAI人工智能应用研究负责人Lilian Weng给出的一个AI Agent组成公式:
这里给出了Agent组成的四要素:
Agent = LLM + 记忆能力 + 规划能力 + 工具使用能力
Lilian Weng在她的技术博客《LLM Powered Autonomous Agents》中给出了对自主智能体(Autonomous Agent)的定义和描述,并给出了如下的智能体架构图:
可以看出这里主要包含三个模块:记忆(Memory)、规划(Planning)和工具(Tools),Action是最后的行为体现。
记忆能力
规划能力
工具使用能力
复旦大学自然语言处理团队(FudanNLP)在论文《The Rise and Potential of Large Language Model Based Agents: A Survey》给出了LLM-based Agent的概念框架图:
可以看到Agent架构图里包含三个组成部分:大脑(Brain)、感知(Perception)和行动(Action)。这个架构是比较“类人”的,大脑模块作为控制器,承担记忆、思考、决策等基本任务。感知模块感知并处理来自外部环境的多模态信息,动作模块利用工具进行执行并影响周围环境。举一个例子来说明工作流程:当人类询问是否会下雨时,感知模块将指令转换为LLM可以理解的表示。然后大脑模块开始根据当前天气和互联网上的天气报告进行推理。最后,动作模块做出响应并将雨伞递给人类。通过重复上述过程,智能体可以不断获得反馈并与环境交互。对人类而言。通过重复上述过程,代理可以不断地获得反馈并与环境交互。
关于这几个模块各自包括哪些组成部分,可以具体参考论文,比如大脑的组成如下图所示,其中每个部分的作用都在论文里有详细描述。
中国人民大学高瓴人工智能学院也发表了一篇关于自主代理的文章综述《A Survey on Large Language Model based Autonomous Agents》,详细介绍了Agent概念,目前的Agent的进展等,以及各种目前的技术架构等。
作者调研了2021年1月至2023年8月发表的论文,下图是一份包含不同类别的Agent精选列表:
不同颜色代表不同类别的智能体,可以看出在各种类别的智能体上,都有一些比较出圈的产品。
同时作者给出了基于LLM的智能体架构图:
可以看到Memory、Planning、Action这几个部分都非常眼熟,此外这里的Profile配置模块主要负责定义和表示智能体的属性和特征,比如扮演的角色是编码员、教师、领域专家等。除了角色定义、属性配置外,配置模块还负责构造输入prompts,这些提示将被用来引导LLM生成特定类型的响应和行为。另外配置模块还可以用于实现智能体的个性化,这意味着智能体可以根据用户的特定需求和偏好来定制其行为和交互风格。
AI Agent的技术难点主要包括以下几个方面:
可以看出,前3个属于Agent = LLM + 记忆能力 + 规划能力 + 工具使用能力
里的后三个,后面的多模态理解、安全可靠以及伦理隐私属于LLM应该解决的范畴。有了技术难点后,那么工业界也诞生了一些对应的解决方案,比如开发框架LangChain串通了整个AI Agent的各环节,比如Milvus这类的向量数据库为记忆能力提供了支持等等,等都为AI Agent在工程实现方面提供了支持。这里从一些常用且关键的技术出发,简单谈谈AI Agent都涉及到了哪些具体的技术。
LLM是AI Agent的基础,提供了强大的自然语言理解和生成能力。通过预训练和微调,这些模型能够理解和回应各种复杂的语言任务。下面列出了目前国内外比较知名的大语言模型:
记忆模块是AI Agent的核心组成部分,它允许代理存储和利用过去的交互信息和知识。记忆可以是短期的上下文记忆,也可以是长期的外部知识库,如数据库或知识图谱。
短期记忆通常是利用当前任务在执行过程中产生信息,可能使用会话状态管理、注意力机制、循环神经网络(RNN)、长短期记忆网络(LSTM)、缓存机制等实现。长期记忆是长时间保留的信息,一般利用通用数据库、向量数据库或知识图谱等技术,实现信息的持久化存储,便于后续检索和使用。
在记忆这个模块里,通常会提到一种信息检索方法:检索增强生成(RAG),检索过程可以参考下面这张图:
简单说就是把用户query转为向量,再根据query的向量从向量数据库里检索出最相关的向量,作为补充知识结合用户最初的query一起喂给大模型。大型语言模型结合检索到的上下文信息,生成准确且相关的回答。
RAG技术的核心优势在于其能够:
提高精确度:通过检索相关信息,RAG减少了生成虚假或误导性信息的风险。 增强时效性:确保提供的回答基于最新信息,避免了过时的内容。 确保权威性:优先从权威和可靠的数据源中检索信息,增强了回答的可信度。 避免理解偏差:通过精确的检索,减少了因术语混淆导致的误解。
尽管基于嵌入的向量搜索技术如Faiss自2019年已存在,但RAG推动了向量搜索技术的进一步发展。新兴的开源搜索索引引擎和向量数据库公司,如chroma、weaviate.io和pinecone等,最近正在积极开发并优化他们的产品,以确保他们的向量数据库解决方案能够满足大模型和AI Agent不断增长的需求。
关于RAG里如何检索最相关的向量也有一些有趣的算法,目前最流行方法是使用近似最近邻(Approximate Nearest Neighbor, ANN)搜索算法。其中HNSW(Hierarchical Navigable Small World)是一种基于图的近似最近邻搜索算法。它通过构建一个分层的图形结构,实现高效的相似度搜索。
HNSW算法的主要思想是通过构建一个分层的图形结构,从上到下进行导航式检索,上面图层的点稀疏,点和点之间距离大,下面图层的点逐渐密集,点和点之间的距离变小,有种先确定大方向再精细化找方向的感觉。在搜索过程中,算法从图的顶层开始,逐层向下搜索,直到找到目标数据点的近似最近邻。通过这种分层搜索策略,HNSW能够在较短的时间内找到与目标向量相似的向量。NMSLIB、FAISS、Milvus等向量数据库或相似度搜索库都支持了该算法。
AI Agent的规划模块是实现目标导向任务的核心,涉及以下关键技术和方法:
任务规划框架:利用DialogueGPT、AgentFormer等框架进行复杂任务的分解与规划。 强化学习库:通过OpenAI Gym、Ray RLlib等库训练AI Agent的决策与规划技能,以适应多样化环境。 思维链技术:应用Chain of Thoughts (CoT)、Tree of Thoughts (ToT)等技术提升AI Agent的逐步推理与规划能力。 自动规划系统:采用基于状态空间的规划(如PDDL)和基于逻辑的规划(如SAT规划)解决复杂任务。 决策支持系统:提供决策辅助,帮助AI Agent在复杂情况下做出选择。 多目标优化:使AI Agent能够综合考虑并优化多个目标。 情境感知:增强AI Agent对环境的感知能力,以制定更合理的规划。 模拟与预测:通过模拟可能的场景和预测结果来优化决策过程。
AI Agent的工具使用模块让其能够利用现有工具和API高效完成任务:
开发框架:使用LangChain和LlamaIndex等框架集成模型管理、数据连接、记忆、规划与执行等功能。 网络接口:调用云服务API等,以利用外部服务和数据。 自动化工具:运用Selenium、Puppeteer等工具进行Web自动化操作。 AI Agent开源框架:如AutoGPT、AutoGen、Langfuse、ChatDev、GPT-Engineer、BabyAGI等开源项目也是一些AI Agent更加具体的工程实现,提供工程实现的开源资源,便于开发者进行定制和扩展。
除此之外,像是数值计算、文件读取、数据库访问等常见工具能力,AI Agent都应该拥有。
多模态AI Agent能够处理和理解多种类型的数据,如文本、图像、音频、视频等,还包括目前可能还没做的那么完善的触觉、嗅觉等等。这种能力使AI Agent能够更好地与人类和环境互动,并提供更丰富的用户体验。
涉及到的技术比如有自然语言处理、计算机视觉、语音识别和生成、情感分析、上下文感知、动作识别与预测、生理信号处理、环境感知技术、跨模态融合技术、增强现实和虚拟现实技术等。
这里以OpenAI和Google作为例子,看一下国外科技大厂在AI Agent上都有哪些方面的研究。
OpenAI的Agent产品
Google的Agent产品
以下是中国主要科技公司在AI Agent领域的一些关键产品和研究方向的概览。
随着大模型技术的兴起,国内AI创业公司在AI Agent领域推出了多样的产品。以下是一些知名AI独角兽公司的产品概览:
其实各公司和各行各业都有很多AI Agent的产品在持续发展中,不论具体的产品形态是什么,技术上的重点最终还是落到如何把记忆能力、规划能力、行动能力这几项打磨的更精细完善和安全可靠,包括交互上多模态如何做的体验更好等。
知道了AI Agent是什么,那么是否可以自己实践一下开发一个AI Agent呢?现在市面上或许有一些比较成熟的平台,可以帮助我们快速开发一个有实用功能的智能体。正好我留意到最近QQ机器人平台正在做能力的全面升级,结合我自己也是QQ多年的老用户,之前也有使用小冰机器人的经验,于是从QQ机器人这个角度入手,去开发一个AI Agent或许是个不错的选择。
QQ机器人开放平台是提供QQ机器人开放接口的官方平台,基于这套开放接口,用户可以开发实现功能丰富的QQ机器人。QQ机器人业务在QQ内部已经有比较悠久的历史,借着近期AI蓬勃发展的契机,QQ机器人也做了新老架构的融合,全面升级了各种能力,包括完成了私聊、群聊、频道三场景的融合,支持webhook提升机器人接入体验,支持丰富的AI能力插件式接入等,并且对上下行消息都接入了安全大模型打击,从标准化、开放化和安全性等维度来看都有着不错的体验,以及平台本身还在持续发展和优化。
下图就是基于QQ机器人平台开发的一个具有AI Agent能力的智能体架构图。
对用户而言,评价一个机器人能力如何,关键点有两个:一个是机器人的功能实现能力,能不能充分理解用户的诉求并给出高质量的回复(文本回复+行为回复);另一个是千人千面能力,是否针对用户的特点做了个性化回复。前者依赖于大模型+外挂的记忆能力+规划能力+执行能力,后者主要依赖于用户画像质量的准确和能否在历史对话里检索出最有用的信息作为辅助信息提供给大模型。记忆指导规划,短期规划处理用户所需的功能性操作,长期规划主动计划个性化互动策略,同时行为方面扩充类似funcation call的能力以实现更丰富的功能。这里能执行的function越多,对于各种复杂场景能给出的应对选择就更多,用户在体验上也就会更自然和智能。最后将执行后用户的反馈又持续注入记忆模块里,持续改进与提升规划能力。
同时,QQ本身又是一个巨大的资源池,其中的各种关系链和各类内容也提供了人与机器人之间很多种互动思路,比如最近比较火的鹅探长机器人就是借助了QQ群这块土壤证实了群玩法和群扩散的可行性,这种玩法就是一种典型的借助关系链的玩法。在内容方面,像是QQ的官方AI助手babyQ,也能做到通过自然语言对话了解用户的兴趣从而分发各种用户感兴趣的频道、机器人和真人pymk,这些都是在QQ这个平台上搭建智能体特有的优势。
有人认为AI Agent是AGI的实现路径,因为NLP到AGI的发展路线大概分为五级:
目前LLM时代已经做到了2,有了互联网规模的文本输入和输出,同时3和4也正在逐步发展中。关于4,行动能力本来就是大家对AI Agent的期望,其实具身实体机器人完全可以认为是AI Agent的一种,AI Agent的定义应该是更广的。可以看出AI Agent的发展与NLP到AGI的发展路线是基本一致的,3强调多模态输入,4强调多模态输出(输出可以是任何,只要可以与周围环境产生互动),3和4代表的多模态交互是AI Agent存在的重要原因。5里的社会属性就是一个更AGI的标准了,一方面每个AI Agent可以有自己的社会身份,另外多个AI Agent可以协同工作完成更复杂的任务,像个小社会群体一样有一些社会行为,这也可能会对人类社会结构和文化产生影响。
有人可能会关心AI Agent是否最终能像人类一样思考和行动,其实这里基本等价于问AGI是否能实现。我觉得这里可能可以从两个角度分析这个问题,一个是什么是真正的理解力(有没有可能实现),另一个是AGI的实现方向是什么(如何实现)。
关注AI是否有真正的理解力,这个问题也是很多人感兴趣与质疑的。为什么我们认为人类就是有真正理解力的,但是AI就不会拥有呢?哪怕将来它在各方面能对外表现得和大多数人类一样好,也还是会让人产生怀疑它是不是真的会思考。也许是因为潜意识里把有生命当成了能真正思考的前提,愿意相信宇宙和自然经过数百亿年演化诞生出的生命才是具有智能的,而人类自身作为造物主造出来的机器还处于一个很初级的阶段。
在《Do large language models understand us?》这篇文章里有一些很有趣的观点:
具体来说,从任何可证伪的意义上,统计的量变的确会引起理解的质变。此外,大部分我们所认为的智能本质上是对话性的,因此是社会性的, 它需要心理理论。由于我们只能通过交互来理解其他人的内部状态,因此人工智能何时变成人这个问题永远不会有客观的答案。
关于真正的理解:
目前仍不清楚我们如何区分“真正的理解”和“虚假的理解”。在我们能够做出这样的区分之前,我们可能应该抛开“虚假理解”的想法。
如果人类可以明确定义出什么才算是真正的理解,并给出可操作的检验方法,那么我们就可以来判断AI是否真的具有逻辑思考能力,毕竟有标准是做判断的前提。但目前为止,我们无法拿出来一个检测标准,人类就一定都能做到,AI就一定都做不到。所以什么才是有真正的思考能力,从某种程度上看,是无法被证实的。“是否具有智能”目前更多是依靠输入和输出做判断,就像我们判断一个人的智能程度很多时候也是基于对话,这种判断更像是一个黑盒。
也许AI给的答案看起来很完美像是经过了逻辑思考,但给黑盒内部的运算过程真的是具有逻辑性的吗?或者说这种逻辑性是否必须和人脑的逻辑性类似,才能被称为是逻辑思考能力。也许未来AI可以对于什么是真正的理解和人类对于什么是真正的理解这件事本身有不一样的看法,毕竟“真正的理解”这种说法目前其实是非常人类角度的。或许随着AI的发展,这个问题的答案也变得不再重要,只要AI能在它擅长的领域表现得很智能,也许就够了。
之前Ilya Sutskever有篇访谈,主持人问Ilya说transformer是否是实现AGI最好的架构,是否还需要其他架构,因为像是人脑就有专门的区域负责处理专门的问题,transformer是否足够。Ilya说transformer是足够的,这其实是一个效率和成本的问题,你可以设计出效率更高的架构,但是付出的努力和成本如何。他提到我们认为人脑不同区域就是处理不同事情,它是专门的,其实这件事有点微妙和具有欺骗性。
Ilya举了两个例子,一个是年幼的儿童患有癫痫病例,当时的解决办法就是切掉一半的大脑,但这些孩子最后还是成长为了非常实用的成年人,他们和正常人具有相同的大脑区域,但是以某种方式被压缩到一个大脑半球上,也许会损失一些信息处理效率,但不知何故所有这些大脑区域都会重新排列。
另一个实验是大约30或40年前在雪貂身上完成的,有研究者取下了雪貂的视神经,并连接到它的听觉皮层,他们记录了不同神经元的特点,经过几天观察后,研究者在听觉皮层中发现了神经元,这些神经元与视觉皮层非常类似,也就是说来自眼睛的视觉输入开始映射到大脑的语音处理区域。后面研究者也做了类似的事情,要么眼睛映射到耳朵,要么映射到听觉等,都有类似的发现。
Ilya解释,人和动物的大脑皮层非常均匀,就像AI只需要一个大的统一的架构一样。也就是说,transformer可以做出惊人的事情,其他架构也可以做出更好的改进,其实只是效率不同。就像半球的大脑也能重新排列和承载所有区域,雪貂的听觉皮层也能重新生长出视觉神经元一样,只要架构足够大和统一,有区别的只是效率和成本。
所以,AI Agent未来还是有很大的发展空间,首先目前不能证实AI无法拥有类似人类甚至更高的智慧,另外在实现路径上只要有大且统一的架构就能保证方向是可行的。除此之外,也有更多学术界的研究者从理论角度对AI Agent的架构和组成给了具体分析和拆解,工业界也有很多对应的技术、框架和产品在不断推出,同时也有很多开发者在做各种实践与尝试。期待未来AI Agent可以有更多更实用或者更惊艳的产品,给人类的生活,给世界的可能性,增加更多的色彩。
参考资料