AIOS大模型驱动:Multi-Agent操作系统设计与代码实战
AIOS 虽然定位为 LLM Agent 操作系统,将大语言模型视为系统大脑以迈向通用人工智能,但落地时抛开 OS 视角,它本身就是一个结构完善的 Multi-Agent 框架。
基于大语言模型构建智能体的核心难点有三:一是请求调度与资源分配效率低下,LLM 频繁遭遇排队阻塞;二是智能体与 LLM 交互时上下文管理混乱,状态极易丢失;三是异构智能体的集成复杂度随规模和专业领域增加而急剧攀升。随着智能体数量与任务规模的扩张,这些瓶颈只会被进一步放大。
AIOS 架构设计
设计背景
以旅行智能体为例:用户提交行程安排请求后,智能体需要将任务拆解为可执行步骤——预订航班、酒店、处理支付,并根据用户偏好更新日历。每一步都涉及推理与决策,完全不同于传统软件“固定功能、固定流程”的范式。在此过程中,智能体既要调用 LLM 服务(理解偏好、决定调用哪个 API、生成响应),又要与底层操作系统交互(访问磁盘、执行软件)。这正是传统操作系统无法应对的场景。
图 1 展示了这一激励性实例:智能体完成任务时需要同时使用 LLM 级别与操作系统级别的资源和功能。
图 1:激励性示例,说明智能体(如旅行智能体)完成任务时所需的 LLM 级别与操作系统级别资源及功能。
AIOS 整体架构
为应对上述挑战,AIOS 应运而生——专为 LLM 智能体设计的操作系统(见图 2)。其核心思路是模块隔离 + LLM 与 OS 功能的聚合。具体而言,设计了一个“LLM 内核”,将操作系统级职责单独抽取出来,专门负责监督 LLM 智能体、相关资源及开发工具。这种分离极大提升了 LLM 相关活动的管理与协调能力。
LLM 内核包含若干关键模块,每个模块聚焦特定功能:
- 智能体调度器:对智能体请求进行优先级排序与调度,优化 LLM 利用率。
- 上下文管理器:支持 LLM 中间生成状态的快照与恢复,同时管理上下文窗口。
- 内存管理器/短期记忆:为每个智能体的交互日志提供短期内存。
- 存储管理器/长期记忆:将智能体交互日志持久化到长期存储,便于后续检索。
- 工具管理器:管理智能体对外部 API 工具的调用(如搜索、科学计算等)。
- 访问管理器:在智能体之间执行隐私与访问控制策略。
图 2:AIOS 整体架构图
智能体调度器
核心任务是管理智能体请求并最大化 LLM 利用率。调度策略可选 FIFO、轮询等算法。传统顺序执行模式中,任务线性运行,后续任务等待时间长。智能体调度器采用并发执行,通过时间线交错处理不同智能体的任务,防止资源独占,同时将空闲时间压缩至最低。
图 3:智能体调度器示意图
上下文管理器
该模块处理 LLM 生成过程中的上下文与状态。两个核心功能:上下文快照与恢复,以及上下文窗口管理。
快照与恢复机制允许系统在智能体请求被挂起时(即使 LLM 尚未完成响应生成),保存当前生成状态。待资源释放后,直接从断点恢复,避免进度丢失。上下文窗口管理针对超长上下文——超出 LLM 处理能力时,通过文本摘要与扩展技术压缩或扩充信息,兼顾完整性与相关性。
图 4:上下文快照与恢复,以束搜索(束宽=1)为例说明生成性解码过程中的状态保存与恢复。
工具管理器
工具管理器负责管理和调用外部 API,为 LLM 赋能。它将来自不同来源的常用工具分类存档:网络搜索、科学计算、数据库检索、图像处理等,覆盖文本与图像多模态。维护一份工具列表,每个工具标注输入输出格式。例如搜索引擎 API(Google、Bing)用于信息检索,Wolfram Alpha 用于数学计算,此外还有数据库查询、维基百科、图像去噪分类等。
图 5:AIOS 中管理的工具,最后一列显示每个工具所需的输入与输出格式。
Multi-Agent 框架代码设计
框架概览
代码已开源,项目地址:https://github.com/agiresearch/AIOS/tree/main/src。抛开 OS 视角,它本身就是一个功能完备的 Multi-Agent 框架,包含六大模块:
agents:管理不同智能体应用,现有数学智能体(MathAgent)、叙事智能体(NarrativeAgent)、推荐餐馆/酒店智能体(RecAgent)、旅行规划智能体(TravelAgent)。每个智能体拥有独立描述与流程,例如 TravelAgent 的 flow 定义极其详细——从解析目的地到估算交通成本、安排餐饮与景点,逐步推进。
llm:负责接入不同底座大语言模型,如 gemma-2b-it、Llama-2-13b-chat、Mixtral-8x7B。配置灵活,通过 JSON 指定模型类型与是否开源。
scheduler:调度器——对不同智能体进行调度,调用 LLM 执行具体任务。核心是一个 BaseScheduler 类,包含启动、停止、执行请求的方法,在 AgentProcess 中记录起止时间与状态。
memory/storage:短期记忆与长期记忆。实现简洁:短期使用 dict 在内存中检索,长期通过数据库或文件持久化。
tool:工具模块目前已实现 8 个工具,例如论文搜索(arXiv)、网页搜索(Bing/Google)等。每个工具封装了 API 接口 URL、参数配置、执行逻辑与结果解析,代码结构清晰。以 BingSearch 为例,继承 BaseTool,配置订阅密钥与搜索参数,然后执行 HTTP 请求并返回结果。
智能体的主要能力包括工具调用、工具参数解析、prompt 拼接、LLM 执行(由调度模块执行 agent_process)、答案总结,以及 flow 工作流执行(按 step 依次推进)。BaseAgent 类提供通用的 get_response、check_tool_use、get_tool_arg、get_final_result 等方法,子类可继承复用。
代码总结
AIOS 中介绍的各模块在仓库中均有实现,感谢开源贡献。部分细节仍在完善中,例如短期与长期记忆如何与智能体深度融合,以及更强大的工具调用实现。若对智能体发展与案例有进一步研究兴趣,可参考原始论文:
AIOS: LLM Agent Operating System https://arxiv.org/pdf/2403.18243.pdf