
摘要Agent Substrate 是构建在 Kubernetes 之上的高密度有状态 Agent 调度与运行控制平面通过将操作系统“虚拟内存超分配”的思路迁移到计算调度领域以旁路控制平面绕开 K8s 原生调度瓶颈实现海量逻辑 Actor 与少量物理 Worker 的两级映射。文章从诞生背景、架构设计、核心技术特性30 倍以上资源超卖、亚秒级会话激活、有状态会话无缝迁移、生产级安全隔离、框架无关出发详细拆解了超分配调度的完整生命周期包括预热初始化、激活调度、运行态管理、主动挂起、被动驱逐与迁移调度并给出水位控制弹性策略、与传统 K8s 调度的差异以及 WorkerPool 与 ActorTemplate 的标准生产环境配置示例。1. 核心定位Agent Substrate 是构建在 Kubernetes 之上的高密度有状态 Agent 调度与运行控制平面它不负责 Agent 的业务逻辑与推理编排而是解决大规模 Agent 部署的底层基础设施痛点资源利用率低、调度时延高、有状态会话迁移难、不可信代码执行风险高。简单来说传统 K8s 面向“长运行、高负载”的微服务设计而 Agent Substrate 面向“长生命周期、大部分时间闲置、突发高并发、强状态依赖”的 AI Agent workload 做了底层重构。2. 诞生背景AI Agent 生产化部署面临三大基础设施瓶颈资源浪费严重Agent 多数时间处于等待状态人类确认、工具调用返回、事件触发传统“一个 Agent 一个 Pod”的模式算力闲置率极高规模化部署成本不可接受调度时延过高标准 K8s 调度器创建 Pod 需秒级以上时延无法满足 Agent 亚秒级激活、高频工具调用的诉求安全与状态矛盾Agent 常执行大模型生成的不可信代码需要强隔离但常规容器/虚拟机隔离方案又会进一步拉高启动与迁移成本Agent Substrate 正是针对以上痛点将操作系统虚拟内存超分配的思路迁移到计算调度领域实现海量 Agent 会话的高密度复用与极速启停。架构设计表格层级组件核心职责应用层Agent Executor (AX)、LangChain、Claude Code 等Agent 业务逻辑、工作流编排、工具调用管理调度运行层Agent SubstrateActor 调度、资源超卖、快照挂起/恢复、会话迁移安全隔离层GKE Agent SandboxgVisor/MicroVM不可信代码隔离、内存文件系统快照、沙箱预热底座层Kubernetes IaaS基础资源编排、节点管理、网络存储旁路控制平面Substrate 控制平面独立于 K8s 标准控制平面之外仅将 K8s 作为资源供给底座Agent 调度不经过 K8s 原生调度器从关键路径上消除了调度瓶颈两级资源模型上层是海量、稀疏的逻辑 ActorAgent 会话下层是少量、密集的物理 Worker Pod通过超分配实现两者的映射核心技术特性与设计亮点1. 计算资源超分配30x 超额订阅类比操作系统虚拟内存机制操作系统通过冷热页面置换让程序寻址远超物理内存的地址空间Agent Substrate 将闲置的 Agent 会话内存 文件系统全量状态快照持久化到存储仅将需要运行的 Agent 加载到预热的 Worker Pod 中官方数据显示可实现30 倍以上的资源超卖率大幅降低大规模 Agent 部署的算力成本2. 亚秒级会话激活维护预热的 Worker Pod 资源池沙箱与运行环境已就绪Agent 激活时无需创建 Pod、拉取镜像、初始化环境直接在现有 Worker 中恢复快照端到端激活时延低于 200ms支持高频次的事件驱动型 Agent 调用3. 有状态会话无缝迁移快照包含完整的内存状态与文件系统状态而非仅持久化业务数据闲置 Agent 可随时从一个 Worker Pod 迁移到另一个 Worker Pod恢复后业务状态完全连续用户无感知支持基于负载的动态调度、节点维护时的平滑迁移4. 生产级安全隔离底层复用 GKE Agent Sandbox 的 gVisor 技术在用户态实现系统调用拦截与重实现大幅缩小内核攻击面每个 Actor 运行在独立沙箱中跨租户、跨 Agent 无数据泄露风险支持沙箱暖池300 个 / 秒的沙箱创建速度兼顾安全与性能5. 框架无关与生态兼容任何打包为 OCI 容器镜像的工作负载都可作为 Actor 运行原生兼容 LangChain、Google Agent Executor (AX)、Claude Code 等所有主流 Agent 框架兼容标准 Kubernetes 集群可在本地 Kind、GKE 及其他合规 K8s 环境部署核心抽象与资源模型Agent Substrate 对外暴露两个核心自定义资源CRD开发者通过这两个资源完成全部配置WorkerPool定义物理计算资源池包括 Worker Pod 的规格、数量、自动扩缩容策略对应预热的沙箱运行环境是所有 Actor 共享的物理执行载体ActorTemplate定义 Agent 工作负载的模板包括镜像、资源配额、启动参数等基于模板可创建大量独立的 Actor 实例每个实例拥有独立状态与生命周期未来规划(2026-08-05开源代码还未实现)Agent Substrate 最重要的就是把闲置的沙箱挂起让渡给有需要的沙箱挂起的沙箱在需要恢复的时候能够快速恢复从而充分利用计算资源。Agent Substrate 的计算资源超分配调度本质是将操作系统虚拟内存的 “按需调页 冷热置换” 思想从内存维度扩展到整个计算沙箱维度通过旁路控制平面绕开 Kubernetes 原生调度瓶颈让海量长生命周期的逻辑 AgentActor在少量预热的物理 Worker Pod 上分时复用依赖 gVisor 快照的极速挂起 / 恢复能力最终实现 30 倍以上的超额订阅率。以下从架构、模型、全流程、核心策略四个维度展开详细拆解。一、调度架构旁路控制平面绕开 K8s 原生瓶颈传统 K8s 调度器面向长生命周期 Pod 设计端到端启动时延在秒级且 API Server 无法承载百万级 Actor 高频的挂起 / 恢复操作。Agent Substrate 采用旁路控制平面架构仅将 K8s 作为底层资源供给底座所有 Actor 调度均在独立控制面完成。核心调度组件ate-apiserver全局调度核心以 gRPC 接口处理 Actor 创建、激活、挂起、迁移指令维护全集群 Actor 状态元数据与 Worker 池资源视图所有调度决策在此完成。atelet节点级 DaemonSet 代理负责本节点 Worker Pod 生命周期管理、快照本地缓存与持久化、执行 gVisor 沙箱的 checkpoint/restore 操作是调度指令的实际执行者。atecontroller声明式控制器对接WorkerPool与ActorTemplate两个 CRD负责 Worker 池的弹性扩缩容、黄金快照制作、模板初始化等运维操作。ateom-gvisor每个 Worker Pod 内的沙箱助手封装 gVisorrunsc能力执行具体的内存 文件系统快照制作与恢复。二、两级资源模型超分配的底层逻辑超分配的核心是逻辑实体与物理载体解耦形成 “海量稀疏 Actor × 少量密集 Worker” 的两级映射1. 上层逻辑 Actor 层每个 Actor 对应一个独立 Agent 会话拥有完整的内存状态、文件系统、网络上下文生命周期与用户会话对齐可长达数小时至数天。Actor 是纯逻辑实体不绑定任何物理 Pod可在集群任意 Worker 上恢复运行。三种核心状态运行态Running、挂起态Suspended、待激活Pending。2. 下层物理 Worker 层WorkerPool定义一组预热的 Worker Pod每个 Pod 内置多个 gVisor 沙箱槽位沙箱内核与运行时环境始终就绪仅缺业务状态。每个沙箱槽位同一时间只能承载一个运行态 Actor是物理资源的最小分配单位。Worker 池规模远小于 Actor 总数官方 Demo 中 8 个 Worker Pod 可稳定承载 250 个有状态会话对应 30 倍以上超卖比。超分配核心公式Actor 总数 运行态 Actor 数 挂起态 Actor 数其中 运行态 Actor 数 ≤ Worker 池总沙箱槽位数闲置 Actor 的完整状态被快照持久化到对象存储用低成本存储置换昂贵的算力资源这是超分配的本质。三、超分配调度全流程完整的调度生命周期分为 6 个核心阶段覆盖从初始化到弹性迁移的全链路1. 预热初始化黄金快照与沙箱暖池调度前置准备是亚秒级激活的基础基于ActorTemplate制作黄金基准快照Golden Snapshot启动一个标准 Actor 完成初始化后制作全量快照作为同模板所有 Actor 的启动基底避免每次从零启动容器。Worker 池启动时每个 Pod 预先初始化 N 个空 gVisor 沙箱暖池沙箱内核、网络栈、运行时环境全部就绪激活时仅需恢复业务状态无需重启沙箱本身。2. 激活调度事件驱动的亚秒级放置当事件用户消息、API 调用、定时触发到达挂起态 Actor 时触发激活调度路由接入事件通过atenet网关到达 ate-apiserver调度器查询元数据确认 Actor 状态与最新快照位置。Worker 选择按优先级筛选空闲沙箱槽位优先选择本地缓存了该 Actor 最近快照的 Worker数据局部性最优无需跨节点拉取其次选择负载最低、剩余资源最充足的 Worker最后考虑同可用区、网络时延最低的 Worker状态恢复atelet 通知 Worker 内的 ateom-gvisor 执行 restore从本地缓存或对象存储拉取 Zstd 压缩快照恢复完整内存与文件系统。流量切流状态恢复完成后atenet 实时更新路由规则将流量转发到对应沙箱激活完成。整个端到端激活时延低于 200ms核心原因是完全绕开了 K8s 的 Pod 创建、调度、镜像拉取流程仅做状态恢复。3. 运行态管理空闲计时与心跳保活Actor 运行期间atelet 持续监控沙箱 CPU 使用率、网络 IO 与业务心跳检测到 Actor 进入等待状态等待用户输入、等待工具返回立即启动空闲计时器。高优先级任务可通过 Annotation 标记为 “不可驱逐”确保关键流程不被打断。4. 主动挂起调度闲置资源回收当空闲计时器超时可配置默认秒级触发主动挂起ateom-gvisor 执行 checkpoint捕获 Actor 完整内存镜像、文件系统增量、打开的句柄与网络连接状态。快照经压缩后一份缓存到 Worker 本地磁盘用于快速二次激活一份持久化到对象存储用于跨节点迁移。销毁沙箱内业务进程释放 CPU 与内存沙箱槽位标记为空闲可分配给其他 Actor。ate-apiserver 更新 Actor 为挂起态记录最新快照位置。5. 被动驱逐调度高负载下的资源腾让当 Worker 池空闲槽位低于阈值且有新的激活请求排队时触发被动驱逐强制置换闲置 Actor已进入空闲态且空闲时间最长的 ActorLRU 算法标记为低优先级的非关键会话正在运行但 CPU 利用率极低的后台 Actor驱逐过程与主动挂起完全一致确保状态零丢失仅增加毫秒级切换开销。这是超分配的核心保障突发流量下通过快速冷热置换保证业务不排队用时延换容量。6. 迁移调度负载均衡与故障转移负载均衡迁移当个别 Worker 负载显著高于集群均值时调度器将其上部分空闲 Actor 挂起调度到低负载 Worker 激活实现全局资源均衡。故障转移迁移Worker Pod 或节点异常时ate-apiserver 秒级检测故障将该节点所有 Actor 标记为待恢复从对象存储拉取快照在健康节点重建RTO 接近亚秒级。四、超分配水位控制与弹性策略超卖比并非固定值而是基于实时负载动态调整低水位扩容空闲槽位占比持续低于阈值如 10%、驱逐频率升高、激活时延增大时说明超卖比过高atecontroller 自动扩容 Worker 池副本数。高水位缩容空闲槽位占比持续高于阈值如 30%时说明资源冗余自动缩减 Worker 池规模提升超卖比。支持基于自定义指标激活排队数、平均驱逐率、沙箱使用率的 HPA 式弹性伸缩。五、与传统 K8s 调度的本质差异表格维度传统 K8s Pod 调度Agent Substrate 超分配调度调度对象长生命周期 Pod1:1 绑定节点会话级 Actor 状态N:1 复用 Worker调度时延秒级调度 镜像 启动亚秒级仅状态恢复沙箱已预热资源模型独占式分配申请即占用分时复用闲置换出到存储状态粒度无状态 / 外部持久化卷全状态快照内存 文件系统 句柄控制平面K8s 原生调度器 API Server旁路轻量控制面K8s 仅作资源底座这套调度体系的核心创新是将云原生调度粒度从 “容器 / Pod” 细化到 “会话状态”精准匹配了 AI Agent“长会话、低活跃、突发式” 的 workload 特征。以下给出 WorkerPool 全局检测默认配置、ActorTemplate 业务模板级精细化配置以及四类典型场景的调优参数可直接基于开源版本 CRD 规范落地使用。六、配置层级与生效优先级Agent Substrate 的空闲检测采用三级配置体系优先级从高到低为实例级 Annotation单个 Actor 实例单独覆盖用于关键会话临时豁免模板级ActorTemplate.spec.runtime.idlePolicy按业务模板配置生产环境主要调优层级全局级WorkerPool.spec.detectionConfig集群默认兜底值未配置模板时生效所有检测逻辑均由节点atelet执行配置热更新无需重启 Worker 池。七、标准生产环境完整配置示例1. WorkerPool 全局检测默认配置该配置定义集群级检测周期、采集粒度与兜底阈值适用于所有未单独配置的 Actor 模板。yamlapiVersion: substrate.io/v1alpha1 kind: WorkerPool metadata: name: standard-worker-pool spec: replicas: 16 sandbox: gvisor detectionConfig: # 沙箱状态采集周期百毫秒级平衡精度与节点开销 sampleInterval: 200ms # 全局默认空闲超时未配置模板时生效 defaultIdleTimeout: 5s # 进程级检测配置 processDetection: enabled: true # 连续多少个采样周期全线程阻塞则判定空闲 consecutiveIdleSamples: 2 # 忽略的后台线程名正则匹配避免心跳/日志线程干扰 ignoredThreadPatterns: - .*heartbeat.* - .*logger.* - .*gc.* # 系统资源指标兜底配置 resourceDetection: enabled: true # 滑动窗口大小采样周期数 windowSize: 5 # 资源阈值全部满足且持续窗口时间则判定空闲 thresholds: cpuUsagePercent: 5 # 沙箱CPU使用率 5% networkPps: 10 # 每秒收发包 10 syscallRate: 50 # 每秒系统调用 50次 diskIops: 2 # 磁盘IOPS 2 # 快照缓存策略 snapshotConfig: localCacheEnabled: true localCacheSize: 10Gi2. ActorTemplate 业务模板级精细化配置这是生产环境的核心调优单元针对不同业务特性独立配置三层检测策略实现精度与成本的平衡。yamlapiVersion: substrate.io/v1alpha1 kind: ActorTemplate metadata: name: customer-service-agent spec: image: registry.example.com/copilot-agent:v1.2.0 resourceQuota: cpu: 500m memory: 256Mi runtime: # 核心空闲检测与超分配策略 idlePolicy: # 总开关是否启用空闲挂起 suspendOnIdle: true # 最小运行保护Actor启动后至少运行多久才允许被挂起 # 避免短任务频繁启停防止抖动 minRunTime: 2s # 第一层业务主动钩子 activeHook: enabled: true # 业务主动声明空闲后的超时时间最快回收 # 主动钩子精度最高、零延迟因此超时设置最短 idleTimeout: 1s # 是否启用预快照收到空闲通知后后台提前生成增量快照 preSnapshotEnabled: true 第二层进程级阻塞检测 processDetection: enabled: true # 连续全线程阻塞后的超时时间 idleTimeout: 3s # 覆盖全局的连续空闲采样数 consecutiveIdleSamples: 3 # 额外追加本业务特有的豁免线程 extraIgnoredThreads: - metrics-exporter 第三层资源指标兜底 resourceDetection: enabled: true # 资源持续低于阈值后的超时时间兜底设置最长降低误判 idleTimeout: 8s # 覆盖全局阈值业务个性化调优 thresholds: cpuUsagePercent: 3 networkPps: 5 syscallRate: 30 驱逐优先级 evictionPriority: medium # low / medium / high high优先级被动驱逐时最后被选中保障核心业务/code/pre参考文献项目主仓库 地址https://github.com/agent-substrate/substrate这是 Agent Substrate 的唯一官方开源仓库所有核心实现、CRD 定义、部署脚本均在此仓库中。官方架构文档站 地址https://learn.agentsubstrate.dev/对应仓库内 docs/architecture/ 目录是官方维护的系统架构、组件交互、核心流程的权威说明包含控制面、数据面、快照流的完整拆解。