agent_definition behaviour (macula_neuroevolution v0.28.0)
View SourceSee also: agent_actuator, agent_bridge, agent_sensor.
Summary
Types
Unique identifier for the agent type. Should be a descriptive name like <<"hex_arena_agent">>.
Semantic version string, e.g., <<"1.0.0">>.
Neural network shape specification: {Inputs, HiddenLayers, Outputs}.
Types
-type agent_name() :: binary().
Unique identifier for the agent type. Should be a descriptive name like <<"hex_arena_agent">>.
-type agent_version() :: binary().
Semantic version string, e.g., <<"1.0.0">>.
-type network_topology() :: {pos_integer(), [pos_integer()], pos_integer()}.
Neural network shape specification: {Inputs, HiddenLayers, Outputs}.
Inputs- Total input count, must match sum of all sensor input countsHiddenLayers- List of hidden layer sizes (can be empty for direct connections)Outputs- Total output count, must match sum of all actuator output counts
Callbacks
-callback name() -> agent_name().
-callback network_topology() -> network_topology().
-callback version() -> agent_version().
Functions
-spec get_info(Module) -> {ok, Info} | {error, Reason} when Module :: module(), Info :: #{name := agent_name(), version := agent_version(), topology := network_topology(), inputs := pos_integer(), hidden_layers := [pos_integer()], outputs := pos_integer()}, Reason :: term().