# Agent.Workbench Features

## End User functionalities

* MAS / MABS are handled as "projects" (designed by developer)
* In projects, definitions of different simulation setups are possible
* Agents can be configured by using different start arguments coming from (tailored) ontologies
* Depending on the selected environment model (e. g. a graph or a continuous two-dimensional model) case-specific environment configurations can be done
* The JADE agent platform and their tools can be easily controlled with the end user application
* Simulations can be easily distributed and balanced on different machines, in particular also by non-IT specialists
* AgentWorkbench provides a Multi-Language application (currently English and German, can easily be extended to French, Spanish, Italian, Polish, …)

## Utilities for developer

* AgentWorkbench provides a console window, which allows to display the system output, even if the output comes from a remote container located on a different machine
* The view on projects can be switched between a 'Developer view' and an 'End user view', in order to unburden domain experts from superfluous tasks and views
* One of the predefined environment models can be selected and used for a simulation OR an environment model can be designed and added individually
* External libraries (.jar files) can be added to a project in order to extend the core program features
* A customized PlugIn-class can be written in order to extend the application or the project window
* [Protégé](https://github.com/protegeproject/) designed ontologies can be integrated into projects - AgentWorkbench provides a reflective access to them. For example, in order to define start arguments for agents
* Needed JADE services can be configured by using the user interface, this includes also extended JADE BaseService classes that have been written individually for a project
* With the SimulationService, AgentWorkbench provides an efficient way for the agent/environment interaction, also in distributed applications
* The integrated, so called "Background System" enables an easy distribution of agencies over several machines in a computer network, just by a method invocation out of the running simulation
* AgentWorkbench provides open interfaces in order to allow individual static and dynamic load balancing solutions. Therefore the system load is permanently measured, also for a distributed agent platform
