According to Bond, the types of cooperation depends on the organization of the agents: horizontal and vertical organizational structures can be distinguished. In non hierarchical societies, cooperation is based on sharing of tasks and of results, while in a hierarchical society, it relies on commands, bids and competition.
In addition, the class of problems studied can influence the kind of cooperation: for example, the study of cooperation among designers [Bond89b][Bond89a] influenced the multi-agent architecture implementing such a collaboration. In the same way, conflicts among designers are analysed and exploited for a tool supporting cooperative design [Klein92][Klein89].
In [Cont90], cooperation relies on the notion of goal adoption, which implies a goal common to the different agents. Different types of cooperation are presented: accidental cooperation, unilaterally intended cooperation, mutual cooperation. Cooperation is considered as a function of mutual dependency among the agents.
In [Dieng90b], the relations linking several cooperating cognitive agents are studied, in the framework of multi-expert systems.
In [Wern88], the author proposes a unified theory of communication and of social structure.
Taking into account such research on cooperation among agents, DAI can help to model a cooperative system. The couple system-user can be considered as a couple of two agents that must cooperate in order to perform for example cooperative problem solving. It is then interesting to model the set constituted by the system and by the user as a multi-agent system compound of two agents: decomposition of the global task between both agents, distribution of subtasks, planning of job among them, possible interactions among them, possible communication language they use, possible conflicts and way such conflicts will be solved. This vision can be extended to several users: in this case, a multi-agent system is obtained, with an artificial agent (the cooperative system) and several human agents (the users), such human agents can interact among themselves or with the assistance system. For building a KBS, the interaction of the system and of the users can be modelled through a model of agent.
Likewise, a model of agent may help to model the explanation process between (possibly heterogeneous) agents. For example, the logics of intentions and of capabilities [Wern90] can be applied to model the behaviour of the couple of agents KBS - user (the former must provide the latter with a cooperative assistance).