
Google's AX (Agent Executor) is an open-source runtime that runs AI agent tasks in isolated sandboxes on Kubernetes. Instead of handing every agent full server permissions, you define the workspace, the network access, and the model each task can use. The project, google/ax, is released under the Apache-2.0 license and was introduced on the Google Cloud blog on May 20, 2026.
After v0.3.0 shipped on September 20 at 12:33 KST, the repo gained about 1,500 stars in a single day on GitHub Trending on September 24. As of September 25, it had 9,968 stars in total.
Task, Workspace, Gateway, and Model
In AX, a Task is the agent job to run, a Workspace is the repo and files attached to the job, a Gateway is the network boundary, and a Model holds the model and its credentials. You declare these resources in YAML, deploy the job, and watch its status. The AX controller coordinates the work, while the event log and the executor carry each step forward inside the cluster.

1. Run tasks in a sandbox
For each Task you set CPU and memory, the Workspace to attach, and the goal. The example below attaches a Go repo as the workspace, deploys the Task, and checks its status.
apiVersion: ax.io/v1alpha1
kind: Workspace
metadata:
name: golang
spec:
git:
- repo: https://github.com/golang/go.git
branch: "my-fix"
---
apiVersion: ax.io/v1alpha1
kind: Task
metadata:
name: test
spec:
workspaces:
- name: golang
goal: "Ensure that Go tool chain is available and is built from source"
debug: trueax apply -f task.yaml
ax get tasks
ax watch task testEach Task runs as an isolated unit. Use ax get tasks to list registered tasks and ax watch task test to follow the progress of the test task.
2. Control outbound hosts with a Gateway
A Gateway resource lets you declare an egress allowlist, which sets the external hosts and ports an agent can reach. For example, this config allows HTTPS connections to the Anthropic API:
apiVersion: ax.io/v1alpha1
kind: Gateway
metadata:
name: default-gateway
namespace: default
spec:
listeners:
- name: grpc
port: 8494
protocol: gRPC
egress:
allowlist:
hosts:
- host: "api.anthropic.com"
port: 443A per-host allowlist lets you manage, in the task config, which routes an agent can use to reach model APIs and other services it needs.
3. Save checkpoints and resume work
To pause a long-running job, use suspend. Restarting from the saved state lets you pick up the work where it left off.
ax suspend task task123
ax resume task task1234. SSH into a running sandbox
Setting debug: true in the Task config lets you inspect the runtime environment. Run ax ssh followed by the task ID and --, then the command to run inside the sandbox.
ax ssh task123 -- ls -la /workspaceThis is handy for checking files or processes directly. Terminal commands run in the /workspace path, where the Task's Workspace is attached.
Connect Gemini and Claude models
In a Model resource, you specify the provider, the model ID, and the key from a Kubernetes Secret. For example, a Gemini config looks like this:
apiVersion: ax.io/v1alpha1
kind: Model
metadata:
name: default-model
namespace: default
spec:
provider: google
model: gemini-3.8-flash
secretKey:
name: gemini-api-secret
key: GEMINI_API_KEYThe AX repo includes examples for connecting Google Gemini and Anthropic Claude. You reference the API key as a Secret and link the Model resource to the Task's run settings.

Install and deploy to a cluster
You install the AX CLI with the Go toolchain. To deploy the control plane, you need a Kubernetes cluster, the Agent Substrate Control API, a container registry, and ko.
go install github.com/google/ax/cmd/ax@latest
brew install ko
make deploy AX_IMAGE_REPO=<your-registry>The official site, agentexecutor.io, sums up the flow from declaring a task to running it on a cluster with the line "Declare an agentic task. AX runs it at scale." You can find the resources and commands in the GitHub repo README and the manifests guide.
