Skip to Content
AgentsRecipesOverview

Agent Recipes

Five complete tasks, each with the exact call order, what to verify between steps, and the durable handle you should be holding at the end.

Every recipe is shown for both MCP and the CLI where both apply. They follow the safety contract exactly — read before write, approve before spend, no automatic retries.

Which one you want

TaskCosts creditsScopesEnds with
Inspect a canvas read-onlyNocanvas:read, asset:readA summary and a review link
Save an imageNocanvas:read, canvas:write, asset:readA durable node: and asset: handle
Run a RecipeYesimage:generate and dependencies, plus job:manageA terminal Run with typed outputs
Generate videoYesvideo:generate and dependencies, plus job:manageA completed job: and a downloaded file
Batch editsNocanvas:read, canvas:writeA new revision and the created handles

The shape they all share

Identify one exact handle

Never choose between candidates on the agent’s own initiative.

Read the current state

canvas_get, recipe get, action get, or model get — whichever describes what you are about to use.

Plan against what you read

Not against what you expected to find.

Get approval if the next step spends money

In the current turn, naming the one run.

Execute once

With one caller-stable idempotency key.

Verify and report durable handles

Read back, and hand over the handles that outlive the observation record.

Two things to get right every time

Approval is per-turn and per-run. Approval for one image is not approval for a second image, a retry, or a batch. When a run fails, that ends the turn’s authority — report the failure and ask again.

Handles are the deliverable. A run: or job: handle is a temporary observation record and expires. The node: and asset: handles are what stay durable. Hand back the durable ones.

Last updated on