As a result of the ubiquity of computer networks, computer systems are increasingly acting as elements in a complex, distributed community of people and systems, rather than operating as solitary devices employed by a single person. Individuals in such communities may interact in various ways—competing, coordinating, collaborating. This talk will focus on those multi-agent scenarios and applications in which groups of agents work together to accomplish a joint activity or to achieve a common goal, that is, on situations in which agents collaborate. Many applications require such collaborative ecdeavors, and a major challenge for computer science is to determine ways to construct computer systems that are able to act effectively as collaborative team members.