[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:ax":3},"\u003Ch1>\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fgoogle\u002Fax\u002FHEAD\u002Fassets\u002Faxolotl.svg\" width=\"70\" align=\"absmiddle\" alt=\"AX axolotl\" \u002F>\n  AX\n\u003C\u002Fh1>\u003Cblockquote>\n\u003Cp>[!WARNING]\nAX and several of its features are in heavy development. We are actively\nrefining our core concepts, protocols, and specifications, and will likely\nintroduce major breaking changes prior to a stable release.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cstrong>Declare an agentic task with workspaces and model specifications. AX sandboxes it, wires up its workspace, and helps running it at scale.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>AX is a high-throughput, declarative orchestrator to run billions of autonomous agent workloads in a cluster. It runs on top of \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fagent-substrate\u002Fsubstrate\" rel=\"nofollow ugc noopener\">Agent Substrate\u003C\u002Fa> for sandboxed execution and is built to run billions of tasks per cluster. If you have used Kubernetes, \u003Ccode>ax\u003C\u002Fcode> will feel similar.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-yaml\"># task.yaml\napiVersion: ax.io\u002Fv1alpha1\nkind: Workspace\nmetadata:\n  name: golang\nspec:\n  git:\n    - repo: https:\u002F\u002Fgithub.com\u002Fgolang\u002Fgo.git\n      branch: \"my-fix\"\n---\napiVersion: ax.io\u002Fv1alpha1\nkind: Task\nmetadata:\n  name: test\nspec:\n  workspaces:\n    - name: golang\n      goal: \"Ensure that Go tool chain is available and is built from source\"\n  debug: true   # lets you `ax ssh` into the sandbox\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Then apply it, watch it come up, and look over the agent's shoulder:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">ax apply -f task.yaml\nax watch task test\nax ssh test -- ls -al \u002Fworkspace\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Why?\u003C\u002Fh2>\n\u003Cp>Agents are a new kind of workload. They are neither stateless microservices nor run-to-completion batch jobs. They accumulate state, need strict isolation, call out to model APIs and tool servers, and can burn money in a loop if nobody is watching. AX gives you three small primitives that handle all of that declaratively:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>You want to...\u003C\u002Fth>\n\u003Cth>AX gives you\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Run untrusted agent code in an isolated sandbox with CPU\u002Fmemory limits\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>\u003Ccode>Task\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Pre-wire Git repos, MCP servers, and skill packages so every agent starts warm\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>\u003Ccode>Workspace\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Configure which LLM the platform itself uses, with credentials from a Kubernetes secret\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>\u003Ccode>Model\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Pause an idle agent and pick up exactly where it left off\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>ax suspend\u003C\u002Fcode> \u002F \u003Ccode>ax resume\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Shell into a running agent to see what it is doing\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>ax ssh\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>Everything is expressed as \u003Ccode>ax.io\u002Fv1alpha1\u003C\u002Fcode> manifests and applied with a single command.\u003C\u002Fp>\n\u003Ch2>Quick start\u003C\u002Fh2>\n\u003Ch3>Prerequisites\u003C\u002Fh3>\n\u003Cp>AX schedules every task as a sandboxed actor on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fagent-substrate\u002Fsubstrate\" rel=\"nofollow ugc noopener\">Agent Substrate\u003C\u002Fa>, so Substrate must be running in your cluster before you deploy AX. You need:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>A Kubernetes cluster with \u003Cstrong>Agent Substrate\u003C\u002Fstrong> installed (see below)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgo.dev\u002Fdoc\u002Finstall\" rel=\"nofollow ugc noopener\">Go\u003C\u002Fa> and \u003Ccode>kubectl\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fko.build\u002F\" rel=\"nofollow ugc noopener\">\u003Ccode>ko\u003C\u002Fcode>\u003C\u002Fa> (\u003Ccode>brew install ko\u003C\u002Fcode>) and a container registry your cluster can pull from\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>To install Agent Substrate, follow the instructions in the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fagent-substrate\u002Fsubstrate#readme\" rel=\"nofollow ugc noopener\">Substrate README\u003C\u002Fa>. Substrate lands in the \u003Ccode>ate-system\u003C\u002Fcode> namespace and exposes its Control API at \u003Ccode>api.ate-system.svc.cluster.local:443\u003C\u002Fcode>, which is where AX expects to find it. Verify it is up before moving on:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">kubectl get svc api -n ate-system\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>1. Install the CLI\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-bash\">go install github.com\u002Fgoogle\u002Fax\u002Fcmd\u002Fax@latest\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This puts the \u003Ccode>ax\u003C\u002Fcode> binary in \u003Ccode>$(go env GOPATH)\u002Fbin\u003C\u002Fcode>. Make sure that directory is on your \u003Ccode>PATH\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3>2. Deploy the control plane\u003C\u002Fh3>\n\u003Cp>With the \u003Ca href=\"#prerequisites\" rel=\"nofollow ugc noopener\">prerequisites\u003C\u002Fa> in place — most importantly a reachable Agent Substrate Control API — deploy the AX control plane:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">make deploy AX_IMAGE_REPO=&lt;your-registry&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This deploys Redis, then builds and deploys the control plane images with \u003Ccode>ko\u003C\u002Fcode>. Everything lands in the \u003Ccode>ax-system\u003C\u002Fcode> namespace.\u003C\u002Fp>\n\u003Ch3>3. Run your first task\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-bash\">ax apply -f examples\u002Ftask.yaml       # Task + Workspace + Model in one file\nax get tasks\n# NAME      ATESPACE   PHASE     ACTOR           WORKER-IP    AGE\n# task123   default    Running   task123         10.20.3.67   1m\n\nax watch task task123                # stream phase and condition changes live\nax ssh task123 -- ls -la \u002Fworkspace \n\u003C\u002Fcode>\u003C\u002Fpre>\n",1790887797887]