Install
openclaw skills install agent-flowforgeRun structured multi-step workflows via FlowForge engine. Use when user requests step-by-step execution, structured workflows, or when a task needs enforced ordering (e.g., 'follow the workflow', 'use flowforge', 'step by step process'). Helps AI agents execute multi-step tasks without skipping critical steps.
openclaw skills install agent-flowforgeExecute multi-step workflows defined in YAML files using the FlowForge state machine engine.
FlowForge CLI must be installed. Check with:
flowforge --version
If the command fails or is not found, run the setup flow in setup.md before proceeding.
| Intent | Workflow |
|---|---|
| (add your mappings here as you use FlowForge) |
# Check for active instances
flowforge active
# Resume if exists
flowforge status
# Or start new
flowforge start <workflow>
flowforge run <workflow>
Returns JSON: { action: { type, node, task, branches, ... } }
type: 'spawn' — Node has executor: subagent. MUST spawn a sub-agent:
sessions_spawn(
task: action.task,
mode: "run",
label: "flowforge-<workflow>-<node>"
)
Wait for sub-agent to complete. Collect its output.
⚠️ NEVER execute spawn tasks yourself in the main session. The whole point of subagent nodes is delegation — they run in parallel, unblock the main session, and use the best tool for the job. If you do it yourself, you're blocking the main session and defeating the purpose.
type: 'prompt' — Node needs your direct judgment. Execute the task yourself in the main session. Use this for decision-making, lightweight checks, and coordination — not heavy implementation work.
type: 'complete' — Workflow finished. Report results to the user.
After getting the result (from sub-agent output or your own work):
echo "<result summary>" | flowforge advance
Or:
flowforge advance --result "<result summary>"
If the node had branches, include Branch: N in the result so the engine knows which path to take.
Go back to step 2. Loop until type: 'complete'.
spawn, use sessions_spawn. Not exec, not a coding CLI, not doing it yourself in the main session.flowforge active to resume.If you prefer step-by-step control instead of the run/advance JSON loop:
flowforge status # See current task
# ... execute task ...
flowforge next # Advance (linear node)
flowforge next --branch N # Advance (branching node)
The same spawn rules apply: if the current node has executor: subagent, spawn a sub-agent.
See references/yaml-format.md for the full YAML spec.
name: my-workflow
description: What this workflow does
start: first-node
nodes:
first-node:
task: What to do (detailed instructions for the executor)
executor: subagent # spawn a sub-agent for this node
next: second-node
second-node:
task: Make a decision based on results
# executor defaults to 'inline' — agent does it directly
branches:
- condition: success
next: done
- condition: retry
next: first-node
done:
task: Report results
terminal: true
task (required): Natural language instruction for what to doexecutor: 'subagent' (spawn) or 'inline' (default, do it yourself)next: Single next node for linear flowbranches: Array of {condition, next} for branchingterminal: true for end nodesflowforge start <workflow>flowforge list to see available workflowsflowforge reset to restart