Step Types

Agent Tools & Step Types

Pluggable modules that extend agent capabilities with actions like HTTP requests, email, file operations, and more.

Available Step Types

The platform supports a rich library of built-in step types. Each type is designed to handle a specific automation task with full error handling and logging.

LLM

LLM / Agent Step

Invoke an AI agent with a prompt, tools, and context. Returns structured reasoning and output.

{ "type": "agent", "prompt": "Analyze this data..." }
HTTP

HTTP Request

Make REST API calls with full support for headers, authentication, and response parsing.

{ "type": "http", "method": "GET", "url": "https://api.example.com" }
EMAIL

Email Automation

Send emails via SMTP or fetch emails using IMAP. Supports attachments and templates.

{ "type": "email", "to": "user@example.com", "subject": "Report" }
FILE

File Operations

Read, write, or delete files. Supports JSON, CSV, TXT, and binary formats.

{ "type": "file", "action": "write", "path": "/data/output.json" }
BROWSER

Browser Automation

Scrape websites, fill forms, take screenshots using headless Playwright.

{ "type": "browser", "action": "navigate", "url": "https://example.com" }
DELAY

Delay / Wait

Pause workflow execution for a specified duration or until a condition is met.

{ "type": "delay", "duration": 5000 }

Conditional Logic & Branching

Use conditional steps to create dynamic workflows that adapt based on previous step outputs or external data.

conditional-example.json
{
  "type": "condition",
  "condition": "{{steps.api_call.output.status}} === 200",
  "if_true": [
    { "type": "email", "to": "success@example.com", "subject": "Success!" }
  ],
  "if_false": [
    { "type": "email", "to": "error@example.com", "subject": "Failed" }
  ]
}

Building Custom Tools

You can extend the platform by writing custom tool executors in Node.js. Each tool receives structured input, executes its logic, and returns validated output. See the /src/runner/executors directory in the repository for examples.