Repolode
agent-substrate

agent-substrate/substrate

运行在 Kubernetes 上的零信任沙箱运行时,通过快照空闲 Agent 实现多个有状态 Agent 复用少量 Worker。

Star
5,550
Fork
604
未关闭 Issue
833
最近提交
13小时前

这是什么?

Agent Substrate 是一个在标准 Kubernetes 上运行大量不可信、多数时间处于空闲状态的 Agent 的运行时。每个 Actor 运行在 gVisor 或 Cloud Hypervisor microVM 沙箱中,拥有独立的计算、网络和存储。Actor 空闲时,其内存与文件系统状态会被快照保存下来,请求到达时再恢复,因此大量 Actor 可以共享一小组常驻 Worker Pod。

安全模型假定每个 Actor 对其他 Actor 都是敌对的。Actor 会获得短期有效的 SPIFFE X.509 身份,网络默认拒绝访问,且无法直接接触凭据。出站凭据由沙箱外的 atenet-egress 网关在已批准的请求中注入,该网关也可替换为自定义策略引擎。项目自称是低约束的运行时而非 Agent SDK,因此可以用 OCI 镜像承载 LangChain、ADK 等框架构建的工作负载。

项目目前处于 1.0 之前阶段,API 可能发生较大变化。仓库包含 kubectl-ate 命令行工具、控制面 API 服务、节点 DaemonSet,以及有状态计数器、多 Agent Claude Code 等示例。

核心功能

  • 01每个 Actor 运行在 gVisor 或 Cloud Hypervisor microVM 沙箱中。
  • 02空闲 Actor 的内存和文件系统会被快照,并按需恢复。
  • 03为每个 Actor 签发 SPIFFE X.509 身份和 JWT。
  • 04通过出站网关注入凭据,沙箱内代码无法接触凭据。
  • 05默认拒绝网络访问,入站流量经 atenet-router 路由。
  • 06基于标准 Kubernetes 运行,并提供 kubectl-ate 命令行工具。

适用场景

  • 托管大量有状态的编码 Agent,并在多次会话间保留文件系统状态。
  • 为 LLM Agent 运行不可信的工具调用,同时不暴露 API 密钥。
  • 将大量多数时间空闲的 Agent 或 MCP 服务器复用到少量 Worker Pod 上。
  • 在同一个 Kubernetes 集群中共享 Agent、推理和训练工作负载。

快速上手

  1. 1

    安装 Go、kubectl 和 Docker

  2. 2

    创建 kind 集群和本地镜像仓库

    hack/create-kind-cluster.sh
  3. 3

    安装 Agent Substrate、PostgreSQL 和 rustfs,然后安装计数器示例

    hack/install-ate-kind.sh --deploy-ate-system --credential-provider='{"name":"k8s.io"}'
  4. 4

    创建计数器 Actor,并通过路由器发送 HTTP 请求

    kubectl ate create actor my-counter-1 -a ate-demo-counter --template counter

使用前须知

  • 项目处于 1.0 之前阶段,不保证向后兼容,API 和行为可能发生较大变化。
  • 需要 Kubernetes 集群以及 Go、kubectl 和 Docker;运行超过约一千个沙箱的 Linux 主机需要调整内核参数。
  • GKE 路径依赖 Google Cloud 资源和 IAM 配置。
  • 凭据注入需要先手动授予命名空间策略,Actor 才能读取 Secret。

标签

常见问题

substrate 是什么?
运行在 Kubernetes 上的零信任沙箱运行时,通过快照空闲 Agent 实现多个有状态 Agent 复用少量 Worker。 Agent Substrate 是一个在标准 Kubernetes 上运行大量不可信、多数时间处于空闲状态的 Agent 的运行时。每个 Actor 运行在 gVisor 或 Cloud Hypervisor microVM 沙箱中,拥有独立的计算、网络和存储。Actor 空闲时,其内存与文件系统状态会被快照保存下来,请求到达时再恢复,因此大量 Actor 可以共享一小组常驻 Worker Pod。
substrate 可以免费使用吗?用的什么许可证?
substrate 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
substrate 还在维护吗?
活跃维护中。substrate 最近一次提交是在 2026年10月19日。
substrate 适合用来做什么?
托管大量有状态的编码 Agent,并在多次会话间保留文件系统状态。 为 LLM Agent 运行不可信的工具调用,同时不暴露 API 密钥。 将大量多数时间空闲的 Agent 或 MCP 服务器复用到少量 Worker Pod 上。 在同一个 Kubernetes 集群中共享 Agent、推理和训练工作负载。
substrate 怎么安装和运行?
安装 Go、kubectl 和 Docker 创建 kind 集群和本地镜像仓库: hack/create-kind-cluster.sh 安装 Agent Substrate、PostgreSQL 和 rustfs,然后安装计数器示例: hack/install-ate-kind.sh --deploy-ate-system --credential-provider='{"name":"k8s.io"}' 创建计数器 Actor,并通过路由器发送 HTTP 请求: kubectl ate create actor my-counter-1 -a ate-demo-counter --template counter
在哪里获取 substrate?
源代码和安装说明在 GitHub 上:https://github.com/agent-substrate/substrate

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目