Agent Tools & Step Types
Pluggable modules that extend agent capabilities with actions like HTTP requests, email, file operations, browser automation, MCP calls, branching, and agent delegation.
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 / Agent Step
Invoke an AI agent with a prompt, tools, and context. Returns structured reasoning and output.
{ "type": "llm", "prompt": "Analyze this data..." }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 Automation
Send emails via SMTP or fetch emails using IMAP. Supports attachments and templates.
{ "type": "email", "to": "user@example.com", "subject": "Report" }File Operations
Read, write, or delete files. Supports JSON, CSV, TXT, and binary formats.
{ "type": "file", "action": "write", "path": "/data/output.json" }Browser Automation
Scrape websites, fill forms, take screenshots using headless Playwright.
{ "type": "browser", "action": "navigate", "url": "https://example.com" }Delay / Wait
Pause workflow execution for a specified duration or until a condition is met.
{ "type": "delay", "duration": 5000 }Document Query
Query a document in the knowledge base using RAG retrieval.
{ "type": "document_query", "documentId": "doc_123", "query": "..." }MCP Tool Call
Call a tool exposed by an MCP server.
{ "type": "mcp", "serverId": "my-server", "toolName": "search" }Condition
Branch execution based on a boolean expression with if_true and if_false paths.
{ "type": "condition", "operator": "==", "value": "200", "if_true": [...], "if_false": [...] }Switch
Route execution to one of multiple cases based on a value.
{ "type": "switch", "cases": { "success": [...], "error": [...] } }Human Approval
Pause the workflow and wait for human approval before proceeding.
{ "type": "approval", "approvalMessage": "Approve this action?" }Agent Call
Delegate execution to a specialized AI agent.
{ "type": "agent_call", "agentId": "agent_001", "input": "..." }Built-in Tool Integrations
In addition to step types, the platform registers 8 built-in tools through the dynamic tool registry. These tools run in a sandboxed child process with configurable timeouts and environment restrictions.
Send emails via SMTP using configured MAIL_HOST, MAIL_PORT, MAIL_USER, MAIL_PASS.
file
Read, write, append, and list files. Configurable FILE_BASE_DIR for sandboxing.
browser
Navigate pages, evaluate scripts, take screenshots using Puppeteer/Playwright.
github
Interact with GitHub APIs using GITHUB_TOKEN.
slack
Send messages to Slack using SLACK_WEBHOOK_URL.
discord
Send messages to Discord using DISCORD_WEBHOOK_URL.
hackerNews
Fetch top stories and comments from Hacker News.
sandbox
Execute arbitrary code in an isolated child process with UID/GID restrictions.
Building Custom Tools
You can extend the platform by writing custom tool executors in Node.js. Each tool must export a meta object and a run(step, context) function. The tool is registered automatically when placed in backend/src/tools/.