AWS开源Infinity运行时:75000个智能体装进8GB

10 月 23 日,AWS 在官方开源博客发布智能体运行时项目 Infinity,采用 Apache 2.0 开源许可,是 AWS 与加州大学伯克利分校 Sky Computing Lab 合作项目 Hydro 的一部分。AWS 研究负责人 Shadaj Laddad 写道,这是一个早期研究版本,目的是收集反馈,尚非正式发布的服务。

把工具调用当成挂起点

Infinity 借鉴了编程语言挂起与恢复异步函数的做法。Rust 把 async 函数编译成状态机,只在每个 await 点保留必要状态,内存占用远小于有栈协程。Infinity 把智能体对话历史当作延续状态:一次执行切片里,运行时从可插拔存储读取历史,跑一次模型补全,写回输出,最多派发一个工具调用,切片随即结束。工具调用就是 await 点,切片不会为工具或定时器阻塞。一切能唤醒智能体的消息都进入共享输入队列,运行时因此不必在等待期间维持智能体存活。

树莓派 5 装下 75000 个智能体

规模数据来自一组基准测试:用模拟模型和内存内存储,在单线程 AMD EPYC 9R14 上跑 80000 个智能体,累计 320 万次补全。每轮往返中模型流式输出约 1.2 KB 并调用一个工具,结果经输入队列返回。常驻内存随智能体数量线性增长,每个空闲智能体约占用 100 KB,按此速率 8 GB 内存的树莓派 5 可容纳约 75000 个智能体。绝大部分内存被对话历史占据,空闲智能体本身没有任务、调用栈或连接。

官方参考部署在 AWS 上:输入队列用 SQS FIFO,每个线程一个 MessageGroupId,每次投递触发一次 Lambda 调用,跑完一步即退出。对话历史存在 Aurora DSQL,去重状态存 DynamoDB,睡眠类工具用 SQS 投递延迟和 EventBridge Scheduler 计时,仓库附带创建这些资源的 CDK 构造。

合成工具调用与线程间通信

异步事件到达时,运行时向模型补上一条它实际没发起过的助手工具调用,再附上承载事件内容的结果,模型训练中习得的工具调用能力因此得以保留。每个智能体内置 spawn_thread 工具,可创建带独立输入队列的子线程,调用立即返回而父线程继续工作,子线程汇报稍后以事件送达。默认情况下事件在临时子线程中处理,子线程继承父级上下文,可执行后汇报父级,也可判定无关直接关闭。

与这种并发密度相关的还有谷歌 Agent Compute Engine,其 20 万智能体 500 毫秒挂起恢复 走微型虚拟机底座路线,共同前提是让等待中的智能体几乎不占资源。