Forces
Partitioning of work can be used to increase reliability, performance or accuracy.
Partitioning should be transparent to clients.
Agents need to collaborate to perform complex tasks.
Agent behaviors may conflict.
Agents and agent applications should be evolvable.