Skip to content

AI agent subsystem

The cheapest, most boring way to run coding agents on Kubernetes. Create an Agent; the controller runs Claude Code, Codex or Gemini CLI and writes the result to its status.

ai-agent-subsystem turns “run a coding agent” into a declarative Kubernetes operation. You describe what the agent should do (a recipe), where it runs (a runtime template), and which run you want (parameters). A controller reconciles each run into a Kubernetes Job, supervises it, streams its output, and records the result on the resource’s status. Kubernetes stays the single source of truth.

Half-price runs, no pod

execution: batch sends the prompt to the vendor’s batch API (Anthropic, OpenAI or Gemini) at about half the price and records the answer on the Agent. See batch runs.

A signed, pinned install

One install.yaml per release: images pinned by digest, cosign-signed, with SBOMs and SLSA provenance. Non-root, read-only root filesystem, NetworkPolicy. No cert-manager.

Kubernetes is the API

No database, no backend service, no UI to host. Your RBAC, quotas, GitOps and audit logs already cover it.

You never touch D

The CRDs are the API. Typed TypeScript contracts are generated from the same source, so they cannot drift. D matters only to contributors changing the API.

Everything is built from three Custom Resources that reference each other in a chain:

flowchart LR
    AD["AgentDefinition<br/>the recipe"] -->|agentDefRef| ST["Station<br/>the runtime"]
    ST -->|stationRef| AG["Agent<br/>one run"]
    AG -->|controller creates| JB["Job → Pod"]
    classDef ad fill:#2f5fd8,color:#fff,stroke:#16224f;
    classDef st fill:#3f7be0,color:#fff,stroke:#16224f;
    classDef ag fill:#5b93ec,color:#fff,stroke:#16224f;
    class AD ad
    class ST st
    class AG ag

AgentDefinition

The recipe: prompt template, model, allowed tools, permissions, and output sinks.

Station

The runtime: a Pod template plus a recipe reference and run-history limits.

Agent

One run: a Station reference, parameters, and a status that tracks the lifecycle.

Controller

Watches Agents, builds Jobs, patches status, and prunes old runs.