DSL Semantics
This page explains how the platform interprets the DSL at runtime.
1. Journey Ordering
The journey array is the default execution path. A step runs, then the next step runs unless a branch or jump changes the path.
2. Continue vs Targets
Some steps return outcomes that point to targets:
continuemeans go to the next step in the journeydoneends the conversation successfullyescalatehands off to a humangotojumps to a named step
3. Interactive vs Instant Steps
Interactive steps wait for user input:
collect,choice,confirm,guide
Instant steps execute immediately:
action,investigate,set,if
4. Naming And Goto
A step can include name, which creates a slug used by goto.
- collect:
name: Ask Again
fields: [order_id]
- goto: ask-again
5. Variables And Data Flow
collectstores values in variablesactionresults are stored in variables usingas:setwrites computed values into variables
Use {{variables.*}} to interpolate values in messages. Use $variables.* in expressions.
6. Triggers And Routing
The router matches a user message to a capability using:
trigger.goaltrigger.examples- optional
trigger.priority - optional
trigger.requires
7. Knowledge Usage
A capability may attach knowledge collections. When knowledge is available, the system retrieves relevant chunks and grounds responses.
8. Fallback Behavior
If a journey cannot continue, the capability fallback is used. If not set, the platform escalates to the default queue.
9. Auditable Execution
The platform records routing, step transitions, and action calls in audit logs. This makes execution traceable without granting the LLM control over decisions.