Aegis Orchestrator
Reference

Workflow Manifest Reference

Complete field-by-field specification for the Workflow YAML format.

Workflow Manifest Reference

This page is the authoritative reference for all fields in an AEGIS workflow manifest YAML file.


Annotated Full Example

apiVersion: 100monkeys.ai/v1
kind: Workflow

metadata:
  name: dev-pipeline
  labels:
    stage: production

spec:
  initial_state: requirements       # required; name of the first state to enter

  # Optional default values for Blackboard keys at execution start
  blackboard_defaults:
    language: python
    test_framework: pytest

  states:

    requirements:
      kind: Agent                   # StateKind: Agent | System | Human | ParallelAgents
      agent_id: requirements-agent  # required for Agent kind; deployed agent name or ID
      timeout_secs: 180
      transitions:
        - condition:
            field: requirements.status   # Blackboard key path (dot-separated)
            operator: eq                  # eq | ne | gt | gte | lt | lte | contains
            value: success
          target: approve_requirements
        - target: failed                  # unconditional (no condition) = default fallback

    approve_requirements:
      kind: Human
      timeout_secs: 86400
      transitions:
        - condition:
            field: approve_requirements.decision
            operator: eq
            value: approved
          target: implement
        - condition:
            field: approve_requirements.decision
            operator: eq
            value: rejected
          target: failed
        - target: failed              # timeout fallback

    implement:
      kind: Agent
      agent_id: coder-agent
      timeout_secs: 600
      # Inject Blackboard values into the agent's task context via Handlebars templates
      input_template: |
        Implement in {{blackboard.language}} using {{blackboard.test_framework}}.
        Requirements: {{blackboard.requirements.output}}
      transitions:
        - condition:
            field: implement.status
            operator: eq
            value: success
          target: parallel_review
        - target: failed

    parallel_review:
      kind: ParallelAgents
      agents:
        - security-reviewer
        - performance-reviewer
        - style-reviewer
      timeout_secs: 600
      transitions:
        - condition:
            field: parallel_review.all_succeeded
            operator: eq
            value: "true"
          target: done
        - target: failed

    done:
      kind: System
      command: "echo 'Pipeline complete. Results in /workspace/output.'"
      transitions: []               # empty = terminal state; workflow completes

    failed:
      kind: System
      command: "echo 'Pipeline failed'"
      transitions: []               # terminal state

Field Reference

Top-Level Fields

FieldTypeRequiredDescription
apiVersionstringMust be 100monkeys.ai/v1.
kindstringMust be Workflow.
metadataobjectManifest metadata.
specobjectWorkflow specification.

metadata

FieldTypeRequiredDescription
namestringUnique workflow name. Must be lowercase alphanumeric with hyphens.
labelsmap[string]stringArbitrary key-value labels.

spec

FieldTypeRequiredDescription
initial_statestringName of the first state to enter when the workflow starts.
blackboard_defaultsmap[string, any]Default Blackboard values at execution start.
statesmap[string, WorkflowState]Map of state name → state definition. Must contain initial_state.

spec.states[*] — Common Fields

FieldTypeRequiredDefaultDescription
kindstringAgent | System | Human | ParallelAgents
timeout_secsinteger300Maximum time to wait in this state before evaluating transitions.
transitionsobject[]List of transition rules. Evaluated in order.

spec.states[*] — Kind-Specific Fields

kind: Agent

FieldTypeRequiredDescription
agent_idstringDeployed agent name or UUID.
input_templatestringHandlebars template for the agent's task input. Variables: {{blackboard.<key>}}, {{input.<key>}}, {{execution.id}}.

The agent executes the full 100monkeys loop (up to its max_iterations). When it completes, the following is written to the Blackboard under the state name:

{
  "status": "success" | "failed",
  "output": "<agent's final text output>",
  "score": 0.91,
  "iterations": 2
}

kind: System

FieldTypeRequiredDescription
commandstringShell command to run on the orchestrator host. Handlebars templates supported.

System states run the command on the orchestrator host (not inside a container). Output is written to the Blackboard as {state_name}.stdout and {state_name}.exit_code.

kind: Human

No additional fields. The workflow suspends and waits for a signal via:

aegis workflow signal <workflow-execution-id> \
  --state <state-name> \
  --decision <value>

The signal payload is written to Blackboard[state_name] as-is and transition conditions are evaluated. The decision key is a convention; any JSON-serializable payload is accepted.

kind: ParallelAgents

FieldTypeRequiredDescription
agentsstring[]List of deployed agent names or UUIDs to run concurrently.

All agents start simultaneously. The state waits for all to complete or for timeout_secs to elapse. Results are written to the Blackboard as:

{
  "all_succeeded": true | false,
  "results": {
    "<agent-name>": {"status": "success", "output": "...", "score": 0.91}
  }
}

spec.states[*].transitions[]

FieldTypeRequiredDescription
conditionobjectIf absent, this is an unconditional (default) transition.
condition.fieldstringDot-separated path into the Blackboard. E.g., requirements.status, blackboard.language.
condition.operatorstringeq | ne | gt | gte | lt | lte | contains
condition.valuestringValue to compare against. Numeric comparisons are coerced from string.
targetstringName of the state to transition to. Must exist in spec.states.

Evaluation order: transitions are evaluated top-to-bottom. The first matching transition is taken. An unconditional transition (no condition) always matches and should be placed last as a default/fallback.

Terminal states: A state with an empty transitions list (transitions: []) is a terminal state. When reached, the workflow execution completes with status completed.


Blackboard Template Variables

Template VariableValue
{{blackboard.<key>}}Any top-level Blackboard key
{{blackboard.<state>.<field>}}Output field from a completed state (e.g., {{blackboard.requirements.output}})
{{input.<key>}}Key from the workflow's start input
{{execution.id}}Workflow execution UUID
{{workflow.name}}Workflow name

On this page