An individual software module is not an agent at all if it can communicate with the other candidate agents with only a client/server protocol without degradation of the collective task performance.
The idea here is that of volunteering useful information. Can we push on that idea?