Search Results for

    Show / Hide Table of Contents

    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.

    Create Agents Workflow

    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"
    }
    
    
    In This Article