Skip to content

agenticdevops/aof

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

55 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AOF - Agentic Ops Framework

GitHub stars GitHub forks License Docs

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.

Why AOF?

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

Key Features

  • 🎯 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

Quick Install

Option 1: Cargo (Rust users)

cargo install aofctl

Option 2: Binary Download (Recommended)

# Auto-detect platform and install
curl -sSL https://docs.aof.sh/install.sh | bash

Or download manually from GitHub Releases.

30-Second Example

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?"

What Can You Build?

  • 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

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         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) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Documentation

πŸ“š Full documentation at docs.aof.sh

Example: Incident Response Flow

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

Star History

Star History Chart

Community & Support

⭐ Star us on GitHub - It helps more DevOps engineers discover AOF!

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

License

Apache 2.0 - See LICENSE for details.


Built by ops engineers, for ops engineers. πŸš€