论文

Agent libOS:受库操作系统启发的运行时,用于长期运行、能力受控的 LLM 智能体

Agent libOS:受库操作系统启发的运行时,用于长期运行、能力受控的 LLM 智能体

大型语言模型(LLM)智能体正在从请求-响应助手演变为长期运行的软件参与者:它们在模型调用之间保持状态,分支子任务,等待外部事件,请求人类授权,生成工具,并执行必须恢复和审计的副作用。本文提出 Agent libOS,一种受库操作系统启发的 LLM 智能体运行时基板。Agent libOS 运行在传统主机操作系统之上,不实现硬件驱动、内核模式隔离或 POSIX 兼容操作系统。相反,它将智能体视为 AgentProcess:一个可调度的执行主体,具有进程标识、父子谱系、生命周期状态、从 AgentImage 派生的工具表、Object Memory、显式能力、人类队列、检查点、事件和审计记录。 其核心设计规则是:工具是类似 libc 的包装器,运行时原语是权限边界。文件系统访问、对象访问、休眠、人类批准、JIT 工具注册和外部副作用在显式能力和策略下在原始边界处进行检查。当前原型实现了异步调度、命名空间本地 Object Memory、运行时集成的人类批准、一次性权限授予、每进程工作目录、shell 和图像注册原语、通过 libOS 系统调用代理的 Deno/TypeScript JIT 工具、文件系统/对象桥接工具、可注入的 Resource Provider Substrate、确定性演示、真实模型烟雾脚本以及 123 个回归测试。 Agent libOS 不是改进规划器准确性,而是展示了一个运行时基板,其中长期运行的 LLM 智能体可以被调度、授权、恢复和审计,而无需将工具调度视为信任边界。

论文精读

TL;DR Agent libOS 为 LLM Agent 提供类 OS 进程运行时,将权限检查从工具调度下沉到运行时原语,实现长运行任务的安全调度、审计与恢复。

问题

问题背景

LLM 代理正从简单的请求-响应助手进化为长时间运行的自主软件执行体,需要跨模型调用维护状态、分叉子任务、等待外部事件、请求人类授权、动态生成工具并产生可审计的副作用。业界对这类代理的可靠性、安全性与可审计性日益关注。

现有方法局限

当前主流框架(如 LangChain、AutoGPT)将代理抽象为对话循环 + 工具注册表。这种设计混淆了动作可见性(模型看到什么)与资源授权(模型能做什么):工具 schema 直接暴露给模型,而工具实现却可无条件触碰宿主机文件系统、终端、网络或凭据。

  • 信任边界错位:工具分发成为事实上的安全边界,但工具内部可能执行任意系统调用,缺乏细粒度能力控制。
  • 运行时缺失:没有进程级生命周期管理、检查点、事件调度或显式人类审批队列,难以支撑长期运行、中断恢复和审计。
  • 扩展性风险:JIT 工具生成容易引入代码注入或权限逃逸,现有框架缺少原生防御。

为什么这个问题难且重要

LLM 代理的非确定性、自然语言交互和动态工具生成,使得传统 OS 安全模型(如进程隔离、能力系统)难以直接应用。代理执行的任务链长、上下文复杂,一个越权操作可能在多步之后才暴露,且事后追溯困难。若将工具分发当作信任边界,任何工具提供者都可能成为攻击面,在自治代理场景中危害极大。

业界对 安全 AI 代理 的需求迫切,但当前重心多在规划精度提升,而非构建坚固的运行时基底。类似 容器技术 为微服务提供进程隔离与资源限制,Agent libOS 试图为 LLM 代理提供一个可控、可审计的“容器式”运行环境,保障长期任务的调度、授权、恢复与合规。

核心洞察

  • - **信任边界从工具调度下沉到运行时原语**:现有 LLM agent 框架通常将工具注册表直接暴露给模型,工具的实现直接操作主机文件系统或网络,导致模型可见的工具即拥有对应资源权限,安全边界模糊。Agent libOS 则采用显式能力(capabilities)与策略,在运行时原语(如文件访问、sleep、人类批准、JIT 工具注册)处实施检查,工具本身只是类似 libc 的受控包装器。这种设计将信任边界从“工具是否可见”转变为“原语调用是否经授权”,有效隔离了模型意图与系统操作,提升安全性、可审计性,且无需依赖模型遵守安全约束。
  • - **以操作系统抽象管理 agent 的长生命周期与执行上下文**:不同于主流框架将 agent 视为短对话循环,Agent libOS 引入 AgentProcess、AgentImage、父子进程关系、生命周期状态、检查点、事件队列等操作系统概念。每个 agent 作为可调度的“进程”运行,拥有独立的 Object Memory 和工具表,支持 fork 子任务、挂起等待外部事件、精确恢复执行。这让 agent 的长期运行、状态保持、并发协调与资源回收变得像操作系统管理进程一样规范,特别适合需要持续运行、跨多步推理和外部事件响应的生产级 agent 系统。

方法

Agent 定义与进程化输入

Agent libOS 将 LLM agent 抽象为 AgentProcess,其元数据来自 AgentImage(描述工具集、能力声明、初始对象内存等),创建时生成进程身份、父子树、生命周期状态,并将允许的工具表派生为 libc 风格的包装器。这一过程将 agent 从对话循环提升为可调度执行主体。

核心运行时原语与能力边界

系统核心设计规则:工具是 libc 式 wrapper,运行时原语才是真正的权限边界。原语包括文件访问、对象读写、sleep、人类审批、JIT 工具注册、外部副作用等,每一原语在执行前都须通过 显式能力检查。每个进程携带能力列表(可继承或一次性授予),原语内部调用 syscall broker 完成实际操作,避免工具直接触碰宿主资源。

  • 对象内存(Object Memory):类型化、命名空间隔离的持久内存,进程只能访问其能力允许的对象集,支持跨进程共享与审计。
  • 人类审批:内嵌于调度循环,进程可进入 HUMAN_WAIT 状态等待授权,审批结果可设定一次性权限块。
  • 事件与唤醒:支持 sleep、外部事件等待等原语,调度器在事件到达时恢复进程执行。

调度与 JIT 扩展

运行时基于 async 调度,进程可在等待 I/O 或审批时挂起,不阻塞其他 agent。JIT 工具注入通过 Deno/TypeScript 实现,工具代码经过 libOS syscall broker 转发,确保生成的代码无法越权。外部资源提供者(Resource Provider Substrate)可注入,适配不同宿主环境(本地、容器、沙箱)。

审计、检查点与输出

所有原语调用记录为 审计事件,包含进程 ID、能力标签、结果等,支持可追溯性。检查点机制定期保存进程状态(包括对象内存快照),故障后可恢复执行,输出为有序的操作序列与副作用记录。

与同类方法的差异

传统框架通常直接将工具声明暴露给模型,以工具调度为信任边界;Agent libOS 将授权点下沉至运行时原语层,通过能力制约束显式控制 agent 行为,而非依赖工具实现本身的安全性。

实验

实验设计

论文的实验重点不在提升规划准确率,而是验证 Agent libOS 作为运行时的安全原语与可审计性。原型通过确定性演示 (deterministic demos)真实模型烟雾脚本 (real-model smoke scripts)123 个回归测试 覆盖核心能力:异步调度、命名空间隔离的对象内存、人类审批队列、JIT 工具注册、文件系统桥接、可注入的资源供应基底。

关键发现

  1. 工具可见性 ≠ 资源权限:通过将工具视为 libc 式包装器,运行时原语成为权限边界,模型可见的工具 schema 不直接暴露宿主资源。
  2. 长期运行的可恢复性:AgentProcess 的生命周期状态、检查点与审计记录使代理可暂停、恢复、事后审计。
  3. 能力控制与人类审批:显式能力 (explicit capabilities) 与一次性授权实现了细粒度的操作控制,审批队列使人类介入成为原语而非外挂。

对比基线解读

与现有框架 (如 LangChain、AutoGPT) 相比,Agent libOS 将信任边界从“工具分发”下移到“运行时原语”——前者工具直接访问宿主资源,后者在 syscall bridge 层统一检查能力与策略。这更接近传统操作系统的安全模型,为构建可审计、可复现的长期代理提供了工程范式,但需要更多工程投入来适配现有工具链。

行业影响

落地场景

Agent libOS 为 长运行 LLM 智能体 提供进程化执行环境,适合需要持续状态维护、权限分级、可审计的复杂任务。典型产品形态包括:

  • 自动化 DevOps 助手:在代码仓库中持续运行,执行代码生成、测试、部署,并通过 AgentProcess 生命周期进行安全管控。
  • 企业级 RPA 替代方案:传统的 RPA 依赖预设规则,而 LLM 智能体可处理非结构化任务,但需强隔离;libOS 的 显式能力 (capabilities) 和运行时原语检查 可防止未授权操作。
  • 多租户 SaaS 后台任务:每个租户对应一个 AgentProcess,继承不同 AgentImage 和能力策略,实现安全的多智能体调度。

商业价值

  • 降本:将智能体开发从“聊天循环 + 工具注册”的手工集成,变为标准化运行时,减少安全审计和权限加固的工程投入。通过 JIT 工具注册syscall broker,模型生成工具时无需信任模型输出,而是由运行时检查,降低安全漏洞风险。
  • 增收:在合规要求高的行业(如金融审批、自动化报告生成),libOS 提供的 人工审批队列审计记录 可使智能体直接参与业务流程,加速服务上线。
  • 体验提升:智能体可 挂起、恢复、分叉子任务,适合长时间运行的交互式应用,如持续性代码评审、研究助理等,用户感知更稳定可靠。

与现有工作流的集成

Agent libOS 作为库操作系统,位于宿主 OS 之上,通过 Deno/TypeScript JIT 工具文件系统/对象桥接器 与现有系统交互。集成方式:

  1. 现有 LLM 应用通过异步调度器接入,AgentProcess 代替原有单次推理循环。
  2. 工具注册由 AgentImage 描述,与原工具注册表兼容,但增加能力声明。
  3. 外部资源(数据库、API)通过 资源供给层 注入,保留原有权限体系,libOS 仅进行 原语层授权,不改变下游接口。

具体落地案例

  • 电商客服自动化:智能体处理退货、退款流程,需要访问订单系统、发起补偿、等待人工审批。Agent libOS 的 人工审批原语能力检查 确保仅授权操作可执行,且所有步骤被审计,满足电商平台合规需求。
  • 企业级代码助手:在大型代码仓库中,智能体长期运行,执行自动修复、重构、创建 PR。通过 进程工作目录工具表 限制文件访问范围,使用 一次性权限授予 模型生成代码后二次确认,避免误操作。

局限

  • 当前原型仅为单机 Python 实现,尚未验证在分布式、高并发场景下的性能与扩展性。尽管提供了异步调度和进程隔离,但实际部署中可能面临与云原生基础设施(如容器编排、服务网格)的集成挑战。论文缺乏与主流 Agent 框架(如 LangChain、AutoGPT)的横向对比,难以评估其在实际生产环境中的可用性提升,且回归测试和烟火脚本规模有限,缺少大规模真实任务的基准测试,说服力不足。
  • 威胁模型明确排除内核级隔离,依赖底层操作系统用户态沙箱,自身无法防御内核漏洞或恶意 `syscall` 逃逸。显式能力机制的安全性高度依赖策略的正确配置,人类审批和单次授权可能引入人为错误或决策延迟,文中未深入讨论复杂策略下的误配置风险与可用性平衡。此外,JIT 工具扩展仅支持 Deno/TypeScript,未覆盖 Python 等更广泛的生态,限制了工具开发者的覆盖范围。
  • 设计重心在于运行时安全与审计,而非提升 LLM 规划或推理质量。若 Agent 本身逻辑错误或目标设定不当,运行时的隔离与审计无法防止任务级失败。这意味着系统整体有效性仍受限于上层 Agent 智能体的能力,而论文未探讨如何与规划改进方法协同工作,从而可能使其在需要高可靠决策的场景中作用受限。
论文Yingqi Zhang2026-06-02原文

相关内容