> ## Documentation Index
> Fetch the complete documentation index at: https://docs.e6data.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Step types

> The ten step types a workflow is built from, what each does, and which ones call a model.

export const DocMeta = ({type, applies, owner}) => {
  const LABELS = {
    tutorial: "Tutorial",
    "how-to": "How-to guide",
    explanation: "Explanation",
    reference: "Reference"
  };
  return <div className="e6-meta">
      <span className={type === "how-to" || type === "tutorial" ? "e6-eyebrow" : "e6-eyebrow e6-eyebrow--quiet"}>{LABELS[type] || type}</span>
      {applies ? <span>Applies to: {applies}</span> : null}
      {owner ? <span>Owner: {owner}</span> : null}
    </div>;
};

<DocMeta type="reference" applies="All deployments" />

| Step type | Purpose | Calls a model |
| - | - | - |
| `guided` | Reason with a focused instruction and require specified tool calls | Yes |
| `agent` | Open-ended reasoning with a constrained tool set | Yes |
| `tool` | Invoke one declared tool with deterministic arguments | No |
| `transform` | Filter, join, aggregate or reshape data with deterministic SQL | No |
| `python` | Run deterministic Python in the sandbox | No |
| `conditional` | Branch on declared runtime state | No |
| `wait_for_input` | Pause and route on a person's response | No |
| `subworkflow` | Invoke another saved workflow | Yes or configurable |
| `map` | Fan out work over a runtime collection and join the results | Yes or configurable |
| `action` | Plan and execute a terminal side effect, optionally with approval | Yes or configurable |

## Model pinning

You can pin a model on `guided`, `agent`, `subworkflow`, `map` and `action` steps. Pins on step types that never call a model are rejected. See [Models](/agentflow/operate/models).

## What any step can declare

| Declaration | Meaning |
| - | - |
| Typed inputs and outputs | Explicit contracts between nodes |
| Required tools | Calls a `guided` or `agent` step must make before it can finish |
| Assertions | Row, aggregate, cross-field or artifact checks on results |
| Bounded retries | Maximum attempts when validation fails |
| Fallback instructions | A controlled agentic fallback for recoverable deterministic-step failures |
| Memoization | Reuse of a reproducible step recipe when appropriate |

## Rejected legacy fields

`gate_check`, `verify`, `condition` and `if_false_goto` are rejected on write. Current specs carry a compiler version and must pass the same compilation path used at run time.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.