# Create and inspect a loop on the canvas

Create a small loop by naming its goal, adding steps and checking the saved draft. This first task does not need a model request, permission change, schedule or execution. A manual instruction can be saved without being an executable function.

## Before you start

Sign in to the intended workspace and open [Loop Builder](https://dashboard.ouros.md/loops/builder). Preserve an existing loop with **Save loop** or **Import & export** before replacing it. The empty canvas does not imply that a function service, model connection or hosted build entitlement is available.

## Describe one result

1. Open **Loop settings** by selecting the loop name in the toolbar.
2. In **Config**, enter a **Name**, **Goal**, **Inputs** and **Outputs** that describe one result you can check.
3. Choose **Add first step** and give the step a name and concrete instructions.
4. Keep the step manual if you only need a plan. To make it executable, choose an available function and inspect all its arguments.
5. Add another step only when it is needed. Inspect the order and any reference to an earlier step's output.

### Instructions and functions are different

**Add step** opens the directory of available functions, templates and workspace actions. **Add manual step** records instructions. **Run loop** requires a configured function on every step; the runtime does not turn arbitrary prose into a shell command.

A generated agent proposal is another way to populate the canvas. **Ask assistant** can submit a model-backed function request under the workspace's rules. Review the proposed steps before placing them on the canvas; a proposal is not execution or a schedule.

## Review without running

Open **Review & save** and **Schema** to inspect the current draft. Check the objective, step order, inputs and outputs against your task. Choose **Save loop**, then inspect the saved draft/version before relying on it. A reusable step saved in the directory's **Templates** section is device-local for that workspace, not a shared deployment.

Stop here for a planning-only task. Do not press **Run loop** to test whether saving worked.

## Execute only after authority is clear

Open **Permissions & spending** before starting work. Inspect the actual permissions, approval requirements and limit; saving a draft did not grant them. If execution is intended, choose **Run loop**, retain that run's identity and follow **Runs & approvals**. Review a pending action before approving it.

Use [review agent performance](/docs/loop-builder/review-agent-performance) to check the outcome. Use [Schedule](/docs/loop-builder/schedule-a-loop) only for deliberately authorized future work. Neither a cadence written in the draft nor a saved loop enables a schedule.

## Keep hosted artifacts separate

A generated hosted package has its own digest, review, activation and invocation contract. Use [review a hosted version](/docs/loop-builder/review-a-version) for that track; do not send the canvas draft schema to a hosted artifact endpoint.
