Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
When developing a micro-agent application first make sure you know the feature set of the platform (as described in Developing micro-agent applications) as this might answer your question.
This page does not provide an alternative to this but summarizes some development-related questions. If you feel that there is one relevant answer missing, please write to .
Should I use social or passive roles?
This depends on your application. See the according criteria. In most cases you will use social roles to fulfill more sophisticated tasks. Passive roles have a rather complementary character for primitive tasks 'inside' an agent playing a social role.
Should I use Broadcast or Multicast-based discovery?
General answer: First try Multicast. If platforms do not detect each other you can switch to Broadcast and see if you have more success. However, when using Broadcast you cannot detect platforms running on the same host. So for general use Multicast-based discovery is suggested.
Should I use configuration via configuration file or in-code configuration?
You should generally use the configuration file as it makes the application more flexible to changing environments which demand the use of other settings. It also keeps implementation code and parameterisation separate. However, for spontaneous tests, debugging or cases where explicit access to the file system is prohibited the in-code configuration is a useful feature. In fact a general suggestion for application development is to try to solve problems by configuration rather than rewriting the own application if errors are not obvious: As all software this platform is likely to contain bugs. As the configuration often provides alternatives many issues could be resolved by changing settings. However, upon discovery of problems or likeliness of bugs a notice to the above-mentioned mail address is appreciated!
Should I use Jetlang or MicroFiber as Message Passing Framework?
In general you should try to stick to Jetlang. It is the fastest option available. If your applications consists or numerous agents (e.g. more than 100 (depending on your hardware)) and you experience Java OutOfMemory errors (in particular PermGen memory) the switch to MicroFiber is indicated. This can simply be done in the configuration and does not demand for any change of the developed code.
However, even then Jetlang can further be used if you increase the memory allocated to your application. A brief description on how to configure this is given here, under Step 5 in the Setup section. The actual values (i.e. allocated memory) depend on your actual application and the available hardware and are thus likely to deviate from the values shown there.