Concept
A welcome message is the first assistant-owned turn in a session. In ABL, the most direct way to author it isON_START, because ON_START runs when the runtime initializes the session, before the first user message is processed.
Use a welcome message to orient the user, name the service, and make the first action obvious. Keep it short. If the same agent also has a FLOW, the top-level ON_START response behaves like a startup prelude: it can be emitted and the entry flow can continue. If an ON_START branch is selected, that branch owns the startup turn and the runtime can pause before the flow continues.
Minimal working example
How it works
The runtime initializes the session, executesON_START, emits the authored response when the channel supports proactive startup delivery, and then enters the flow entry step. The welcome response is also written into assistant history when it is delivered, so later reasoning can see what the user has already been told.
The first flow response should not repeat the welcome. Use it to ask the first useful question or show the first menu.
Common variations
Add buttons or rich content
Use actions when the channel can render buttons and you want the user to choose a common path immediately.Verification
Start a new session and confirm that the welcome appears before the first user message. In traces, look fordsl_on_start followed by dsl_respond with source: on_start. If the flow also runs, the flow response should appear after the welcome.
Common mistakes
Troubleshooting
If the welcome does not appear, check the channel contract. Some channels suppress proactive startup payloads and allowON_START only for side effects. If the flow response repeats the welcome, move the greeting into ON_START and make the flow step ask the next question.
Production readiness checklist
- Keep the welcome short enough for every channel.
- Include a useful next step, not only a greeting.
- Use rich content only when the target channel supports it.
- Verify traces for
dsl_on_startanddsl_respond. - Confirm the first flow step does not duplicate the startup message.