Agentic AI系统的长期记忆
AI代理是当前的炒作。我写过关于它们,其他人也讨论它们。总体上,这意味着有很多关于什么是agentic AI系统的困惑?它们与生成AI(Gen AI)或大型语言模型(LLM)代理有什么不同?
在本节中,我们试图通过突出agentic AI系统的功能/非功能需求来澄清这个辩论,关于实现实际的营销用例——如图1所示。
给定用户任务,代理平台的目的是识别能够执行该任务的代理(代理组)。所以我们需要的第一个组件是一个编排层,能够将任务分解为子任务,由编排引擎编排相应代理的执行。
截至今天,我们提示LLM进行任务分解。所以这是与Gen AI的重叠。不幸的是,这也意味着今天的agentic AI受到推理能力的限制大型语言模型(LLM)。
例如,GPT4任务分解提示
生成定制电子邮件活动以在1个月内实现100万美元销售额,可用产品及其性能指标在[url]。连接到CRM系统[集成]获取客户姓名、电子邮件地址和人口统计详情。
在图1中详细说明:(分析产品) — (识别目标受众) — (创建定制电子邮件活动)。
然后它监控执行/环境并自主适应。在这种情况下,代理意识到它不会实现其销售目标,并自主添加任务:(寻找替代产品) — (利用客户数据) — (进行A/B测试)。
还要提到,对于大多数用例,需要与企业系统集成(例如,在这种情况下CRM)。例如,参考Anthropic最近提出的模型上下文协议(MCP)将AI代理连接到外部系统,企业数据驻留在那里。
鉴于此类复杂任务的长期运行性质,内存管理是Agentic AI系统的关键。一旦初始电子邮件活动启动,代理需要监控活动1个月。
这需要任务之间的上下文共享和长时间维持执行上下文。
当前解决方案是使用向量数据库(Vector DB)外部存储代理内存——使数据项按需可访问。在续集中,我们深入探讨
- 如何使用Vector DB管理agentic内存,
- 它们相应的数据质量问题。
然后我们显示向量数据库(虽然足以用于对话内存——Q&A对)对于agentic任务不足,因为它们需要管理额外的内存类型:
- 语义记忆(一般知识),
- 情景记忆(个人经历),和
- 程序记忆(技能和任务程序);
并突出需要替代形式主义(例如,知识图,有限状态机)来有效管理相同。
2、使用向量DB的对话内存管理
向量数据库(DB)专门设计用于存储向量并基于向量相似性处理查询。它们目前是存储和检索对应对话代理的数据(内存)的主要媒介。向量DB基于编码/内存管理对话代理如图2所示。
这涉及选择一个编码器模型,作为单独过程执行离线数据编码,将各种形式的原始数据(如文本、音频和视频)转换为向量。类似的原始对话数据项映射到编码空间中紧密定位的向量。
例如,文本需要转换为计算机处理的数字向量,这是使用标记器完成的。标记可以是字节、字符、字符集、单词,甚至完整句子。今天最常见的标记器是使用一对相邻字节作为标记的字节对编码(BPE)。
选择正确的'标记'是关键,因为它影响神经网络能够掌握的标记间关系,以及训练该网络的计算复杂性。
编码数据保存在向量DB中,然后可以在推理期间使用相同的编码器模型基于向量相似性检索。聊天期间,对话代理可以选择通过编码查询并在向量数据库中搜索相关信息来查询长期内存系统。检索的信息然后用于基于存储信息回答查询**。**
2.1 向量数据库的数据质量问题
向量数据库的主要问题在于其数据质量。由于向量数据库依赖于嵌入模型的准确性,它们受限于嵌入模型的局限性。
嵌入模型(如Sentence-BERT、OpenAI的text-embedding-ada-002)是为通用文本表示设计的,但不一定捕获领域特定的细微差别。例如,在金融领域,"债券"和"债务"的嵌入可能非常相似,导致检索不准确。
此外,向量数据库不擅长处理时间或因果关系。例如,考虑一系列事件:"用户订阅了服务"、"用户取消了订阅"、"用户重新订阅了服务"。向量相似性可能无法区分这些事件的顺序,导致代理基于过时信息做出决定。
向量数据库也难以处理上下文更新。例如,如果用户最初表示他们喜欢披萨,但后来改变主意偏好素食,向量数据库可能检索到旧的嵌入,导致不一致的响应。
最后,向量数据库在处理稀疏或异常数据时挣扎。例如,罕见的技术术语或特定于用户的俚语可能没有足够的训练数据,导致低质量嵌入和检索失败。
2.2 向量数据库的检索问题
检索是向量数据库的另一个挑战。检索通常基于k-最近邻(k-NN)搜索,这可能返回不相关的结果。例如,如果查询是"推荐披萨餐厅",k-NN可能返回关于披萨食谱的文档,而不是餐厅建议。
此外,k-NN搜索是计算密集型的,尤其是对于大型数据集。这可能导致高延迟,特别是在实时应用中。
最后,向量数据库缺乏解释性。它们不提供为什么特定文档被检索的原因,这使得调试检索问题困难。
3、超越向量数据库:Agentic AI的内存类型
Agentic AI需要超越向量数据库,因为它们需要管理多种类型的内存:
- 语义记忆:关于世界的一般知识。例如,"巴黎是法国首都"。
- 情景记忆:个人经历。例如,"用户上次访问了网站"。
- 程序记忆:技能和程序。例如,"如何发送电子邮件"。
向量数据库足以处理语义记忆,但不足以处理情景和程序记忆,因为它们需要结构化和关系表示。
3.1 知识图作为语义记忆的替代
知识图(KG)是语义记忆的优秀替代。它们表示实体和它们之间的关系作为图,其中节点是实体,边是关系。
例如,考虑知识图:"用户" — "喜欢" — "披萨","披萨" — "是" — "食物"。
知识图允许推理和查询超出向量相似性。例如,我们可以查询"用户喜欢的所有食物"或"披萨的所有属性"。
此外,知识图可以处理时间和因果关系。例如,我们可以表示"用户订阅了服务在2023年","用户取消了订阅在2024年"。
最后,知识图是可解释的。我们可以追踪为什么特定信息被检索。
3.2 有限状态机作为程序记忆的替代
有限状态机(FSM)是程序记忆的优秀替代。它们表示任务作为状态和转换序列。
例如,考虑FSM:状态"开始" → "分析产品" → "识别受众" → "创建活动" → "结束"。
FSM允许代理跟踪任务进度并做出基于当前状态的决定。
此外,FSM可以处理异常。例如,如果"分析产品"失败,FSM可以转换到"错误处理"状态。
最后,FSM是可预测的。我们可以预测代理在任何给定状态下的行为。
3.3 混合方法:结合向量数据库、知识图和FSM
最佳方法是结合向量数据库、知识图和FSM。
- 向量数据库用于快速检索。
- 知识图用于语义和情景记忆。
- FSM用于程序记忆。
例如,代理可以:
- 使用向量数据库快速检索相关文档。
- 使用知识图推理关于用户偏好的事实。
- 使用FSM跟踪任务进度。
这种混合方法提供了一个全面的内存管理系统,克服了单个方法的局限性。
4、结束语
Agentic AI需要超越向量数据库。向量数据库足以用于对话内存,但不足以用于agentic任务。
我们需要知识图处理语义和情景记忆,FSM处理程序记忆。
结合这些方法,我们可以构建强大的Agentic AI系统,能够记住、推理和执行复杂任务。
原文链接:Long-Term Memory for Agentic AI Systems
汇智网翻译整理,转载请标明出处