Agent Management
This guide shows how to create, edit, and delete agents and agent types in Exacta Maestro™. Agents are Exacta Maestro™'s workers in the real world - they execute the tasks in the system. The Agent and AgentType configuration in AgentHub is used to dynamically control many aspects of how Exacta Maestro™ integrates with the real world agents: including how tasks are dispatched, how agents are rendered, and how communication is established.
Agent Types
Agents are grouped into agent types, which are used to define a single configuration strategy for all agents the type. This configuration includes which agent integration layer manages agents of that type, what kind of tasks the agents can perform, and any custom capabilities the agents have. A Bastian Solutions team member will configure agent types during system installation.
Add Agent Type
# Query
mutation addAgentType($input:AgentTypeInput!) {
agentHubMutation {
addAgentType(request: $input) {
isSuccess
error
}
}
}
# Variables
{
"input": {
"id": "My Agent Type",
"agentServiceUri": "fabric:/clientId/envId/AgentIntegrationApp/AgentIntegrationService",
"taskTypes": ["Mission", "ProductPickTask"],
"allowActiveTaskCancellation": true,
"allowTrafficControl": false,
"agentVelocity": 5,
"maxNumAssignedTasks": 3,
"payloadPositionTypes": [
{
"id": "IB1",
"maximumWeightInPounds": 20
}
]
}
}
Get AgentTypes
query getAgentTypes {
agentHubQuery {
getAgentTypes {
id
agentServiceUri
taskTypes
agentVelocity
allowTrafficControl
allowActiveTaskCancellation
activeTaskOverrideEnabled
customCapabilities {
key
value {
id
defaultValue
}
}
coordinatePoseTransform {
axisSwaps
offset {
x
y
z
}
scale {
x
y
z
}
pivotOffset {
x
y
z
}
rotationAxisSwaps
rotationOffset {
x
y
z
w
}
invertRotation
}
payloadPositionTypes {
id
}
agents {
id
# properties {
# key {
# name
# section
# }
# value
# }
}
}
}
}
Add Agent
# Query
mutation addAgentOperation($input: AgentInput!) {
agentHubMutation {
addAgent(request:$input){
isSuccess
error
}
}
}
# Variables
{
"input": {
"id": "My Agent",
"type": "My Agent Type",
"endpointAddress": "192.168.1.1:8123",
"communicationStack": "StandardAgent"
}
}
Get Agents
# Query
query getAgentsOperation($input:GetAgentsQueryInput!){
agentHubQuery {
getAgents(request: $input){
id
type
endpointAddress
communicationStack
payloadPositions {
id
taskName
taskGroupName
payload {
id
}
}
payloadPositionsProjection {
isSuccess
error
value {
id
taskName
taskGroupName
payload {
id
}
}
}
properties {
key {
name
section
type
tags {
key
value
}
}
value
}
}
}
}
# Variables
{
"input": {
"agentTypes": [],
"communicationStacks": []
}
}
Delete Agent
This query shows how to remove an agent from the system. Exacta Maestro™ will discontinue communication with the agent through its agent integration services, and no tasks will be assigned to the agent.
Delete Agent
# Query
mutation deleteAgentOperation($agentId: String!) {
agentHubMutation {
deleteAgent(agentId: $agentId){
isSuccess
error
}
}
}
# Variables
{
"agentId": "My Agent Id"
}