AgentWorkflow CRD lets you describe a multi-step AI pipeline entirely in YAML. When you apply an AgentWorkflow, the Flokoa operator compiles it into an Argo WorkflowTemplate — a reusable, versioned pipeline definition managed by Argo Workflows. Your pipeline can call deployed Agent CRs via the A2A protocol, run Marvin-powered tasks in ephemeral containers, execute arbitrary container workloads, make HTTP requests, and branch conditionally — all wired together as a directed acyclic graph (DAG) through dependsOn declarations.
AgentWorkflow requires Argo Workflows to be installed in your cluster. The operator compiles each AgentWorkflow into an Argo WorkflowTemplate. Individual pipeline runs are triggered by creating Argo Workflow resources that reference the generated template.API reference
Spec fields
params
Each parameter inspec.params has:
tasks
Each task inspec.tasks must have a name and exactly one task type:
Each task also supports:
Basic example
The following workflow takes a topic as input, calls a research agent to gather information, and then passes that output to a summarisation agent:Multi-task pipeline with conditional branching
Retry strategy
You can define a default retry strategy at the workflow level and override it per task:Status fields
After the operator compiles theAgentWorkflow into an Argo WorkflowTemplate, it updates the following status fields:
kubectl operations
Best practices
- Install Argo Workflows before creating AgentWorkflows — the operator depends on Argo CRDs being present. Verify with
kubectl get crd workflowtemplates.argoproj.io. - Name tasks clearly — task names appear in Argo’s UI and logs; descriptive names like
classify-intentmake pipelines much easier to debug thantask-1. - Use
paramsfor runtime inputs — avoid hard-coding values that change between runs directly in tasktextfields; parameterise them instead. - Set workflow and task timeouts — unbounded workflows can consume cluster resources indefinitely; always define a maximum duration.
- Define
retryStrategyat the workflow level and override only for tasks with special requirements — this keeps retry logic consistent and reduces verbosity. - Use
dependsOnto express ordering explicitly — do not rely on list order; the DAG is the source of truth for execution order. - Keep
serviceAccountNamein a dedicated ServiceAccount with the minimum RBAC permissions needed by workflow pods. - Version-control your
AgentWorkflowmanifests alongside theAgentCRs they call — changing an agent’s API without updating the workflow that calls it will cause runtime failures.
