Skip to content

Arbitrator

Outgoing Messages

OnAgentStateUpdated

Notifies platform of an update to the agent state.

JSON Structure

{
    "header": {
        "version": "4.0",
        "messageType": "Publish",
        "id": {{String}},
        "messageDescription": {
            "topic": "Arbitrator",
            "action": "OnAgentStateUpdated"
        }
    },
    "payload": {
        "assistantId": {{String}},
        "name": {{String}},
        "state": {{AgentState}}        
    }
}

Payload

Property Type Required Description Example
assistantId String Yes The unique identifier of agent whose state is updated.
name String Yes The name of agent whose state is updated.
state AgentState Yes The updated state.

OnDialogTerminated

Notifies platform that the dialog is terminated for the agent.

JSON Structure

{
    "header": {
        "version": "4.0",
        "messageType": "Publish",
        "id": {{String}},
        "messageDescription": {
            "topic": "Arbitrator",
            "action": "OnDialogTerminated"
        }
    },
    "payload": {
        "assistantId": {{String}},
        "dialogId": {{String}},
        "reason": {{String}}        
    }
}

Payload

Property Type Required Description Example
assistantId String Yes The unique identifier of agent whose dialog is terminated.
dialogId String Yes The unique identifier of dialog request that is terminated.
reason String Yes The reason for terminating the dialog.

RegisterAgentReply

Reply for RegisterAgent message.

JSON Structure

{
    "header": {
        "version": "4.0",
        "messageType": "Reply",
        "id": {{String}},
        "messageDescription": {
            "topic": "Arbitrator",
            "action": "RegisterAgent",
            "replyToId": {{String}}        
        }
    },
    "payload": {
        "success": {{Bool}}        
    }
}

Payload

Property Type Required Description Example
success Bool Yes True if agent was successfully registered, False otherwise.

DeregisterAgentReply

Reply for DeregisterAgent message.

JSON Structure

{
    "header": {
        "version": "4.0",
        "messageType": "Reply",
        "id": {{String}},
        "messageDescription": {
            "topic": "Arbitrator",
            "action": "DeregisterAgent",
            "replyToId": {{String}}        
        }
    },
    "payload": {
        "success": {{Bool}}        
    }
}

Payload

Property Type Required Description Example
success Bool Yes True if agent was successfully deregistered, False otherwise.

StartDialogReply

Reply for StartDialog message.

JSON Structure

{
    "header": {
        "version": "4.0",
        "messageType": "Reply",
        "id": {{String}},
        "messageDescription": {
            "topic": "Arbitrator",
            "action": "StartDialog",
            "replyToId": {{String}}        
        }
    },
    "payload": {
        "success": {{Bool}},
        "assistantId": {{String}},
        "dialogId": {{String}},
        "reason": {{String}}        
    }
}

Payload

Property Type Required Description Example
success Bool Yes True if dialog was started, False otherwise.
assistantId String Yes A unique identifier of agent for whom the dialog is requested.
dialogId String Yes The unique identifier generated for the started dialog, returned if the dialog was started, empty otherwise
reason String Yes The reason for the dialog not started, returned if request was denied, empty otherwise. This field is informational and is used only for logging purpose.

Incoming Messages

RegisterAgent

Register an agent with the Engine.

JSON Structure

{
    "header": {
        "version": "4.0",
        "messageType": "Publish",
        "id": {{String}},
        "messageDescription": {
            "topic": "Arbitrator",
            "action": "RegisterAgent"
        }
    },
    "payload": {
        "assistantId": {{String}},
        "name": {{String}},
        "dialogStateRules": [{{DialogStateRule}}]        
    }
}

Payload

Property Type Required Description Example
assistantId String Yes A unique identifier of agent to register.
name String Yes A name of agent that is registered.
dialogStateRules DialogStateRule[] Yes List of dialog state rules for the agent.

DeregisterAgent

Deregister an agent with the Engine.

JSON Structure

{
    "header": {
        "version": "4.0",
        "messageType": "Publish",
        "id": {{String}},
        "messageDescription": {
            "topic": "Arbitrator",
            "action": "DeregisterAgent"
        }
    },
    "payload": {
        "assistantId": {{String}}        
    }
}

Payload

Property Type Required Description Example
assistantId String Yes A unique identifier of agent to deregister.

StartDialog

Start a dialog request to become the active agent. A dialog represents the lifecycle of user interaction with the agent.

JSON Structure

{
    "header": {
        "version": "4.0",
        "messageType": "Publish",
        "id": {{String}},
        "messageDescription": {
            "topic": "Arbitrator",
            "action": "StartDialog"
        }
    },
    "payload": {
        "assistantId": {{String}},
        "mode": {{Mode}}        
    }
}

Payload

Property Type Required Description Example
assistantId String Yes A unique identifier of agent for whom the dialog is requested.
mode Mode Yes The mode of dialog request.

SetDialogState

Notifies Engine to set the dialog state for the specified agent.

JSON Structure

{
    "header": {
        "version": "4.0",
        "messageType": "Publish",
        "id": {{String}},
        "messageDescription": {
            "topic": "Arbitrator",
            "action": "SetDialogState"
        }
    },
    "payload": {
        "assistantId": {{String}},
        "dialogId": {{String}},
        "state": {{String}}        
    }
}

Payload

Property Type Required Description Example
assistantId String Yes The unique identifier of agent whose dialog state should be set.
dialogId String Yes The unique identifier of dialog whose state should be set. This refers to the same Id that was returned when the dialog was started.
state String Yes The new state to set to.

StopDialog

Notifies Engine to stop the dialog state for the specified agent. Stopping the dialog results in the agent becoming INACTIVE. This triggers the Engine to send the OnAgentStateUpdated message.

JSON Structure

{
    "header": {
        "version": "4.0",
        "messageType": "Publish",
        "id": {{String}},
        "messageDescription": {
            "topic": "Arbitrator",
            "action": "StopDialog"
        }
    },
    "payload": {
        "assistantId": {{String}},
        "dialogId": {{String}}        
    }
}

Payload

Property Type Required Description Example
assistantId String Yes The unique identifier of agent whose dialog should be stopped.
dialogId String Yes The unique identifier of dialog to stop.

Type Definitions

DialogStateRule

JSON Structure

{
    "state": {{String}},
    "wakewordInterruptionAllowed": {{Bool}}        
}

Properties

Property Type Required Description Example
state String Yes Name of the dialog state
wakewordInterruptionAllowed Bool Yes Whether interruption (barge in) via wakeword allowed for this state

Enums

Mode

Values

Value Description
"WAKEWORD" Dialog request is through wakeword.
"GESTURE" Dialog request is through gesture (PTT, TTT, etc).

AgentState

Values

Value Description
"ACTIVE" Denotes agent is active.
"INACTIVE" Denotes agent is inactive.