DocsWorkflowsQuickstart

Quickstart

Build and run your first workflow in a few minutes. One file, two AI steps chained together, and the three ideas you reuse in every workflow after it.

A workflow is a list of steps in a single file. Each step runs one component, the steps pass their results to the steps that follow and the engine executes everything sequentially.

This page builds a small working workflow so the pieces are concrete before the deeper guides. You do not need to be a developer to follow it. If you can edit a text file, you can write a workflow.

Your first workflow

Save this as hello.yml. It asks a model for three facts about a topic, feeds those facts into a second model call that writes a short post, and saves the result to a file. Two AI steps, chained by name.

name: Topic to post

inputs:
  - name: topic
    type: string

actions:
  - name: facts
    component: inference
    vars:
      provider: openai
      model: gpt-5
      prompt: "List three surprising facts about {{ topic }}."

  - name: post
    component: inference
    vars:
      provider: openai
      model: gpt-5
      prompt: "Turn these facts into one short, upbeat post.\n\n{{ facts.content }}"

  - name: save
    component: file:write
    vars:
      path: ./post.txt
      content: "{{ post.content }}"

outputs:
  post: "{{ post.content }}"

The second step reads {{ facts.content }}, the text the first step produced. That single reference is the chain. The model that writes the post never sees the topic directly, it works from what the first model returned. Wiring steps this way, a model call feeding an API call feeding a file write, is how every automation here is built.

Run it

Run the file from the command-line app.

awee run hello.yml --topic "the universe"

The same file also runs unchanged over the REST API and from the web app, where its inputs become a form. You write a workflow once and reach it from all three.

The three core concepts

Everything in the rest of these docs builds on the three things this workflow already does.

  • Actions. The actions list is the body of the workflow. Each action has a name and a component, and they run top to bottom.
  • Wiring. A step reads an earlier step's result with a {{ name.field }} expression. This is the only glue between steps, and it is how data flows through the workflow.
  • Outputs. The outputs block names what the workflow returns to whoever ran it, built from the same expressions.

Where to go next

Read the guides in order for a full tour, or jump to what you need.

  • Workflow anatomy lays out every part of a workflow and shows how a step can contain more steps.
  • Templating language covers the {{ }} expressions that wire steps together.
  • Inference explains calling models, tools, and forming structured outputs.
  • The component reference is the full menu of steps, each with a working example.