Building expert design systems with multiple agents is a very elegant way to deal with the increasing complexity of such systems.
Multi-agent systems provide better maintainability, flexibility and code reuse relative to more traditional systems that are not divided into agents, but they pose other questions. One of the major problems is resolving conflicts that arise inevitably among agents in any system claiming to solve a non-trivial problem.
Some of the advantages of multi-agent systems may cease to exist if the agents themselves are very complicated expert systems. The Single Function Agent (SiFA) model takes the multi-agent paradigm to an extreme by making the agents as specialized and independent as possible. Since each agent performs a very specific task, the types of agents with which it needs to communicate and the types of conflicts in which it is likely to get involved are few. Therefore, each SiFA requires limited knowledge to resolve these conflicts.