address, postcode and city questions from that message without asking them, so its opening line to that user is “Is the flat owned or rented?”, with no introduction and no data notice anywhere in the conversation. A node whose fields an action node already filled is skipped outright, with the same result.
intro fixes that. Declare it on the flow config and it is attached to whichever response the engine returns first for a session, then never again.
verbatim and instructions
Set both and the assistant writes the prose around the notice from
instructions while leaving the verbatim text untouched. Set one and it does only that. A bare string is shorthand for verbatim:
intro, or an object with neither key, throws at .compile() rather than at conversation time.
Once per conversation
Delivery is tracked in the flow store alongsidestep and state, under the session record’s internal object: internal: { intro: { delivered: true } }. That object is engine bookkeeping grouped per feature, never flow state, so nothing in it reaches a node or can be written through stateUpdates. Only the fact of delivery is stored. The text is not, since the flow config is the source of truth on every call. The engine attaches intro only when the marker is absent:
- The first
startfor a session carries it. - Every following
continueandresetleaves it out. - A second
starton the same session leaves it out. The user is not re-introduced because the model restarted the flow. errorresponses never carry it, and never set the marker, so a failed call does not consume the intro.
Where it lands
intro rides on the response the engine was going to return anyway, so it costs no extra conversation turn and no skipped node can take it with it:
start that runs to END because action nodes filled every field still carries it:
Delivery rules given to the model
A response that carries anintro also carries, in its nextStep, the rules for delivering it: at the very start of the model’s next message to the user, before the question, before calling a widget tool, before presenting a result. They state that verbatim is word for word, that instructions govern the surrounding prose, and that the intro appears at most once per conversation and must not be repeated from earlier context. If the model resumes the flow before writing to the user, the intro opens the message it writes after that.
A flow without an intro carries neither the key nor the rules.
Related
State
How the model fills fields the user already gave.
Flow tool contract
The full response shape, including
intro.