MAX Toolkit v2.0.0 is a major release that now allows Agents to communicate with MAX via Inter-Process Communication (IPC). This is facilitated by the MAX IPC framework which leverages gRPC C++ to provide IPC capabilities.
- Added a new
HashableInterfacewhich is used by theActivityRequestInterfaceand theDialogRequestInterface(required for use cases introduced with IPC). - Methods in
StartListeningCallbackandActivityRequestInterfaceare made virtual. - A new
registerAgent()API is introduced in theAgentManagerInterface, to support single agent registration use cases like agent process crash recovery.
- The MAX IPC framework is introduced along with two major packages -
MultiAgentExperience-IPCandMultiAgentExperience-IPC-gRPC. The MAX IPC framework facilitates inter-process communication between the MAX process and any agent processes, and enhances security by isolating processes. - Added a new package -
MultiAgentExperience-ThreadExecutor. - The MAX SampleApplication is updated to incorporate the MAX IPC framework. Read more here - MAX_IPC.md.
- Added a fix to address an issue which did not allow Alexa alerts to be stoppable after a power-cycling the device.
APIs supported by MAX Library are provided in a separate MAX-API Directory with this release. The details of what has changed in the APIs with respect to v0.4.0 can be found in the below document. MAX_API_Documentation.md
- Added the ability to temporarily store any activity/dialog requests in a buffer, during agent re-registration, when the MAX process recovers from a crash. After all agents have executed their OnCompletionCallback (received in
AgentRegistrationInterface::onReady), the requests stored in the buffer will be processed in a priority order based on the activity type of the request. This helps restore correct state of activities/dialogs when after a crash. - Changed the set of shared ControlTypes given to an agent during a dialog from “any controls available for other actors” to “only the controls for foreground experiences of other actors”.
- The logger has been extracted out of
MAXand bundled separately in this package namedMultiAgentExperience-Logger. This doesn't disturb any client operation but helps make the code more modular. - Added MAX integration for pending notifications.
- Added MAX integration for 'Do Not Disturb'.
- Added integration for UDC in Alexa Cloud and AVS-SDK.
- Added a fix in AVS-SDK to address a race condition causing Alexa alerts to not stop on invoking a UDC STOP command.
All issues listed here are the behaviour/ issues observed with one agent as Alexa.
- Alexa alert is not stoppable using UDC after power cycle - If a user restarts the device while Alexa is ringing alert, after the device boot up, Alexa alert is not stoppable using UDC.
- Content(News) mixability type is set as mixable-restricted instead of non-mixable in some cases - If a user plays music from Alexa app, then the user requests for news from Alexa followed by a dialog from the other agent, then news gets attenuated while the dialog is ongoing. News is supposed to be paused instead. This happens when “Amazon Music” or “Tune-in Radio” is played from Alexa app.
- Content(Music) mixability type set as non-mixable instead of mixable restricted in some cases - If a user plays news first and then music(“Amazon Music” or “Tune-in Radio”) from Alexa app, then music gets paused insted of getting attenuated.
- Reminder's dialog/TTS is not delivered when reminder is enqueued with timer - A reminder has an audio cue followed by TTS indicating a reminder message. If user sets the timer first and then a reminder, timer starts ringing first and reminder is enqueued. When the user stops the timer, reminder audio cue is played but the TTS is not delivered.
- Music does not attenuate when notification is received in some cases- If a user plays music (“Amazon Music” or “Tune-in Radio”) from Alexa app, and then if a notification is received, music does not get attenuated and plays in full volume. The music is supposed to get attenuated in this case.
Initial release of the MAX Toolkit.
- When running the SampleApplication with wakeword engines, you will see false positive errors in the console regarding wakeword engine creation. These errors can be safely ignored.
- The MAX Sample Application will become unresponsive if you attempt to “barge in” on an un-interruptible response (a response that contains either wake word “Alexa” or “Computer”) from Alexa. For example,
- Say “Alexa, what is Alexa Voice Service?”
- Then while she is speaking “Alexa, stop”.
- The Alexa agent may lose context in multi-turn interactions. Alexa will respond with “Sorry, I don’t know that” (or something similar) to your response.
- Alexa will sometimes become unresponsive after multiple music or content streaming activities.
- Ubuntu: The Sample Application will sometimes segmentation fault during shut down.