24年3月新泽西州立Rutgers大学论文“AIOS: LLM Agent Operating System”。
基于大语言模型(LLM)智能体的集成和部署一直充满挑战,这些挑战会影响其效率和效能。这些问题包括在LLM上智体请求的次优调度和资源分配、智体和LLM之间的交互期间维护上下文的困难、以及集成具有不同功能和专门化的异构智体固有复杂性。智体数量和复杂性的快速增加进一步加剧了这些问题,通常导致瓶颈和资源的次优利用。受这些挑战的启发,本文提出了AIOS,一种LLM智体操作系统,将大语言模型嵌入到操作系统(OS)中作为操作系统的大脑,实现了“有灵魂”的操作系统,这是走向AGI的重要一步。具体来说,AIOS旨在优化资源分配,促进跨智体的上下文切换,支持智体的并发执行,为智体提供工具服务,并维护智体的访问控制。本文介绍这样一个操作系统的架构,要解决的核心挑战,以及AIOS的基本设计和实现。
除了模块之外,内核还公开了LLM系统调用接口,智体可以通过该接口透明地利用这些服务。此外,设计了AIOS SDK来进一步封装LLM系统调用,为智体开发人员提供更方便的智体库函数。使用AIOS架构,一个如旅行安排的智体可以将其任务分解为多个步骤,这些步骤将LLM推理(例如,规划生成和工具调用决策)和操作系统级操作(例如,访问内存和执行软件服务)流畅地结合在一起。这种能力的协同组合使多个LLM智体能够处理越来越复杂的多模态任务,这些任务需要推理、执行和与物理世界的交互。
如图所示,AIOS架构被组织为三个不同的层:应用程序层、内核层和硬件层。这种分层架构确保了在整个系统职责的清晰划分。每个较高的层都抽象了其下各层的复杂性,促进了通过接口或特定模块的交互,从而增强了模块性,并简化了不同层之间的系统交互。
智体调度器旨在以有效的方式管理智体请求。考虑图中的各种智体(表示为A、B和C),每个智体都有几个执行步骤。在顺序执行范例中,智体任务以线性顺序处理,其中来自同一智体的步骤将首先处理。这可能会导致序列中稍后排队的任务的等待时间增加。
AIOS在上下文管理器中提供快照和恢复机制来解决这个问题,可以从图中看到。用波束搜索过程来说明生成解码过程,这是LLM[10,57,58]中的典型实践。为了便于说明,将光束宽度设置为1。具体来说,将智体请求考虑为:“确定UA057航班的目的地是否下雨”。在每个步骤中,LLM评估多个潜在候选,基于预先定义的波束宽度保留最有希望的路径以供进一步扩展。
如图所示,记忆管理器在智体的生命周期中管理短期记忆,确保数据仅在智体处于活动状态时存储和访问,无论是等待执行还是在运行时。当前的AIOS支持独立存储每个智体的内存,除非获得访问管理器的授权,否则其他智体不能直接访问其中的每个内存。将来可以考虑更复杂的内存机制,如智体之间的共享内存池或分层缓存,并将其集成到AIOS中。与存储管理器相比,内存管理器支持快速数据检索和处理,有助于快速响应用户查询和交互,而不会使AIOS的存储负担过重。
相反,存储管理器负责长期保存数据,监督需要在任何单个智体的活动生命周期之外无限期保留信息的存储。AIOS中的这种永久存储是通过各种持久介质(如本地文件、数据库或基于云的解决方案)实现的,确保数据完整性和可用性,以供将来参考或分析。存储管理器支持检索增强[61]。通过存储用户首选项和维护历史交互日志,存储管理器可以丰富智体知识更新并增强长期用户体验。
AIOS系统中的工具管理器管理各种API工具,这些工具增强了LLM的功能。如表所示,工具管理器集成了来自各种来源的常用工具[7、62、63],并将它们分类为不同的类别,包括web搜索、科学计算、数据库检索、图像处理等。通过这种方式,托管工具可以覆盖不同的输入和输出模式(图像和文本),从而促进AIOS生态系统中的智体开发。
访问管理器通过为每个智体管理专用的权限组,在不同的智体之间编排访问控制操作。从智体的特权组中排除的那些其他智体,被拒绝访问其资源,如交互历史记录。为了进一步提高系统透明度,访问管理器编译和维护审核日志。这些日志捕获有关访问请求、智体活动和对访问控制参数的任何修改的详细信息,这有助于防止潜在的权限攻击[64,65]。
LLM内核中的LLM系统调用接口旨在提供基本的LLM调用操作功能。该接口充当复杂请求和不同内核模块执行之间的桥梁。如表所示,类似于操作系统调用,LLM系统调用提供了一组跨越内核模块的基本功能,包括智体管理、上下文处理、内存和存储操作以及访问控制。LLM系统调用列表在未来可以进一步扩展,以支持更多操作。
AIOS SDK旨在为开发人员提供一个通用工具包,用于在AIOS中创建复杂的智体应用程序。该SDK包含广泛的功能,从初始化智体和管理智体生命周期,到方便复杂的操作,如资源监控和智体任务的生成规划。像任何操作系统一样,将SDK丰富到全面和对开发人员友好的程度是一项长期而无止境的努力。AIOS中支持的当前SDK函数如表所示,将不断更新和扩展以满足不断发展的智体Apps的需求。这项开发工作旨在为开发人员提供所需的工具,以在AIOS框架内利用其智体Apps的全部潜力。