About workspace arbitration

Workspace arbitration makes possible building an agent from multiple workspaces. It allows reusability of common content like chitchat.

Workspace calls

We introduce workspace arbitration by requesting workspace calls.

Request:

"request":{
        "name": "call_workspace",
        "args": {
			"workspace": string,	// name of the called workspace
			"url": string,		// [optional] url credential of service to call workspace from or "primary" to call workspace from defaults
			"username": string,	// [optional] username credential of service to call workspace from
			"password": string 	// [optional] password credential of service to call workspace from
		}
}

No return value.

When another workspace is called, it completely takes over the conversation until it's active node falls back to root.

By taking over completely I mean that it can perform multiple dialog turns and/or call it's own service requests. It can also make more workspace calls.

Implementation

It is implemented as a common addon. See /service_add_ons/call_workspace.ts. The addon registeres: