Educational Technology & Society 3(3) 2000
ISSN 1436-4522

An Agent Infrastructure to set Collaborative Environments

Carlos José M. Olguín, Armando Luiz N. Delgado & Ivan Luiz M. Ricarte, PhD.
Department of Computer Engineering and Industrial Automation
School of  Electrical and Computer Engineering
State University of Campinas, Brazil
Tel: +55 19 788 3771
Fax: +55 19 289 1395


Collaborative learning supported through computers seems to be very promising, since advances in computational technology enable the widespread use of tools such as bulletin boards, chats, whiteboards and even video-conference. However, it is not clear which approach for on-line learning – individual or collaborative – is more effective for the students. This paper addresses a proposal to combine both approaches, taking in account that some advantages related to individual learning, such as self-pacing and establishment of learning goals by the learner, imply in difficulties to establish collaborative settings. This proposal is based upon the dynamic creation and management of study groups of distributed learners sharing on-line material. A model is proposed to set collaboration profiles that would enable to identify potential collaborators, and an agent-based infrastructure is presented to support this model in an on-line learning environment. Finally, an example of use of this infrastructure is presented using CALM, a learning environment developed on top of the Web architecture.

Keywords: Collaborative learning, Goal-based learning systems, Software agents


Most educators agree that advances in computational technology are going to have a positive impact on educational activities. However, it is not so clear whether the emphasis should be placed on individual or on collaborative learning. Collaborative learning supported through computers seems to be very promising, since advances in computational technology enable the widespread use of tools such as bulletin boards, chats, whiteboards, and video-conferences. Individual learning provides benefits such as self-pacing and establishment of learning goals by the learner, being an adequate paradigm for life-long learning.

It would be interesting, if possible, to combine the best of the two worlds into a common learning framework. However, this combination is not easily attainable. Usually, collaborative learning environments emphasize Computer-Mediated Communication (CMC), with tools to integrate e-mail, bulletin boards, whiteboard and chat rooms into HTML pages (Collins-Brown, 1999). In this context, groups have to be previously assigned to work together, and the environment administrator must create the corresponding e-groups. It is assumed that the group will work together in order to achieve the common understanding which should result from this community of learners.

On the other hand, in individual learning there is not a uniform goal, and even the content may be adapted to different learners profiles (Sinitsa, 2000). In such cases, there is not the concept of a “class” working together towards a common goal, and the time spent on distinct topics may vary significantly among distinct learners. Nevertheless, even in such learning scenario there might be other learners sharing common goals during some periods in time. It would be valuable if such learners were able to share doubts, questions, and comments among them, since in such sharing process they have to be able to reflect about the topic under study and to clearly express their reasoning. Developing such abilities is one of the benefits of collaborative learning that individual learning does not address.

This paper presents an infrastructure to dynamically establish collaboration groups for individual learners sharing a common learning goal. In this infrastructure, individual learners can establish a “collaboration profile” indicating the characteristics of the group they would like to participate — the model to express this profile is described in the section A collaborative learning model. The section An agent-based architecture to propose study groups presents an architecture based on software agents in which this profile is used to perform functions such as seeking for potential collaboration partners, expressing which collaboration services are to be used, and monitoring collaborative learning activities. The paper also presents an example of the use of this infrastructure in an on-line learning environment developed at UNICAMP, CALM, which works on top of the web architecture.


A collaborative learning model

It is well accepted that on-line learning environments have a positive impact on individual learning; advances in computational technologies opened new horizons for individual learners such as mouse-click access to information resources, learning tools, environments and services (Sinitsa, 2000). On the other hand, collaboration between a learner and their peers is a desirable characteristic of an on-line learning environment; it is through the sharing of doubts, questions, and comments that the learning process is complemented. Thus, on-line learning environments should offer mechanisms to allow collaboration among learners sharing common goals.

From the technological point of view, collaboration among users of an on-line learning environment depends on two tasks, which are the group definition and the establishment of (synchronous or asynchronous) communication sessions. Therefore, a collaboration framework should at least provide the tools to perform both tasks.

The definition of a study group is a trivial task when the required negotiation for composing the group occurs off-line. However, in an on-line learning environment in which a teacher may not be present, the learner ignores who are the other learners in the environment and what they are studying, this task become quite complex.

In order to support study groups in this kind of environment, the definition of a learner collaboration profile is proposed. The adoption of this profile enables to find collaborators with desirable levels of skill and knowledge, thus making possible the composition of groups with uniform interests, which would potentially improve the performance.

Once the groups are established, the offer of computer-mediated communication tools – e-mail, chat, whiteboards and so on – is easily attainable. However, it must be considered that the use of communication tools between learners that belongs to the same group does not guarantee that they are participating and, most important, collaborating efficiently in order to achieve an uniform evolution in terms of the quality of the acquired knowledge. The profile could be used to keep information about the degree of participation of the individual learner within the group, in terms of quantity and quality. With this information it would be possible to monitor collaborative learning activities and participation.

The key concept of the proposed framework to establish collaborative settings in an on-line learning environment is the concept of group, a dynamic set of learners who are brought together to discuss about some subject, eventually with some established goal (Figure 1).


Figure 1. Overview of a learning environment with collaboration


A group has a life cycle that starts with the group conception by any learner in the environment. This learner, which becomes the group owner, establishes the set of desirable features for recognizing potential members for this group – i.e., the group profile (Figure 2, step a).


Figure 2. The collaborative learning model


The group profile is composed by a list (eventually empty) of conditions expressing the subject of study and, optionally, a required degree of knowledge on the subject (expressed as a real value between 0 and 1) that members of the group should have. For example, in order to start a group to study the topic “garbage collection in Java” with members that already have a reasonable knowledge on Java, a learner could propose a group profile such as

(Java, 0.6) AND (Garbage collection)

The adoption of a mechanism to search for collaborators, based on conditions connected by AND and OR operators, enables the owner to determine the degree of homogeneity or heterogeneity for the group being created. For example, conditions related by OR operators sets a group in which its members competences are heterogeneous. This flexibility enables to get higher educational benefits in defining heterogeneous groups as stated in Johnson and Johnson (1996), or to define other learning conditions in which homogeneity is more suitable.

The group profile is used by the collaborative learning framework to start a search for users of the on-line learning environment whose individual profiles satisfy the proposed set of conditions (Figure 2-b). The result of this search is a list that may contain learners and existing groups fitting the proposed group profile (Figure 2-c). The learner proposing the group may then decide either to suspend the creation of a new group and try to join an existing group (Figure 2-h), or to proceed with group creation.

The proponent learner may also not be satisfied by the search results – e.g., the list of potential group members might be too long or too small. In this case, the learner might choose to review the set of conditions in the group profile, either by restricting or relaxing the required degree of knowledge for some topics or by introducing or removing some conditions (Figure 2-d). The framework can then refine or extend the performed search using the new group profile (Figure 2-e).

When the learner receives a list of potential group members that satisfies the proposed group profile, the search phase ends and the framework begins the invitation phase (Figure 2-f). First, the proponent learner (now, the group owner) may unselect learners from the list of group members proposed by the framework that are going to be invited to take part in the group. The group owner then assigns the task of inviting the selected potential group members to join the new group. Upon acknowledgment of all invited learners, the framework concludes the creation of the group (Figure 2-g).

Besides enabling the creation of new groups, the framework shall provide functionalities to monitor activities and par­ti­ci­pa­tion of group members. A practical use of this module is to detect the degree of individual participation of a learner within a group or even the activity level of the group. This information could be used by the learner, in the case of the participation monitoring, to change her/his behavior within the group in terms of participation and, in the case of activities monitoring, to decide whether she/he is going to continue to work, or not, with the group. Another possible module that can be provided is a knowledge monitoring module, that may be used to evaluate the quality of the knowledge achieved by the group and its members. Knowledge here is used in a broader sense, meaning not only the acquired concepts on a given subject but also the methodology used to get these concepts. The modules above mentioned will be used by the advisor which is an actor responsible for tasks that ensure that the group will achieve a valid knowledge in the subject being discussed.


An agent-based architecture to propose study groups

Some of the tasks related to search and invitation of collaborators, presented in previous section, are well suited to be performed by software agents. The group creation process is time consuming, since the user may be involved in successive steps in profiles refinement process and in the search and selection of users. This is followed by invitations, including the waiting for acknowledgments of such invitations. The main idea is that a user should not interrupt its normal learning activities more than the strictly needed.

The conceptualization of what is an agent has its origins in the artificial intelligence field and adopted a number of conflicting definitions. Nowadays, however, it could be said that an accepted definition of an agent is (Nwana, 1996; Green et al., 1997; Huhns and Singh, 1998): An agent is a computational entity that (i) executes in behalf of other entities (users, programs, etc.) in an autonomous way; (ii) makes actions in a pro-active and/or a reactive way; and (iii) presents some capabilities to learn, cooperate and move. Software agents are software systems that observes the concepts presented above and exists in computers and networks, helping users to do some tasks that are executed in computers (Green et al., 1997).

With software agents, the tasks related to the collaboration framework can be done on behalf of user, with interventions only in very precise points during the search and invitation process. The software agents perform the search for entities, considering a given group profile, and proceed to invite the selected partners or even to request the inclusion in an existing group. The agent is also responsible for verify the matching between the specified group profile against users profiles.

This work defines an agent architecture composed by a set of agencies to implement the collaborative learning framework. An agency is, in fact, an agent which is responsible in get users goals specifications and performs actions to fulfill these goals, eventually delegating some tasks to new agents, which will help the agency to execute its tasks. The agencies cope with the communication with agents and the execution of the function related to each agent. An agency also is the point of access for users to establish a group session or to receive information of other agencies to be passed to a user.


Figure 3. Agents Architecture


In the proposed Agent architecture (Figure 3), each user of the Collaboration Framework has an associated agency. The agency is responsible for receiving requests and returning responses from and to its owner. The actors must state only some kind of goal to their agency. It is up to the agency to create an agent, to move this agent to other hosts in a network, and to provide these agents with resources needed by them.

The Group Agency performs the tasks related to search and invitation processes. It is the Group agency that is responsible for keeping all the information about the groups opened by a user, including member list and control data from collaboration services. This agency has some important properties. It must be active while there are active groups of a group owner, ensure the persistence and security of groups information, and be able to locate or to be located by an owner that moves from one host to another.

In the search and invitation process, mobile agents are useful. Lange and Oshima (1999) has pointed that mobility is one desirable property of software agents, depending on the tasks to be performed, the volume of the data to be manipulated and the characteristics of the networks in terms of performance, quality of services (QoS), and topology. The search for partners involves the query of one or more database servers which keep User Profiles. These user profiles contain information about characteristics of users in terms of theirs competences and skills in a set of subjects, and in terms of performance in group activities. Based on some measure of network performance and data amount to be retrieved, or on the evaluation of distribution of users in the network, it may be useful to send an agent through an itinerary of such servers, rather than retrieving the data for local processing.

The User agency is associated with any user in the learning environment, group owner or not. This agency is responsible to interact with search agents sent by Group agencies. In search process, it can be important to know which are the resources available in the computer platform used by the potential collaborator. Also, the User agency interacts with invitation agents in order to receive invitations and reply to them on behalf of its owner, eventually with some human intervention.

The other two agencies in Figure 3 are the Activities and Advisor Agencies. Once a group is effectivated, the activities have place and some collaboration services are used. These services are not part of the architecture, but they provide information that is collected by the Group agency. This information can be used by the Activities agency, which generates more information that is important to reason about activity and participation levels of group members. As stated in A Collaborative Learning Model section, this may be important to evaluate the effectiveness of a group.

The Advisor agency performs most of the tasks related to group and members knowledge monitoring. A group advisor must use this agency to send recommendations to a group as a whole or to one of its members. These recommendations will be based on the members profiles and on the information related to the group activities, as provided by the Activities agency. Agents here are used to allow the customization of the way that such recommendations are generated and delivered to group or to one of its members.

This architecture is implemented as a service of CALM System (Adriano et al., 1999) and only the Group and User Agencies are being implemented. Next section shows how an implementation of this architecture can be integrated with a real learning environment.


An example with CALM

CALM is an on-line learning environment being continuously developed at UNICAMP in the context of the Project Sapiens, which involves participants from computer engineering, software engineering, and educational technology. The decision to develop an environment rather than use one of the good available environments was motivated by the lack of flexibility to integrate new mechanisms that the group felt would be required for effective on-line learning. Therefore, CALM is a testbed for these mechanisms, and should not be seen as a closed environment.

The CALM model assumes that all content is potentially integrated into a web of learning material, not necessarily partitioned into courses. For example, a learner studying the topic File Systems might be interested in subjects that are traditionally seen in separate courses such as Operating Systems, Computer Hardware, and Assembly Programming, whereas another learner might move from subjects from Operating Systems to Concurrent Programming and Computer Network subjects. If the material were not all related, such flexibility would not be possible.

CALM architecture is presented in Figure 4. The Domain CALM Server front-end is a Web server, which delivers HTML pages to the learner client. Behind this front-end, the CALM architecture uses Java distributed objects in order to implement functionalities such as registering learners profiles and goals, proposing recommended topics based upon the learner profile and goal, composing lessons with content adapted for the learner, and registering learning activities being developed in the CALM context.


Figure 4. CALM Architecture


The establishment of dynamic cooperation groups is incorporated as an additional functionality to the CALM architecture. Following the architecture specified in previous section, Figure 5 presents how the search and invitation tasks are integrated into CALM.


Figure 5. Collaboration Agents Implementation


First, user specifies to the Group agency the desirable group profile for the new group and waits for the results (step 1). The Group agency then sends agents to a Trader to obtain a list of groups and users. The Trader keeps the location of databases where User and Group profiles can be found. The search agents (SAG) are responsible to match desired group profile against already existent groups and users (step 2). After SAG returns, the Group agency shows the results for the user to analyze and choose collaborators to be invited.

Next, the user sets the list of collaborators to be invited. The Group agency sends invitation agents (IAG) to such collaborators (step 3). The IAG communicates with User agencies, which are responsible to present a graphical interface to invite the user. The User agency returns the response to IAG, which in turn returns to its Group agency. If a User agency is not active or running, IAG sends an e-mail to the invited user (step 4). Finally, Group agency shows to its user the invitation results (step 5). With this, user can restart the process from step 1, respecifying a new group profile, or from step 3, inviting others users.


Figure 6. Learner interface in CALM


All the process is started through the learner interface in CALM (Figure 6), which has a button that activates the initial dialog between the user and the Group agency. The further graphical interface showed in Figure 7 guide the user in the search and invitation steps until the final step of effectivation of group.


Figure 7. Interface for group creation


The CALM system is implemented in Java 2 and is component-based, using JavaBeans as the component framework. This design approach had a positive impact in the development of CALM, allowing easy integration of new components to the system. The collaboration framework and the associated agent system is implemented also in Java 2 and uses Voyager 3.2 as the base platform for mobile agents. The whole system was testes in the following platforms: Solaris, Linux and in MS-Windows (95/98/NT).



Computer-based learning systems follow traditionally one of two main approaches, one promoting goal-based self-learning and other promoting communication among established classes of learners. Both approaches present attractive features, but are not usually seen as compatible solutions for the problem of using computers to support learning.

This article proposed a collaborative framework based on software agents in order to bridge these two approaches together. An agent architecture was defined and the proposed solution was analyzed in the context of the CALM system.

Much work has been done addressing the issue of group creation with partners that have some kind of common interests, based on the specification of some keywords by users (Dyke et al., 1999; Hattori et al., 1999). Although presenting similarities with this work, this article proposal adopts a selection criteria that is based on users profile specification, which takes into account their current competence and skills status, and uses this as parameter to select partners for collaboration, matching a given group profile.

Although the results have shown that the initial goals were reached, there are some points that must be further analyzed. For example, a learner may want to access the system from any place, at any time. In order to follow a moving user, the agency must also be mobile. The mobility of users and their agencies is a complex problem, raising questions such as: What must be done if a user begins the creation of a group in a host and wants to finish this process in another? and, How to store the agency state?

Another point that must be considered is how to deal with group-based decisions. In the context of this collaboration infrastructure, the voting criteria might be important since, in terms of degree of relevance and acceptance, it improves the evaluation of an educational agent about the evolution and understanding of the subject by the members of a group, both collectively and individually. This must be better studied in order to implement a software agent that could lead with this information and assumes some actions to correct possible problems of understanding.

Finally, as the CALM environment can be installed across multiple networks, a scheme with a Master CALM Server which has knowledge of several Domain CALM Servers can be used by the agents to traverse the CALM environment to search and invite participants from different CALM domains.



The Sapiens Project is supported by the Foundation for Research Support from the State of São Paulo (FAPESP), Grant No 97/12807-1. Carlos J. M. Olguín (on leave from UEM) and Armando L. N. Delgado (on leave from UFPR) are partially supported by CAPES/PICDT grants. Sergio Botero participated in the implementation of agent system.



  • Adriano, C. M., Delgado, A. L. N., Jr., L. G. S., Bosnardo, R. C., Ricarte, I. L. M. & Magalhães, L. P. (1999). Inquiring the Course Paradigm with CALM. In H. Figueroa (Ed.) Proceedings of International Conference On Engineering and Computer Education(CD-ROM), Rio de Janeiro, Brazil.
  • Hartley, J. R. & Collins-Brown, E. (1999). Effective pedagogies for managing collaborative learning in on-line learning environments. Educational Technology and Society, 20 (2), 12-19.
  • Dyke, N. W. V., Lieberman, H. & Maes, P. (1999). Butterfly: A Conversation-Finding Agent for Internet Relay Chat. In M. T. Maybury & P. Szekely (Eds.) Proceedings of the 1999 International Conference on Intelligent User Interfaces, New York: ACM Press, 39-41.
  • Green, S. & Hurst, L. (1997). Software Agents: A review.  Technical report, Trinity College Dublin and Broadcom Éireann Research Ltd.
  • Hattori, F. (1999). Socialware: Multiagent Systems for Supporting Network Communities.  Communications of the ACM, 420 (3), 55–61.
  • Huhns, M. N. & Singh, M. P. (1998). Readings in Agents. San Mareo: CA: Morgan Kaufmann Publishers Inc.
  • Johnson, D. & Johnson, R. (1996). Cooperation and the use of Technology., chapter 35.  In D. Jonassen (Ed.) Handbook of Research for Educational Communications and Technology, New York: Simon & Schuster Macmillan.
  • Jonassen, D. (1996). Handbook of Research for Educational Communications and Technology, New York: Simon & Schuster Macmillan.
  • Lange, D. B. & Oshima, M. (1999). Seven good reasons for mobile agents. Communications of the ACM, 420 (3), 88-89.
  • Nwana, H. (1996). Software Agents: An Overview. Knowledge Engineering Review, 110 (3), 1-40.
  • Sinitsa, K. (2000). Learning individually: a life-long perspective. Educational Technology and Society, 30 (1), 17-23.