NOTE: This is not an officially supported Google product. This project is not eligible for the Google Open Source Software Vulnerability Rewards Program.
Agent substrate is a system built on top of Kubernetes which manages agent-like workloads to achieve higher scale and efficiency than Kubernetes alone can offer, with lower latency. It builds on top of Kubernetes features like Pods and Pod autoscaling, but takes the Kubernetes control-plane out of the critical path to achieve lower latency.
It can run on any Kubernetes cluster and does not inhibit “regular” use of Kubernetes in any way. Kubernetes provides the infrastructure provisioning and management for all types of workloads, while Agent Substrate provides agent-specific scheduling and control.
At its core, Agent Substrate maps a larger set of “actors” (applications such as agents) onto a smaller set of ready “workers” (Kubernetes Pods), relying on the fact that agent-like applications tend to be idle most of the time to achieve heavy multiplexing. It provides functionality to manage an actor’s lifecycle (e.g. create/destroy, suspend/resume), to assign actors to workers in real time, and to route incoming traffic to them.
Agent Substrate is intended to be a low-opinion system. The workloads it manages don't have to be literal AI agents, but those are the best example of the kind of applications it is designed for. It is not an SDK for building agents, but rather a system for running them at scale.
Watch the Agent Substrate cluster multiplex ~250 stateful actor sessions across just 8 physical pods.
This demo highlights the core developer experience and "Agentic Infrastructure" capabilities of Substrate:
To reproduce this demo in your own cluster, please refer to the detailed walkthroughs in the Counter Demo and Secret Agent Demo.
For more videos and walkthroughs, visit our YouTube channel: agent-substrate.
Agent Substrate is designed to be framework and agent harness agnostic. Because it manages standard OCI containers at the kernel level (via gVisor), it can host agents built on any stack.
Agent Substrate is currently in VERY early development. It is not ready for production use, and the APIs are almost guaranteed to change. We are not making any guarantees about backward compatibility at this stage, and everything in this project may be changed.
For announcements, technical discussions, and community support, please join the ate-dev Google Group.
Please see CONTRIBUTING.md for guidelines on contributing to the project. We welcome contributions of all kinds, but the project is VERY young. Our immediate focus is on building out the core system and demos, so we may not be able to review or merge contributions that don't align with those goals in the near term.
To quickly set up the complete environment:
Make sure you have kind, kubectl, and docker installed and configured on your dev machine.
Run the following steps:
# create cluster and local registry
hack/create-kind-cluster.sh
# install ate, valkey, rustfs
hack/install-ate-kind.sh --deploy-ate-system
# install counter demo
hack/install-ate-kind.sh --deploy-demo-counter
# install kubectl-ate
go install ./cmd/kubectl-ate
# create a counter actor and demo it
kubectl ate create actor my-counter-1 --template ate-demo-counter/counter
kubectl port-forward -n ate-system svc/atenet-router 8000:80 &
curl -X POST -H "Host: my-counter-1.actors.resources.substrate.ate.dev" -i http://localhost:8000/
# Edit .ate-dev-env.sh to match your project and preferences, then source it: source .ate-dev-env.sh ```
Enable application-default credentials for gcloud:
bash
gcloud auth application-default login --project=${PROJECT_ID}
Provision the required GCP resources (GKE cluster, Redis, GCS, and IAM bindings):
bash
go run ./cmd/setup --all
Deploy the Agent Substrate system to your cluster (remember to navigate back to root directory of this repo before running the following commands):
bash
./hack/install-ate.sh --deploy-ate-system
You can then deploy the sample applications. See demos/counter/README.md or demos/sandbox/README.md for detailed walkthroughs.
bash
./hack/install-ate.sh --deploy-demo-counter
You can run individual setup steps to create GCP resources as needed. See go run ./cmd/setup --help for available options. For example:
go run ./cmd/setup --create-cluster
go run ./cmd/setup --create-gvisor-node-pool
Similarly, you can deploy or cleanup specific Agent Substrate components using the installation script. See ./hack/install-ate.sh --help for all options.
# Re-deploy only ate-apiserver of the ATE system
./hack/install-ate-kind.sh --deploy-ate-apiserver
# Delete everything (core system and all demos)
./hack/install-ate-kind.sh --delete-all
If you need to delete the resources created by the setup script, you can use the provided script hack/teardown.sh. This script will delete resources in the reverse order of creation and handles partial failures gracefully.
./hack/teardown.sh --all
Or run individual teardown steps as needed (see ./hack/teardown.sh for available options).
We provide several sample applications demonstrating Agent Substrate's capabilities:
kubectl-ate.$ claude mcp add substrate \
-- python -m otcore.mcp_server <graph>