An agent is free to accept any type of message that they want, be in prorietary or even encrypted. This is useful for sending data between agents on different nodes. For the interface presented to a GUI, it is recommened to follow the standard MAGI interface used by core agents. This makes automatic integration possible. If the interface of the agent doesn’t conform this the MAGI standard or requires a custom GUI to interact with, then don’t force it.
Each agent that wants to be integrated by the experiment GUIs must present their interface in a common fashion. This interface definition is a simple YAML file. It is also expected that the agent defines setConfiguration, either directly or via an inhereited class.
key value name the name of the agent group the grouping of agents that this belongs with display the agent name for display to a user description a description of what the agent actually does inherits the name of another IDL object that this object inherits values from execute the style of execution for the agent (thread, pipe, socket) mainfile the main file in the module tarfile to use for initial execution . . variables array of of definitions of variables that can be set with setConfiguration variables:name the name of the variable variables:help a help description of the variable and what it is used for . . methods array of definitions of the available method calls methods:name the name of a method call methods:help a help string to describe what the method does methods:args array of the args to pass methods:args:name the argument name methods:args:type the argument data type (bool, str, int, float, binary, enum, strlist) methods:args:allowed for ‘enum’, an array of strings that are allowed methods:args:required true if the argument must be passed, false if not, defaults to true methods:args:display a name to use for user display methods:args:help a help string to describe what the argument is for . . datatype the definition of any non standard argument types datatype:<name> the name of the new type datatype:<name>:type one of dict, list, tuple, float, int, str, strlist datatype:<name>:<def> def keys based on type, dict=(keytype, keydesc,value), list=(values), tuple=(values), default=(desc) . . software just a helpful indicator array of software that the agent may try to load
Definition of generic traffic client
Definition of http_wget that inherits from traffic client
Counters agent definition for example