Oviatt, Pittman, Smith, Chen, & Clow, 1997), a RETSINA route planner (Payne, Sycara, Lewis, Lenox, & Hahn, 2000), the ARIADNE information agent (Knoblock, Minton, Ambite, Ashish, Modi, Muslea, Philpot, & Tejada, 1998) and eight synthetic helicopter pilots
(Tambe, Johnson, Jones, Koss, Laird, Rosenbloom, & Schwamb, 1995).

The agents were not designed to work together on this task—they were already built and deployed prior to the creation of the team. The team is integrated using TEAMCORE
(Tambe et  al., 2000), which accomplishes integration by "wrapping" each agent with a proxy that maintains collaboration with other agents ( via their own proxies). The proxies and agents form a team, jointly executing a distributed application described by a teamoriented program. Such a program consists of:
- A team hierarchy, where a team decomposes into subteams, and sub-subteams. - A plan hierarchy, which contains team plans that decompose into subteam plans - Assignment of teams from the team hierarchy to plans in the plan hierarchy.

As an example, Figure 1-a shows a part of the team/subteam hierarchy used in the evacuation-domain (described below). Here, for instance, TRANSPORT is a subteam of FLIGHT-TEAM, itself a subteam of TASK-FORCE. Figure 1-b shows an abbreviated planhierarchy for the same domain. High-level team plans, su as Evacuate, typically decompose into other team plans, such as Process-Orders, and, ultimately, into leaf-level plans that are executed by individuals. Temporal transitions are used to constrain the order of execution of plans. There are teams assigned to execute the plans, e.g., the TASK
FORCE team jointly executes EVACUATE, while only the TRANSPORT subteam executes the T R A N S P O R T - O P E R A T I O N S (T R A N S P O R T - O P S ) step. The team-oriented program for this application consists of about 40 team-plans. Some plans may get executed repeatedly though, so each agent may execute up to hundreds of plan steps as part of the execution of a single team-oriented program.

To execute the team-oriented program, ea proxy uses a domain-independent teamwork model, called STEAM (Tambe, 1997). The teamwork model automatically generates the communication messages required to ensure appropriate coordination among the proxies. For instance, STEAM requires that if an agent privately obtains a belief bel that terminates a team plan, then that agent should send a message to the rest of the team to terminate that team plan, along with the private belief bel that led to that termination. To avoid jamming the communication channels with a flood of messages about every single plan, STEAM
chooses to communicate selectively. Thus, whereas communicating about the initiation and termination of each and every plan would have led to 2000 or more messages generated in one run, only about 100 messages get exchanged in any one run when using STEAM (Tambe et al., 2000)
Figure 2 displays some of the messages exchanged among team members in the evacuation application, through the use of STEAM. The first message is sent from a proxy called "teamquickset" to members of a team TEAM-EVAC (another name for TASK
FORCE). The content of this message indicates that the team should terminate a plan cccccooowwww