Agent Substrate术语表完全解析:从ActorTemplate到Uniform DNS Mesh的15个关键词
【免费下载链接】substrateAgent Substrate: the core system项目地址: https://gitcode.com/GitHub_Trending/substrate7/substrate
初学Agent Substrate(一个面向 AI Agent 的大规模沙箱执行底座)时,最劝退的就是术语。这篇文章基于官方术语表 docs/glossary.md,把Agent Substrate 术语表中最核心的 15 个关键词——从ActorTemplate到常被社区称为 "Uniform DNS Mesh" 的统一 Actor 路由——用大白话一次性讲透,让你快速建立完整心智模型。
先认识 Agent Substrate:一个"Agent 超密集调度器"
一句话理解:Agent Substrate 把大量"演员"(Actor)映射到少量"工人"(Worker)上。Agent 类应用大部分时间在等待,于是系统会在 Actor 空闲时把它"冬眠"(Suspend)、在请求到来时"秒醒"(Resume),靠快照实现 <sub-500ms 的恢复和 30 倍以上的资源超卖。
官方文档入口:
- 术语表:docs/glossary.md
- 架构原理:docs/architecture.md
- 快速上手:README.md
一、声明式资源:系统的三张"图纸"
这三类资源描述"系统应该长什么样",变更频率低,属于静态配置。
1. ActorTemplate:Actor 的"类定义"
ActorTemplate定义了一个 Actor 的"版本":用哪个容器镜像、快照怎么配。它不可变——要发新版就建一个新模板,而不是改旧的,类似"Pod 模板,但专给可打快照的工作负载用"。注意它不是 K8s 对象,而是存在 Substrate 控制面数据库里的记录,通过kubectl ate create actor-template管理。创建它会触发一次 "黄金启动",生成 Golden Snapshot。
出处:docs/glossary.md#L10-L17
2. WorkerPool:预热算力池
WorkerPool是一个K8s CRD,声明一批"已经启动好、随时待命"的 worker Pod。控制面组件 atecontroller 会把它调谐成一个 K8sDeployment。它是实现"秒级唤醒"的关键——Pod 早就热好了,省掉了 K8s 调度的秒级延迟。
出处:docs/glossary.md#L19-L21
3. SandboxConfig:沙箱运行时的"固件仓"
SandboxConfig是集群级资源,存放某一代沙箱运行时的二进制(gVisor 的runsc,或 micro-VM 的内核/固件/配置)以及 pause 镜像。一个ActorTemplate通过命名一个 SandboxConfig 来"钉住"运行时版本,很多模板可以共享同一份配置。
出处:docs/glossary.md#L23-L29
二、动态记录:Actor、Atespace、Worker
这三类记录变化太快,放 etcd 会撑不住,所以存在控制面的 PostgreSQL 数据库里。
4. Atespace:Actor 的"隔离小区"
Atespace 是 Actor 所属的隔离边界,也是 Actor 身份的前半段:Actor 用(atespace, name)寻址,所以同名 Actor 可以存在于不同 atespace。它是全局资源而非 K8s namespace——ActorTemplate也住在 atespace 里,而WorkerPool住在 K8s namespace 里。Atespace 空了才能删除。
出处:docs/glossary.md#L36-L41
5. Actor:被超卖的核心单元
Actor 是从某个ActorTemplate派生的单个实例,名字是 DNS-1123 标签。它是"挂起/恢复"的基本单位,一生会在不同 Worker 之间来回迁移。Actor 记录跟踪它的生命周期状态和快照引用。
出处:docs/glossary.md#L43-L47
6. Worker:一个 Pod 一条记录
Worker 是WorkerPool中某个 worker Pod 的数据库记录。它同一时间最多托管一个 Actor,但随时间可以在池内多路复用成百上千个 Actor。
出处:docs/glossary.md#L48-L50
三、六大系统组件:各司其职的"岗位"
组件清单见 docs/glossary.md#L52-L77,源码目录见 cmd/。
| # | 组件 | 角色 | 一句话类比 |
|---|---|---|---|
| 7 | ate-api-server(二进制ateapi) | 控制面:管 Actor 生命周期、把 Actor 调度到 Worker、协调快照 | 大脑 |
| 8 | atecontroller | K8s 控制器:把WorkerPool等 CRD 调谐成 Deployment | 基建监理 |
| 9 | atelet | 节点级 Supervisor(DaemonSet):拉镜像、组装 OCI bundle、驱动沙箱、搬运快照 | 宿管员 |
| 10 | ateom | 运行在每个 worker Pod 内部,替 atelet 驱动沙箱运行时(分ateom-gvisor/ateom-microvm两味) | 车间主任 |
| 11 | atenet | 网络栈:router 按需唤醒挂起的 Actor 并把流量路由到正确的 worker Pod | 总机话务员 |
| 12 | kubectl-ate | kubectl 插件 CLI:管理 Actor 生命周期、列出 Worker | 指挥棒 |
架构细节可对照 docs/architecture.md#L305-L367,atenet 部署细节在 cmd/atenet/README.md。
四、生命周期三件套:Suspend、Pause、Resume
这是理解 Agent Substrate 的钥匙,三个词对应 docs/glossary.md#L79-L91:
- Suspend(冬眠):把运行中或已暂停的 Actor 变成对象存储里的持久快照,所在 Worker 随即释放——资源彻底回收。
- Pause(小憩):短期检查点,快照文件留在节点上不上传,下一次 Resume 会优先调度回原节点,恢复更快。
- Resume(唤醒):把挂起/暂停的 Actor 恢复到某个 Worker。常规路径是"从快照恢复"而非冷启动,这就是 <sub-500ms 唤醒的来源。
状态机全景(SUSPENDED → RESUMING → RUNNING → PAUSED…)见 docs/architecture.md#L404-L416。
五、快照四兄弟:状态如何"存得住"
13. Golden Snapshot:模板的"出厂快照"
创建ActorTemplate时做一次"黄金启动"并拍下初始检查点,之后该模板的每个 Actor首次唤醒都默认从这份共享快照恢复,而不是冷启动镜像——这是"秒醒"的另一半秘密。它永远是Full作用域。
出处:docs/glossary.md#L145-L150
14. 两个快照作用域:Full 与 Data
Full:进程内存 + rootfs 增量 + DurableDir 卷,恢复即"热启动"。Data:只留 DurableDir 应用数据,丢掉内存和 rootfs,用来低成本持久化数据。
它们通过onPause/onCommit按触发时机配置,且onCommit必须是onPause的子集。与之配套的还有DurableDir 卷(跨挂起/恢复保留的应用数据目录,micro-VM 模板可挂多个、gVisor 目前限一个)和Last Snapshot(Actor 最近一次的个人快照,用于下次 Resume)。
出处:docs/glossary.md#L93-L156
快照最终落在Snapshot storage(GCS 或 S3 对象存储),保证状态跨集群持久、可移植。
15. "Uniform DNS Mesh":统一的 Actor 寻址路由
最后说清标题里的"Uniform DNS Mesh"。它是社区对 Substrate 网络层(atenet)能力的形象称呼:任何 Actor 都可以用统一的atespace/actor名字被寻址——调用方只需在 HTTP 头带上ate-target-actor: <atespace>/<actor>,atenet-router就会负责定位 Actor、必要时触发 Resume,再通过 mTLS 隧道把请求送到正确 worker Pod 里的 Actor。对使用者来说,就像一张"名字即路由"的均匀网格:你不用知道 Actor 现在物理上在哪个 Pod,像用 DNS 一样用名字访问即可。
出处:docs/glossary.md#L158-L162、docs/architecture.md#L340-L367
15 个关键词速查表
| # | 关键词 | 类别 | 一句话 |
|---|---|---|---|
| 1 | ActorTemplate | 声明式资源 | Actor 的不可变"类定义" |
| 2 | WorkerPool | K8s CRD | 预热 worker Pod 池 |
| 3 | SandboxConfig | K8s CRD | 钉住沙箱运行时版本 |
| 4 | Atespace | 动态记录 | Actor 的隔离命名空间 |
| 5 | Actor | 动态记录 | 被挂起/恢复的核心实例 |
| 6 | Worker | 动态记录 | 一个 worker Pod 的记录 |
| 7 | ate-api-server | 组件 | 控制面大脑 |
| 8 | atecontroller | 组件 | CRD 调谐器 |
| 9 | atelet | 组件 | 节点级 DaemonSet 监督者 |
| 10 | ateom | 组件 | worker Pod 内的沙箱驱动 |
| 11 | atenet | 组件 | Actor 感知路由与唤醒 |
| 12 | kubectl-ate | 组件 | 命令行操作入口 |
| 13 | Golden Snapshot | 快照 | 模板出厂的共享快照 |
| 14 | Full / Data 作用域 | 快照 | 全量热恢复 vs 只存数据 |
| 15 | Uniform DNS Mesh | 网络 | 按名字统一寻址 Actor |
📌小结:抓住一条主线就够了——ActorTemplate 定义类 → Actor 是实例 → 请求经 atenet 路由并 Resume 到 Worker → 空闲后 Suspend 成快照,其余术语都是这条主线上的配角。想动手验证,可以直接跑 Counter Demo:它用一个有状态的计数器演示了挂起/恢复下的状态保持与按需唤醒,源码在 demos/counter/。
【免费下载链接】substrateAgent Substrate: the core system项目地址: https://gitcode.com/GitHub_Trending/substrate7/substrate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考