DocsWorkflowsComponents

Components

The Awee workflow engine. Portable, human- and LLM-readable automations wired with template expressions and run anywhere.

The Awee engine runs automation workflows. A workflow is a portable, declarative definition, an ordered list of steps where each step runs one component and every output flows to the steps that come after it through sintax template expressions. The same definition reads clearly to people and to language models, runs the same on any operating system, and is launched from a command-line app, a REST API, or the web app.

It is the engine behind Awee, the automation platform. The core runtime, control flow, and the file, HTTP, inference, and control components are built in. The App components connect a workflow straight to the Awee data platform.

Tip

New here? Start with Workflow anatomy and the guides beside it in the sidebar for a tour of the whole engine, the workflow format, templates, control flow, inference, execution plans, cost accounting, and modular composition. This page is the component reference, one page per step with its full options and outputs.

Awee pairs a static, inspectable execution plan with model-powered steps, per-run cost accounting, and multi-currency reporting, so an automation stays auditable even when a model is in the loop.

How it works

Workflow definition

An ordered list of steps, readable by people and models alike.

PlannerExecutionPlan

Compiles the definition into a static plan with immutable, hierarchical step IDs. No I/O, no side effects.

Executorstep outputs

Runs each step in order, and each step's result feeds every later step.

  1. Define a workflow. List the actions, pick a component for each, and wire outputs with sintax {{ step.field }} expressions.
  2. Plan. The engine compiles the definition into an ExecutionPlan with no I/O and no side effects.
  3. Execute. Steps run in order, and conditions, loops, retries, and cache hits all resolve at runtime.

A first workflow

id: search-and-summarise
name: Search and Summarise

actions:
  - name: page
    component: http
    vars:
      url: "https://example.com/{{ topic | slug }}"

  - name: summary
    component: inference
    vars:
      provider: anthropic
      model: claude-opus-4-20250514
      prompt: "Summarise in three bullet points: {{ page.body }}"
    cache:
      for: 1h

  - name: write
    component: file:write
    vars:
      path: "./out/{{ topic | slug }}.md"
      content: "{{ summary.content }}"

Every field accepts {{ }} expressions. A prior step's output is referenced by its name, so {{ page.body }} reads the page step's body. Modifier chains such as {{ topic | slug | lower }} transform values inline, and {{ value | default:'x' }} supplies a fallback.

Control flow

Any step can carry an if condition, a retry policy, or a cache duration, and looping is the each component wrapping its body under actions. Conditions choose between a step and its else branch, loops run their child steps once per item, and a cache hit skips the step and injects the stored value. The control flow guide covers all of it.

Components

Each component links to its own page with its full options and outputs.

App

Tip

These components connect a workflow to the Awee data platform, turning schemas, tables, and records into steps.

Manage schemas, tables, fields, and records in the Awee app platform.

NameDescription
app:fieldRetrieves the definition of a single field within a table
app:field:createAdds a new field to a table and applies the migration
app:field:deleteRemoves a field from a table and applies the migration
app:field:updateReplaces the definition of an existing field within a table
app:fieldsLists all fields defined within a table
app:file:saveInserts a file record, uploads the blob, and stamps the resulting key back onto the record. Errors mid-flight leave the record in place with an empty Field, which is intentional so the row still shows up in audit and list views and operators can inspect the failure
app:recordRetrieves a single record by ID from the given schema table
app:record:deleteSoft-deletes a record by setting its deleted_at timestamp
app:record:historyRetrieves the immutable audit log for a record, ordered oldest first
app:record:insertInserts a new record into a schema table and returns the persisted record
app:record:updateApplies a full replacement patch to an existing record and returns the updated record
app:records:queryQueries records from a schema table using filters, sorting and pagination
app:schemaRetrieves a single schema by ID for the given organization
app:schema:createProvisions a new database and applies the initial schema definition
app:schema:create:manyProvisions multiple databases and applies their initial schema definitions
app:schema:deleteDrops the database for the given schema ID
app:schema:updateReplaces the metadata of an existing schema
app:schemasLists all schemas belonging to an organization
app:tableRetrieves the definition of a single table within a schema
app:table:createAdds a new table to a schema and applies the migration
app:table:deleteRemoves a table from a schema and applies the migration
app:table:updateReplaces the definition of an existing table within a schema
app:tablesLists all tables defined within a schema

CSV

Parse, transform, and merge CSV files.

NameDescription
csv:mergeMerges columns from a secondary CSV file into a primary CSV file
csv:shrinkRemoves specified columns from a CSV file to reduce its width
csv:unchunkCombines multiple CSV chunk files back into a single output file

Dir

Read and write directories on the local filesystem.

NameDescription
dir:readRead a directory with filters
dir:writeCreate or delete a directory

Each

Iterate over a list and run sub-steps for every item.

NameDescription
eachLoop over a collection of items or map entries, processing them one by one or in chunks.

Error

Raise an explicit error to stop the workflow.

NameDescription
errorImmediately fails the workflow step with a configurable error message

Event

Emit events during workflow execution.

NameDescription
event:emitPublishes an event to the configured topic so other pipeline steps or external systems can react

Exec

Execute shell commands.

NameDescription
execRuns an arbitrary shell command and captures its stdout, stderr and exit code

File

Read, write, copy, find, and validate files on the local filesystem.

NameDescription
file:copyCopies a file from source to destination, preserving file permissions
file:find
file:json:unchunkCombines multiple JSON chunk files into a single array or map output file
file:readReads the full contents of a file and returns it as both a string and raw bytes
file:writeWrites or appends content to a file, optionally deleting it first

Group

Group related steps under a single named step.

NameDescription
groupIs a control component that groups multiple components together It does not execute any logic itself, but serves as a container for other components

HTTP

Make HTTP requests and handle responses.

NameDescription
httpPerform HTTP requests using the provided configuration

Inference

Interact with AI language models.

NameDescription
inferenceMakes LLM inference requests using the configured provider and its model. Supports tools, LLM parameter settings and cost calculation with user currency conversion. Pass a template path to the prompt field, or a string prompt to render dynamic prompts with variables.
inference:estimateEstimates the token count and cost for a prompt without running the model
inference:modelsLists all available models from the configured inference provider

Map

Transform a list by running sub-steps per item and collecting results.

NameDescription
mapRemaps and transforms values from a source object into a new output structure

Print

Print values to stdout for debugging.

NameDescription
printLogs a labeled variable value to the debug output for inspection during development

Sleep

Pause workflow execution for a duration.

NameDescription
sleepIs a control component that sleeps for a specified duration

Template

Render a text template.

NameDescription
templateRenders a template

Var

Set or pass through a variable value.

NameDescription
varSets or appends a variable in the workflow context for use in subsequent steps

XML

Parse and transform XML documents.

NameDescription
xmlProcesses an XML file using a configurable processor (generic or xliff), supporting import and export of translated content