# OttoFlow

A Kubernetes-native workflow engine that executes AI-assisted operations as a directed acyclic graph of deterministic steps, calling an LLM only for the analysis step rather than giving an agent open-ended cluster access.

OttoFlow lets a workflow be defined as a Kubernetes custom resource and executed as a DAG that mixes deterministic CEL expressions, PromQL, Kubernetes API queries, and LLM agent steps, restricting model calls to the steps that genuinely need them. Data collection, aggregation, and publication stay deterministic, and the model sees computed summaries rather than raw tool output that would blow its context.

The project codifies a collect-analyze-publish pattern common to Kubernetes agentic applications, arguing that handing the entire loop to an unconstrained agent with cluster access makes every run non-deterministic, widens the attack surface, and raises token cost. It supports multiple LLM providers, including local models through vLLM, integrates with Kagent over the A2A protocol and with OpenTelemetry, and includes a CLI for running workflows locally against a kubeconfig.

It installs as a Homebrew-tapped CLI and ships ready-to-run sample workflows.

Website: https://github.com/nirmata/ottoflow
