Maintain 'state' between conversations and different Intents.
The problem. Common Utterances like 'Yes' or 'No' are mapped to a SINGLE intent. This is a major headache if you have two Intents that are conversational (keep the session alive) but need to share the same Utterances. A possible solution is if the session is kept alive, to be able to add a token to the RESPONSE, which then gets returned within the next REQUEST, if it belongs in the same session. This token is set by the server which hosts the skill. This allows for the server to track a conversation, and respond differently to common utterances like 'yes'.
The Amazon provided wiseGuy skill on GitHub shows how to do this both for node.js and Java. I recently used this technique to add session state to my Daily Buzzword skill when I added the quiz to it. My yes/no and other questions use the state information to control the program flow.
> I must get around to writing that "finite state machine" template skill...
So many ideas, so little time. We're building up a massive backlog of examples, experiments, and blog posts that we mean to get to eventually. Meanwhile, we don't even have enough time to focus on our in-development skills. *sigh*
You are correct, this is a way of maintaining state across otherwise stateless requests. It's such a good idea, in fact, that it was part of Amazon's original design. =)
What you're looking for is the "sessionAttributes" field, which you can populate with arbitrarily nested JSON objects. Those attributes will then come back to you in future requests within the same session.