- Replace the wording. Declare the same response name in your project
responses.yml. See Where the file lives. - Replace the skill. Add
skills/<skill id>/with the same id. The project skill replaces the bundled one. Keeprouting.engine_managed: true. Omitting the key keeps the bundled value. Setting it tofalsealso offers the skill on the normal menu; the engine still treats that skill id as the lifecycle skill. Training rejectsfalseondefault_unsupported_request_handler.
rephrase: true, so the model may paraphrase them. The packaged responses
in Other packaged responses do not, except
utter_hangup_goodbye.
Session start
default_session_start runs at the start of a session and does not speak. It
has no bundled greeting to override.
To make the agent speak first, replace this skill and have the channel send
/session_start. To let the user speak first, leave the bundled skill as it
is. See Start a conversation.
skills/default_session_start/skill.md
memory.yml and no responses.yml.
Completed
default_completed runs when a skill you wrote finishes or is cancelled and
nothing else is left on the stack. It does not run after another default skill.
It asks whether the user wants more help. If they do, the agent asks what they
need and can activate that skill. If they do not, this skill links to
Customer satisfaction.
skills/default_completed/skill.md
skills/default_completed/memory.yml
skills/default_completed/responses.yml
Continue interrupted
default_continue_interrupted runs after a digression, when a paused task can
be resumed. It asks whether to continue. If the user agrees, the paused skill
continues from the same step. Otherwise it is dropped. See
Interruptions.
When this skill activates, the engine writes interrupted_task_name with a
readable label for the paused skill (its name, or its name plus description).
If that label cannot be stored, the prompt uses “your previous request”. Keep
interrupted_task_name in memory.yml if you replace this skill.
skills/default_continue_interrupted/skill.md
skills/default_continue_interrupted/memory.yml
skills/default_continue_interrupted/responses.yml
Customer satisfaction
default_customer_satisfaction collects a score and thanks the user. Completed
links here when the user does not want more help. It is not chosen by ordinary
routing.
conversation.before_end in agent.yml
is a separate list of skill ids rendered into the routing prompt. An example
there uses this skill’s id. That list is not what starts the bundled skill.
skills/default_customer_satisfaction/skill.md
skills/default_customer_satisfaction/memory.yml
skills/default_customer_satisfaction/responses.yml
Unsupported request
default_unsupported_request_handler runs when the model calls cannot_help.
Routing never activates it.
The engine sets request_type to in_domain_out_of_scope or
out_of_domain_out_of_scope. Both are requests the agent will not handle. The
value picks the message.
skills/default_unsupported_request_handler/skill.md
skills/default_unsupported_request_handler/memory.yml
skills/default_unsupported_request_handler/responses.yml
Silence timeout
default_silence_timeout runs when the user has been silent for the configured
timeout. Voice runs the main block three times, then on the next timeout runs
the hangup block: goodbye, then hang up. Any user speech resets that counter.
The retry count is not configurable. See
conversation.
skills/default_silence_timeout/skill.md
skills/default_silence_timeout/responses.yml
memory.yml.
Other packaged responses
These names live in the packaged defaults, not in one of the skills above. Override them the same way: declare the name in your ownresponses.yml.
rephrase on the three turn-error names is ignored. utter_hangup_goodbye
honours rephrase when you set it.