Substrate 智能体底座

agent-substrate/substrate 访问 GitHub ↗
🔤 Go ★ 5673 ⑂ 0 monthly #16 (+3659) 抓取 2026-10-21

一句话简介

基于 Go 的智能体基础设施框架,提供代理构建、工具集成与运行时管理能力,帮助开发者快速搭建可扩展的 AI 代理系统。

标签

  • Go
  • AI 智能体
  • 基础设施
  • 框架
  • 工具集成

适用应用场景

  • 构建可扩展的 AI 代理系统
  • 集成外部工具与服务的代理运行时管理
  • 开发多智能体协作平台
  • 快速搭建自动化任务处理代理

README 中文摘要

项目概述

Agent Substrate 是面向自主智能体的 Kubernetes 零信任运行时,目标是在安全隔离数百万智能体及其工具的同时,将资源密度提升至普通容器的 10 倍。它支持 gVisor 与 Cloud Hypervisor microVM,为每个执行体提供独立的计算、网络、存储和加密身份。智能体恢复时间低于 400 毫秒,每秒可执行超过 1500 次激活。

该项目不是智能体 SDK,而是一个低约束运行时。运行对象可以是任意有状态工作负载,但主要面向自主、不可信且大部分时间处于等待状态的智能体。它复用 Kubernetes 的 Pod、自动扩缩容与 NetworkPolicy,并增加智能体调度、快照恢复、身份和网络管控能力,使推理、训练和强化学习负载能够共享同一基础设施平面。

核心机制

Substrate 将大量有状态“执行体”映射到少量就绪工作节点。由于智能体通常长期等待模型、工具或人工输入,系统会将其内存状态快照并移出内存;请求到达时,再把执行体恢复到任意可用工作节点。

完整快照同时保存内存和文件系统,因此休眠、迁移和再次唤醒后,会话及工具状态仍然连续。工作节点支持 10 至 30 倍资源超售,仅在执行体实际推理或运行工具时消耗计算资源。

安全与网络架构

  • 虚拟机级隔离:每个执行体必须运行在独立的 gVisor 或 microVM 沙箱中,不支持普通 Linux 容器。
  • 短期加密身份:默认签发带执行体和 atespace 身份的 SPIFFE X.509 证书,并可按需生成 JWT,便于与外部身份系统联合。
  • 零凭据暴露:API 密钥、云令牌和身份凭据不会进入沙箱;出口网关仅向获批请求在沙箱外注入凭据。
  • 默认拒绝网络:执行体不能主动入站、横向访问其他执行体或控制平面,所有出站流量均受网关控制。
  • 边缘可插拔策略:出口网关充当外部策略执行点,可替换为自定义授权、DLP、提示注入扫描或云 IAM 引擎。

该运行时可承载 ADK、LangChain、Claude Code、Codex、Model Context Protocol 等框架或工具,无需修改其 SDK;MCP 服务也可作为独立执行体部署。

本地快速开始

需要安装 Go、kubectl 和 Docker;其他依赖由 Go 管理。

# 创建 kind 集群和本地镜像仓库
hack/create-kind-cluster.sh

# 安装核心系统、PostgreSQL、rustfs 及计数示例
hack/install-ate-kind.sh deploy ate-system \
  --credential-provider='{"name":"k8s.io"}'
hack/install-ate-kind.sh deploy demo-counter

# 安装管理插件并创建有状态执行体
go install ./cmd/kubectl-ate
kubectl ate create actor my-counter-1 \
  -a ate-demo-counter --template counter

# 转发路由服务
kubectl port-forward -n ate-system svc/atenet-router 8000:80

随后可在另一终端发送请求:

curl -X POST \
  -H "ate-target-actor: ate-demo-counter/my-counter-1" \
  -i http://localhost:8000/

内置凭据提供器采用默认拒绝策略。必须向目标 atespace 授权可读取的命名空间,执行体才能获得注入凭据。

GKE 部署与配置

复制并加载开发环境配置,然后登录 gcloud、初始化 GCP 资源并部署系统:

cp hack/ate-dev-env.sh.example .ate-dev-env.sh
source .ate-dev-env.sh

gcloud auth application-default login --project=${PROJECT_ID}
go run ./tools/setup-gcp bootstrap

go run ./cmd/ate-setup deploy ate-system \
  --credential-provider='{"name":"k8s.io"}'
go run ./cmd/ate-setup deploy demo demo-counter

{"name":"k8s.io"} 会部署 Kubernetes Secrets 提供器及仅允许出口网关访问的 NetworkPolicy;{"enabled":false} 可关闭出口凭据注入。也可在 .ate-dev-env.sh 中通过 ATE_CREDENTIAL_PROVIDER 设置同一选项。

资源可分步创建:

go run ./tools/setup-gcp create cluster
go run ./tools/setup-gcp create bucket

删除 GCP 或本地环境:

./hack/teardown.sh --all
./hack/delete-kind-cluster.sh

核心组件与示例

核心服务包括提供 gRPC 控制接口的 ateapi、管理节点工作负载和快照的 atelet、协调 WorkerPool 的 atecontroller,以及提供 OIDC/JWT 发现与验证能力的 ate-idp-server。网络层 atenet 负责路由和代理;ateworker-gvisor 与 ateworker-microvm 分别执行 gVisor 和 microVM 工作负载。kubectl-ate 用于管理执行体、模板、工作池及相关资源。

示例涵盖状态保存与按需恢复、隔离 Shell 环境、多智能体复用、跨 atespace 共享工作池,以及工作池繁忙时的请求等待。项目目前处于 1.0 之前,API 与行为仍可能发生不兼容变更。

摘要更新于 2026-10-21 00:37:28 · 原文 18458 字符 · md5 bb36deaadc38…