Conventional expert systems based on a single flat knowledge base have fared well in solving a narrow range of problems. Their architectures, however, do not extend to large applications like automated factories, which require multidisciplinary knowledge and are geographically distributed. To solve multidisciplinary problems, a knowledge-based system must be able to (1) reason about the need for cooperation, (2) understand global knowledge to locate relevant expert systems, and (3) select appropriate cooperation plans. Cooperations models to characterize three essential decisions in the cooperation process are proposed. A computational method is devised to decide if an expert system has enough knowledge to solve a given problem or if it needs to consult with other expert systems. The use of a yellow-pages technique to represent global knowledge and to select appropriate cooperation plans is proposed. The approach lets expert systems autonomously resolve the three fundamental decisions in cooperation at run time, in contrast to contemporary approaches in which the decisions are made at design time by the programmers.