n8n for Agentic Ops - Build AI agents with Kubernetes-style YAML. No Python required.
AOF is a Rust-based framework that lets DevOps, SRE, and Platform engineers build and orchestrate AI agents using familiar YAML specifications and kubectl-style CLI commands.
⭐ If you find AOF useful, please star this repo! It helps us reach more developers.
If you know Kubernetes, you already know how to use AOF.
| Traditional AI Frameworks | AOF |
|---|---|
| Write Python code (LangChain, CrewAI) | Write YAML specs |
| Learn new programming paradigms | Use kubectl-style CLI |
| Complex dependency management | Single binary, no dependencies |
| Limited tooling integration | Native MCP support + Shell/HTTP/GitHub |
- 🎯 YAML-First: Define agents like K8s resources - no code required
- 🛠️ MCP Tooling: Native Model Context Protocol support for extensible tools
- 🔀 Multi-Provider: OpenAI, Anthropic, Google Gemini, Ollama, Groq - switch with one line
- 📊 AgentFlow: n8n-style visual DAG workflows for complex automation
- 🚀 Production Ready: Built in Rust for performance and reliability
- 🔧 Ops-Native: kubectl-style CLI that feels familiar
cargo install aofctl# Auto-detect platform and install
curl -sSL https://docs.aof.sh/install.sh | bashOr download manually from GitHub Releases.
Create your first agent:
# Set your API key
export OPENAI_API_KEY=sk-...
# Create a simple agent
cat > my-agent.yaml <<EOF
apiVersion: aof.dev/v1
kind: Agent
metadata:
name: k8s-helper
spec:
model: openai:gpt-4
instructions: |
You are a helpful Kubernetes expert. Help users with kubectl commands,
troubleshoot pod issues, and explain K8s concepts clearly.
tools:
- shell
EOF
# Run it interactively
aofctl run agent my-agent.yaml
# Or with a query
aofctl run agent my-agent.yaml -i "How do I check if my pods are running?"- Slack Bots: Auto-respond to incidents, answer questions
- Incident Response: Auto-remediation workflows with human-in-the-loop
- PR Reviewers: Automated code review and feedback
- Daily Reports: Scheduled cluster health checks and summaries
- On-Call Assistants: Diagnose and fix issues automatically
┌─────────────────────────────────────────────────────────────┐
│ aofctl CLI │
│ (kubectl-style user interface) │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
┌───────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐
│ Agent │ │ AgentFleet │ │ AgentFlow │
│ (Single AI) │ │ (Team of AIs) │ │ (Workflow DAG) │
└───────┬────────┘ └────────┬────────┘ └────────┬────────┘
│ │ │
└─────────────────────┼─────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
┌───────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐
│ LLM Providers │ │ MCP Servers │ │ Integrations │
│(OpenAI/Claude/ │ │ (kubectl/git) │ │(Slack/PagerDuty/ │
│ Gemini/Ollama) │ │ │ │Discord/Telegram) │
└────────────────┘ └─────────────────┘ └─────────────────┘
📚 Full documentation at docs.aof.sh
- Getting Started - 5-minute quickstart guide
- Core Concepts - Understand Agents, Fleets, and Flows
- Tutorials - Step-by-step guides
- CLI Reference - Complete CLI documentation
- Examples - Copy-paste ready YAML files
apiVersion: aof.dev/v1
kind: AgentFlow
metadata:
name: incident-response
spec:
trigger:
type: Webhook
config:
path: /pagerduty
nodes:
- id: diagnose
type: Agent
config:
agent: k8s-diagnostic-agent
- id: auto-fix
type: Agent
config:
agent: remediation-agent
conditions:
- severity != "critical"
- id: human-approval
type: Slack
config:
channel: "#sre-alerts"
message: "Critical issue detected. Approve fix?"
conditions:
- severity == "critical"
connections:
- from: diagnose
to: auto-fix
- from: diagnose
to: human-approval- Documentation: docs.aof.sh
- GitHub: github.com/agenticdevops/aof
- Issues: Report bugs or request features
- Discussions: Join the community
⭐ Star us on GitHub - It helps more DevOps engineers discover AOF!
We welcome contributions! See CONTRIBUTING.md for guidelines.
Apache 2.0 - See LICENSE for details.
Built by ops engineers, for ops engineers. 🚀