Skip to main content

The Five Circus Nodes

Circus gives you five nodes. Before diving into any one of them, here's the whole cast and where each belongs in a workflow — so the detailed articles that follow have a frame to hang on.

The cast

  • Init (input) — sets up the shared execution context that every other Circus node reads. It goes directly after your Webhook trigger, validates the incoming request, and registers that the run has started. Nothing else works without it.
  • Agent (output) — runs operator-controlled AI. You tell it which agent to act as (by slug); it reads the run's snapshot to find the model, prompt, and parameters the operator configured, calls the AI provider, logs the result, and checks the run's limits. No model or prompt is hardcoded in your workflow.
  • Log (output) — records a step you performed yourself (typically a service/HTTP call or an internal computation), reporting its consumption so the platform can cost it and check thresholds.
  • Complete (output) — marks the run successful and hands back all result artifacts. It's the last node of the success branch.
  • Terminate (output) — marks the run failed. It's the last node of an error branch.

Where they sit

A typical workflow has this skeleton:

  1. Webhook triggerInit — the entry point.
  2. The work — Agent nodes for AI steps, and your own HTTP nodes paired with Log nodes for everything else — flowing down the success path.
  3. Complete — the final node of the success path.
  4. An error branch that ends in Terminate — for failures your workflow catches and wants to report.

A useful mental split: Init sets things up; Agent and Log do and report work; Complete and Terminate end the run — one for success, one for failure. Note that Agent and Log can self-terminate if the run breaches its cost or time limits, so they double as enforcement points; Terminate is for the errors you handle explicitly. Each node gets its own article from here.