AI Agent代理技术栈的创新实践-2024最新洞察!从0到1构建自己的AI Agent智能代理,最强选型,看这一篇就够了!

文摘   2024-11-20 21:58   浙江  


点击箭头处“蓝色字”,关注更多及时AI资讯哦!!



近期硅谷科技评论的数据库svtr.ai显示,全球有超过50家有潜力的初创企业在AI代理领域获得了知名投资机构的支持。其中,Letta是近期特别引人注目的一家AI代理框架公司。

Letta,这家源自加州大学伯克利分校Sky Computing Lab的人工智能初创公司,基于备受欢迎的开源项目MemGPT,专注于为大型语言模型(LLM)打造一个上下文内存管理平台。这个平台的使命是解决LLM缺乏持久记忆的问题,让模型能够记住用户数据和历史信息,从而提升AI的记忆和推理能力。Letta的平台允许开发者自由选择他们偏好的LLM,并深入理解LLM及其代理的工作原理。这使得开发者能够构建各种有状态的LLM应用程序,包括个性化聊天机器人、与外部数据源连接的代理、自定义工具连接的代理,以及自动化AI工作流等。

最近,Letta发布了他们对2024年“代理栈”(Agent Stack)的最新理解,将AI代理的技术堆栈分为三个核心层次:代理托管/服务、代理框架,以及LLM模型和存储。

Letta认为,尽管市场上已经有许多关于代理栈的分类和地图,但这些往往与开发者的实际使用情况不符。在过去几个月里,代理软件生态系统在内存管理、工具集成、安全执行和部署方面取得了显著的进步。基于他们在开源AI领域的一年工作经验和超过七年的AI研究背景,Letta决定分享他们对“代理栈”的独到见解。




从大语言模型(LLMs)到LLM代理(LLM Agents)

在2022年和2023年,LLM框架与SDK崛起,如LangChain(2022年10月发布)和LlamaIndex(2022年11月发布)。与此同时,也有多种“标准”平台被广泛采用,用于通过API消费LLM或进行自部署的LLM推理,例如vLLM和Ollama。




进入2024年,AI“代理”(Agents)以及更广义上的复合系统(Compound Systems)成为了行业关注的核心。这种转变令人瞩目。尽管“代理”一词在人工智能领域已有数十年的历史(尤其是在强化学习领域),但在后ChatGPT时代,它的定义变得更加宽泛。如今,“代理”通常指大语言模型(LLMs)在自主环境中执行任务,具体表现为生成动作(如工具调用)并结合工具的使用进行自动化运行。

从LLMs向代理系统的转变,意味着需要整合工具使用、自主执行和记忆管理这三大关键能力。实现这一转变的需求催生了全新的代理技术栈。AI技术正在从单一的语言生成能力,向更复杂、更动态、更智能的任务执行框架迈进,为开发者和用户带来了前所未有的可能性。

接下来我们就围绕Letta分享的AI代理技术栈,对齐关键组成进行逐一讲解:

垂直代理(Vertical Agents)




AI代理中的垂直代理(Vertical Agents)指专门为特定行业或领域设计的AI代理,它们能够处理特定于该行业的工作流程和任务包含一些专注于特定领域或任务的AI代理公司,比如DecagonReplit等。这些代理通常提供针对性解决方案。

Decagon: 一个专注于网络安全领域的AI代理,它利用深度学习技术和大数据分析来检测网络威胁,并采取相应措施防止攻击发生。

SIERRA: 一个生物医学研究领域的AI代理,它通过模拟蛋白质折叠和其他生物学过程来预测药物效果及副作用,从而加快新药的研发进程。

replit: 一个在线编程环境,它提供了一个直观易用的代码编辑器和即时编译功能,使得程序员能够在浏览器中编写和调试代码变得十分方便快捷。

perplexity: 一个自然语言处理领域的AI代理,自然语言搜索引擎,它擅长理解人类语言背后的逻辑关系,并据此做出准确的回答或建议。

Harvey: 一个医疗保健行业的AI代理,它可以帮助医生诊断疾病、制定治疗方案以及管理患者健康状况等方面发挥重要作用。

MultiOn: 一个多任务处理领域的AI代理,它能够在同一时间内高效完成多项任务而不降低工作效率。

Cognition: 一个人机交互领域的AI代理,它通过模仿人类的认知方式来进行沟通交流,从而改善用户体验感。

FACTORY: 一个制造业领域的AI代理,它负责监督生产流程、质量控制以及设备维护等工作,确保工厂运作顺畅有序。

All Hands: 一个人力资源管理领域的AI代理,它协助企业招聘合适人才、培训员工技能以及管理员工福利待遇等相关事务。

Dosu: 一个能源管理领域的AI代理,它通过智能化调度电力供应和消耗情况,达到节能减排的目的。

Lindy: 一个金融投资领域的AI代理,它运用量化分析方法对股票市场走势进行预测,辅助投资者作出明智的投资决策。

11x: 一个体育竞技领域的AI代理,它通过对运动员表现数据的深入挖掘,提出个性化的训练计划和战术安排建议。

代理托管与服务(Agent Hosting & Serving)




AI代理托管与服务(Agent Hosting & Serving)是指提供平台和API用于托管和运行AI代理的一系列服务。这些服务帮助开发者更方便地部署、管理和扩展AI模型,使得AI代理能够在各种应用场景中发挥作用。

AI代理托管与服务提供平台和API,使得开发者可以轻松地部署和管理AI模型。例如,Letta 和 Amazon Bedrock Agents 就是提供此类服务的平台,它们允许开发者将AI代理集成到自己的应用中,并处理与托管相关的技术细节。这些服务通常提供工具和接口,简化AI代理的部署和管理过程。开发者可以利用这些服务快速启动AI代理,而无需深入了解底层基础设施的复杂性。

AI代理托管与服务支持不同规模的部署,从小型项目到大型企业级应用。托管服务还关注AI代理的安全性和合规性,确保它们符合行业标准和法规要求。这包括数据保护、隐私合规和安全通信等方面。通常可以与其他技术栈和平台集成,如自然语言处理(NLP)、机器学习、知识图谱和计算机视觉等,以提供全面的AI解决方案。

目前,大多数代理框架的设计局限于Python脚本或Jupyter Notebook环境,代理在这些环境中运行,但无法超越其所在的开发上下文。然而,随着代理技术的不断发展,代理服务化(Agent-as-a-Service)的未来趋势愈发明确:将代理部署到本地或云端基础设施,通过REST API提供访问服务。

图中展示了一系列与代理托管与服务(Agent Hosting & Serving)相关的工具或服务,以下是这些工具的简要介绍:

Letta:一个用于构建和部署智能代理的平台。它提供了一整套工具和服务,使开发者能够快速创建、测试和上线各种类型的代理应用程序。

LangGraph:LangGraph 是一个专注于自然语言处理(NLP)的工具包。它提供了丰富的函数库和接口,帮助开发者实现文本分析、情感识别以及其他NLP相关任务。

Assistants API:Assistants API 是一项由谷歌提供的服务,允许开发者集成Google Assistant的功能到自己的产品中。通过该API,开发者可以让用户通过语音命令与其应用程序互动。

Agents API:Agents API 是另一个由谷歌推出的API,专门用于创建和管理虚拟助手(agent)。开发者可以通过此API构建自定义的对话体验,满足特定业务需求。

Amazon Bedrock:Amazon Bedrock 是亚马逊云服务的一部分,提供了一系列基础设施服务,包括计算、存储、数据库等等。这对于希望在云端托管和运行代理程序的开发者来说非常有用。

LiveKit:LiveKit 是一个实时通信SDK,主要用于构建音视频通话、屏幕共享等实时交互功能。它特别适合用来搭建需要即时通讯能力的代理应用。

类似于OpenAI的ChatCompletion API成为LLM服务的行业标准,预计未来会出现一个统一的Agents API标准。

可观测性(Observability)




AI Agent中的可观测性(Observability)是指在AI代理系统中,对代理的行为、性能和状态进行监控和分析的能力,图中的工具皆可用于监控和分析AI代理的性能和行为,比如LangSmith、Arize等。这些工具确保系统的可靠性和高效性。以下是关于图中这些工具的简要介绍:

LangSmith: LangSmith 是一个开源平台,用于管理和监控机器学习模型的生命周期。它提供了模型版本控制、实验跟踪以及模型评估等功能,有助于提升整个 ML 工作流的透明度和可追溯性。

arize:arize 是一家专注于 AI 观测性的公司,提供了一套全面的工具集,用于监测和优化机器学习模型的表现。它可以帮助用户检测模型漂移、异常行为以及性能下降等问题,从而确保模型始终处于最佳运行状态。

weave:一款用于数据科学和机器学习的工作区管理工具。它允许用户在一个统一的平台上执行数据探索、建模任务以及结果可视化等工作。通过 weave,研究人员能够轻松地追踪和重现他们的工作流程,同时还可以与其他团队成员共享成果。

Langfuse: Langfuse是一个开源的LLMOps(大型语言模型运维)平台,专为由大型语言模型(LLM)驱动的应用而设计,提供跟踪功能,捕捉产品的完整上下文,包括外部API或工具调用、上下文、提示等,并监控关键性能指标,如响应时间、错误率和吞吐量,它还可以收集用户反馈,以改进应用程序的性能和用户体验。

AgentOps.ai:一家致力于打造下一代 AI 基础设施的企业。他们的目标是建立一套完整的生态系统,涵盖从数据收集、模型训练直到最终部署的所有环节。通过提供强大的观测性和管理功能,AgentOps.ai 力求简化复杂的人工智能项目实施过程。

braintrust:一个去中心化的身份验证平台,旨在保护用户的隐私权和个人信息安全。虽然它主要应用于区块链领域,但在观测性范畴内,braintrust 可能是指一种用于监视和记录用户活动的日志系统,以确保所有操作都得到适当授权并且符合法规要求。

综上所述,这些工具和服务覆盖了不同方面的观测性需求,无论是针对机器学习模型的行为监控,还是对于整个研发流程的透明化管理,都能找到相应的解决方案。

代理框架(Agent Frameworks)




AI Agent代理框架是一种软件架构,它旨在支持开发、集成和部署能够自主决策并执行任务的人工智能代理(AI Agents)。比如AutoGen、LlamaIndex等框架都可以极大的简化创建和训练AI模型的过程。AI Agent代理框架通常会提供一系列工具和服务,以便于开发者构建高效、可靠的AI应用。

代理框架是AI代理栈的核心,负责协调LLM调用并管理代理的状态。不同框架在状态管理、上下文窗口的构建、多代理通信、记忆处理,以及对开放模型的支持等方面有各自的设计特点。下面是途中所涉及的框架的核心能力&特点对比:

AI Agent代理框架通常包含以下代理框架是构建和管理AI代理的核心组件,它们提供了一套完整的工具和接口,用于协调LLM(大型语言模型)的调用、管理代理状态、处理上下文信息、实现多代理通信以及记忆管理等。以下是对代理框架的进一步扩写和详细说明:

状态管理(State Management):状态序列化(Serialization):代理框架通常支持将代理的状态(如对话历史、代理记忆、执行阶段、需要保留消息/事件的历史记录)序列化为文件(JSON、字节流等)来支持上下文的持久性,以便以便在未来的任务中参考。Letta框架使用数据库(如消息表、代理状态表、记忆块表)来持久化状态,无需显式序列化,这种方法使得状态查询更加便捷。

上下文窗口的构建(Context Window Construction):每次调用LLM时,框架会将代理的状态“编译”进上下文窗口,包括指令、消息缓冲区等。这其中透明性是一个重要的考虑因素,表示框架是否允许开发者清晰了解哪些数据被传入上下文窗口,让开发者更容易优化代理的行为和性能。

多代理通信(Cross-Agent Communication):不同框架支持多代理协作的方式各有不同。例如,Llama Index通过消息队列实现代理间通信,而CrewAI和AutoGen使用显式的抽象器进行多代理协作。Letta和LangGraph支持代理之间直接调用,既可以集中式也可以分布式地进行代理通信。

记忆处理(Memory Management):LLM的上下文窗口限制对记忆管理提出了要求,框架通常采用不同的技术应对。基于RAG的记忆,CrewAI和AutoGen依赖检索增强生成(RAG)技术,通过从外部数据源检索相关信息扩展上下文。phidata和Letta,采用了更复杂的高级记忆法,如MemGPT的自编辑记忆和递归摘要。Letta内置了一套强大的记忆管理工具,支持文本搜索、记忆存储和编辑上下文窗口等功能。

对开源模型的支持(Support for Open-Source Models):开源模型需要额外的处理,比如在输出格式不符合要求时重新采样,或者通过提示词对输出格式进行微调。但并非所有框架都支持开放模型,一些框架专注于主流模型提供商的集成。

记忆(Memory)




技术用于存储和检索AI代理生成的信息,比如MemGPT、LangMem等。类似于人类记忆,帮助代理保留上下文信息。

MemGPT:MemGPT是一个系统,它通过虚拟上下文管理技术,允许大型语言模型(LLMs)处理超出其原生上下文窗口限制的更长上下文。它通过分层内存系统和功能,使LLM能够管理自己的内存,类似于操作系统中的虚拟内存管理。MemGPT的设计灵感来自于传统操作系统,通过在快速和慢速存储介质之间分页数据,创建更大内存空间的假象。它能够根据当前上下文和用户交互的需求,动态地决定何时从外部上下文检索数据,何时将信息推送出去,从而提高模型在扩展交互中的一致性。

zep:zep提供了一个名为“Memory”的高级API,用于从过去的对话中检索相关事实,以确保AI助手理解对话的上下文。它能够自动从对话中提取记忆,并在新消息添加到会话时实时更新。开发者可以使用zep的工具来确定事实的相关性,并调整如何提取事实。zep还提供了一个简单的接口来检索最近的对话,以便将其包含在提示中。

LangMem:LangMem是一个Python SDK,它为你的聊天机器人提供长期记忆,使其能够个性化每个用户和环境的交互。它自动从后台对话中提取记忆,并允许开发者配置不同的记忆类型,如用户状态、语义记忆和仅附加状态。LangMem将对话组织成线程,每个线程包含一系列消息和可选的用户信息。开发者可以使用LangMem的API来保存对话、检索相关记忆,并根据需要触发记忆的形成。

mem0:一个开源的大语言模型记忆增强工具,它允许AI拥有长期、适应性强的记忆。通过自适应记忆系统,AI能够实现跨应用记住用户的偏好和交互,提供连贯且不断进化的响应。mem0的关键特性包括多层次记忆保留、自适应个性化、开发者友好的API以及跨平台一致性。它还提供集中式记忆管理,简化了开发过程,使开发者能够轻松构建具有高级个性化功能的AI应用。

工具库(Tool Libraries)




AI代理与传统AI聊天机器人的主要区别之一在于代理可以调用“工具”(或称“函数”)。这种能力使代理能够执行超出文本生成范围的任务,从而显著提升其功能性和适应性。代理工具执行不是由LLM提供商本身完成的,LLM仅根据分析后的结果选择要调用的工具以及要提供的参数。

Tools可以帮助安全地执行由LLM生成的动作(如调用工具、API请求等),接着返回执行结果并将其融入到后续任务中,确保可靠性和高效性。

OpenAI定义了一种JSON模式,成为代理调用工具的通用接口标准。由于这一标准化,工具可以在不同框架中实现互操作性。例如,Letta代理可以调用LangChain、CrewAI或Composio提供的工具。

跨平台工具生态推动了通用工具生态的形成,比如一些常用的开发工具库:

Composio:一个通用工具库,管理授权与工具调用,广泛应用于各种场景。

Browserbase:专注于网页浏览的工具,用于爬取和解析网页内容。


exa:提供网页搜索功能的专用工具。

沙盒环境(Sandboxes)




AI Agent的sandbox是指为AI代理提供一个安全、隔离的环境,用于执行任务和运行代码。这种环境可以保护主系统不受潜在的恶意代码或错误操作的影响。沙盒环境允许AI代理在一个受控的空间内执行文件系统操作、访问互联网或启动终端命令,同时确保这些操作不会对外部环境造成影响。例如,E2B平台就是用于构建AI自主代理的沙盒环境,它允许AI代理访问工具并在安全的环境中执行任务,有助于在安全条件下验证新功能。支持任意工具或工具中的任意参数的AI Agent代理服务必须使用沙箱(例如Modal 、 E2B )来确保安全执行。

E2B是一个开源的基础设施,允许在云端安全隔离的沙盒中运行AI生成的代码。E2B提供了JavaScript SDK和Python SDK来启动和控制沙盒。E2B的典型用例包括AI数据分析或可视化、运行多种语言的AI生成代码、编码代理的游乐场、codegen评估的环境,或运行像Fragments这样的完整AI生成的应用。E2B的沙盒是一个小型隔离的虚拟机,可以非常快速地启动(约150ms),并且可以同时运行多个沙盒。

Modal是一个创业型公司开发的项目,它使用Firecracker作为底层代码执行环境,提供给用户一个安全沙箱的SDK,让用户能够直接通过SDK的方式使用安全沙箱,大幅降低业务的使用成本。

这种沙箱技术对于AI代理来说尤为重要,因为AI代理可能会执行由外部提供或生成的代码,这些代码如果未经安全隔离,可能会对系统安全构成威胁。

模型服务(Model Serving)




AI代理的核心是大语言模型(LLM),为了让代理能够使用这些模型,模型需要通过推理引擎提供服务,通常是通过付费API服务运行。主流模型服务选项包括以下几种类型

基于封闭API的推理服务:这类服务通常由商业公司提供,它们拥有专有的大型语言模型(LLM),并提供API接口供用户访问和使用这些模型。用户通过这些API发送请求并接收模型的推理结果,但无法直接访问或修改模型的权重。这种服务的典型例子是OpenAI提供的API服务,用户可以通过API调用GPT系列模型进行文本生成和其他NLP任务。

开放权重模型的API服务:与封闭API服务不同,开放权重模型的API服务允许用户访问模型的权重,并在一定程度上进行自定义和微调。这些模型通常是开源的,用户可以下载模型权重并在本地或自己的服务器上运行。例如,Mistral AI提供了一些开源的大型语言模型,用户可以通过API调用这些模型。

本地化模型推理服务(Local Model Inference):本地化模型推理服务指的是在用户的本地设备或私有服务器上部署和运行模型的过程。这种服务允许用户在没有互联网连接的情况下使用模型,提高了数据隐私性和安全性。用户可以下载模型并在本地环境中进行推理,例如使用Xinference这样的平台来部署和管理本地模型。这种服务适合对数据隐私有较高要求的场景,或者在网络连接不稳定的环境中使用。

存储(Storage)




存储是状态化代理(stateful agents)的核心构件之一,支持代理的持续状态管理,如对话历史、记忆以及用于检索增强生成(RAG)的外部数据源,数据存储解决方案,用于保存大量数据供AI系统使用。对于代理来说,存储解决方案的选择直接影响其处理复杂任务的能力和效率。主流存储工具包括以下两类:

向量数据库

向量数据库是代理存储的核心,特别适用于存储和检索大规模嵌入数据。以下是一些常见的选择:

Chroma:专为AI应用优化,便于集成。

Weaviate:提供丰富的内置特性,如图谱查询和嵌入存储。

Pinecone:以高性能向量检索为核心,适合生产环境。

Qdrant:开源解决方案,具有强大的定制能力和易用性。

Milvus:开源项目,支持分布式存储和高性能检索。

传统数据库

尽管PostgreSQL是一种传统的关系型数据库,它通过pgvector扩展实现了向量搜索功能,使其在现代AI代理应用中焕发新生:

Neon:无服务器(Serverless)的PostgreSQL版本,支持动态扩展。

Supabase:集成了嵌入存储和向量搜索,适合快速构建代理应用。

对比分析

存储容量与扩展性:大多数现代数据库都支持水平扩展,但在实际应用中,不同产品的扩展方式和成本会有差异。例如,Pinecone和Supabase作为云服务,更容易实现按需扩展;而本地部署的Chroma和Qdrant可能需要更多的运维工作。

查询速度与精度:向量数据库的主要卖点之一就是高速的相似度搜索。在这方面,Qdrant和Chroma的表现较为突出,但具体的查询速度和结果质量还需要根据实际数据集进行测试。

易用性与集成性:各数据库提供的API接口和文档支持程度不一。例如,Supabase以其全面的服务和良好的文档著称,而像Pinecone这样的云服务则通常提供更为简便的集成体验。

价格与成本效益:云服务如Pinecone和Supabase通常采用按用量计费的方式,初始投入较低,但长期使用成本可能较高。而对于开源方案如Chroma和Qdrant,虽然初期免费,但自行搭建和维护的成本不可忽视。


同桌会的你都会





AI时代不掉队!




同桌的AI小纸条
一个专注于将先进的AI人工智能技术融入日常生活的频道。关注让AI为我们所用,探索人工智能领域的无限可能,并征服他们,让AI赋能生活快乐每一天!
 最新文章