Prompt Engineering on the Canvas

How to write the Root's global behavior rules, each Sub-Agent's behavior rules, Skill descriptions and References so the workflow routes and answers well.

Updated September 30, 2026 · 3 min read

How your prompts are compiled

Each agent runs with its own request. The Root's instructions are its global behavior rules plus what it can reach: its Skills, its References with their reading instructions, and one delegation tool per linked Sub-Agent. Each Sub-Agent gets the same from its role, behavior rules and links. Skills become tools with your JSON Schema.

The Root Orchestrator: route, don't work

  • State the mission and the audience in one or two sentences.
  • Write routing rules that name the Sub-Agents: “Send every invoice question to the Invoice Auditor.”
  • Put the non-negotiables here: what never to reveal, when to hand over to a person.
  • Leave each job's details to the Sub-Agent that owns it.
Global behavior rules that route
You coordinate the finance back-office for Acme.
Route every invoice question to the Invoice Auditor and every payment question to the Payments Analyst.
Never reveal credentials, internal IDs or other customers' data.
Hand anything above R$ 50,000, or anything you are unsure about, to human review.
Answer in the user's language, in at most five sentences, citing the invoice numbers you used.

Sub-Agents: one job each

  • Role: a short title the Root sees when it delegates (“Finance Exec”, “Researcher”).
  • Behavior rules: the job, the steps and the output format. Ask for structured output (“a JSON verdict per invoice”) when another agent consumes it.
  • Split an agent whose behavior rules cover two unrelated jobs; merge two that always run together.
  • Give each agent only the Skills and References it needs: a smaller context means fewer mistakes.

Skills: descriptions are prompts too

An agent decides whether to call a tool from its name, its description and its schema.

  • Verb-first function names: list_invoices, create_ticket.
  • Say when to use it, and when not to.
  • Describe every property in the JSON Schema, mark the required ones, and use enum for fixed choices.
JSON Schema for list_invoices
{
  "type": "object",
  "properties": {
    "customer_id": { "type": "string", "description": "Stripe customer id (cus_...)" },
    "status": { "type": "string", "enum": ["open", "paid", "void"], "description": "Only invoices in this state" },
    "created_after": { "type": "string", "format": "date", "description": "Earliest creation date, YYYY-MM-DD" }
  },
  "required": ["customer_id"]
}

References and reading guidelines

A Reference adds context. Inline text (Markdown, plain text, JSON) is embedded in the prompt; a PDF, a path or a URL is cited by name so the agent knows where it lives.

Reading guidelines tell the agent how to read it (tables, visuals, structure, code review) and become a “Reading instruction” line in the prompt.

Extended Thinking, effort and Artifacts

In the inspector's Reasoning and output, Extended Thinking lets an agent reason before it answers, and effort (low → max) sets how deeply. Turn it on for agents that plan, audit or decide; leave it off for simple lookups, where it only adds latency and tokens.

Artifacts asks the agent to return self-contained outputs (documents, code, tables) in a format the console renders.

Stay within the token budget

  • The top bar's meter adds up the nodes linked to the Root against its token limit; unlinked nodes don't count.
  • Long References are the usual reason for a red meter: link them only to the agents that read them.
  • The inspector shows each node's own token estimate.

Dictate your prompts

Every prompt field has a 🎙 Dictate button. Say “comma”, “full stop” or “new line” for punctuation; terms such as “Sub-Agent”, “MCP” or “JSON” are written in their standard form. See Voice commands and dictation.

Checklist before a Live run

  1. Pre-Flight: “All nodes valid and connected”.
  2. Compiled prompt read for the Root and each Sub-Agent.
  3. Every Skill has a description and a complete JSON Schema.
  4. Connectors linked to a working connection (see Connections).
  5. One Simulation run that reads right in the console.