Atomic State
Last updated
Last updated
An atomic state is a state executing real tasks, which usually are small functional modules, such as LLM module and TTS module.
In MyShell bot, an entered atomic state usually means a sent message with buttons if specified.
Each Input
signifies that a variable is required for the state to function, and it is typically provided by user input. If there is user input whose type is not "IM"
, then a transition to this state would prompt the opening of a modal, allowing the user to complete the input form.
The primary distinction between Input
and Output
in this context is that Input
generally includes additional fields that govern how the user should complete the input form. These fields could include things like data validation rules, default values, or specific instructions for the user, which provide guidance on the expected form and content of the input. Output
, in contrast, typically refers to the information that is conveyed back to the user after processing their input or completing a particular state transition.
You can refer to for more details.
We support LLM module, LLM Function module and TTS module for now. More kinds of modules and customized modules are coming very soon.
To fully understand the configuration of these modules, you should refer to the Modules section where detailed information about each module, including their inputs, outputs, and functionality, is provided.
Important Update: In previous versions, we supported the Object
type for defining tasks
. Please be aware that the execution order cannot be guaranteed for the Object
type and it will become deprecated in a future release. It is recommended to transition to using the Array
type to ensure the execution order of tasks
.
Currently, the use of context is necessary to store any output variables, as they are fundamentally kept within the parent automata's scope. However, in a few days, we will introduce support for isolated output variables that can be accessed through a prefix tied to the state name.
Variable
is a subset of Input
, only including type
and value
fields.
RenderConfig
is responsible for defining how a bot presents the results executed by a state to the user. It can specify content of the result, whether it's a text message, an audio message, or interactive buttons that facilitate transitions to different states or prompt further user interaction.