Step Runner
The Step Runner is the heart of the platform — responsible for claiming tasks, executing workflow steps sequentially, managing context, and persisting results.
How the Runner Fits In
Database
Stores workflows, tasks, step definitions, logs, and schedules.
Scheduler
Creates tasks automatically based on cron or time-based triggers.
Step Runner
Claims tasks and executes steps in strict order.
Executor
Dispatches each step to the correct tool implementation.
Lifecycle of a Task
Polling
Runner polls for PENDING tasks that are ready to execute.
Claiming
Task is atomically marked RUNNING to prevent double execution.
Context Init
Initial execution context is created for the task.
Step Execution
Each step runs sequentially using the shared context.
Persistence
Step results and logs are written to the database.
Completion
Task is marked COMPLETED or FAILED.
Supported Step Types
LLM Step
Run prompts with context injection and memory support.
HTTP Step
Call external APIs with dynamic payloads.
File Step
Read and write files inside the sandboxed runtime.
Email Step
Send templated emails using workflow data.
Delay Step
Pause execution for a specified duration.
Browser Step
Take screenshots, evaluate scripts, extract content.
Execution Context & Memory
Every task maintains a mutable execution context that is passed between steps.
{{last}}references the previous step output- Named variables can be injected into prompts and payloads
- Agent memory can persist facts across multiple tasks
The Step Runner guarantees deterministic execution: each step runs only after the previous one completes successfully, with full access to all prior outputs.
Error Handling & Reliability
Failures
Errors are captured per step with stack traces and timestamps.
Retries
Steps can retry with backoff before marking the task as failed.