@article {1510228,
	title = {Automated teamwork among heterogeneous software agents and humans },
	journal = {Journal of Autonomous Agents and Multi-Agent Systems (JAAMAS)},
	volume = {7},
	year = {2003},
	pages = {71-100},
	abstract = {Agent integration architectures enable a heterogeneous, distributed set of agents
to work together to address problems of greater complexity than those addressed by the individual agents themselves. Unfortunately, integrating software agents and humans to perform
real-world tasks in a large-scale system remains difficult, especially due to three main challenges: ensuring robust execution in the face of a dynamic environment, providing abstract task
specifications without all the low-level coordination details, and finding appropriate agents for
inclusion in the overall system. To address these challenges, our Teamcore project provides the
integration architecture with general-purpose teamwork coordination capabilities. We make
each agent team-ready by providing it with a proxy capable of general teamwork reasoning.
Thus, a key novelty and strength of our framework is that powerful teamwork capabilities are
built into its foundations by providing the proxies themselves with a teamwork model.
Given this teamwork model, the Teamcore proxies addresses the first agent integration
challenge, robust execution, by automatically generating the required coordination actions
for the agents they represent. We can also exploit the proxies{\textquoteright} reusable general teamwork
knowledge to address the second agent integration challenge. Through team-oriented programming, a developer specifies a hierarchical organization and its goals and plans, abstracting
away from coordination details. Finally, KARMA, our Knowledgeable Agent Resources Manager Assistant, can aid the developer in conquering the third agent integration challenge by
locating agents that match the specified organization{\textquoteright}s requirements. Our integration architecture enables teamwork among agents with no coordination capabilities, and it establishes
and automates consistent teamwork among agents with some coordination capabilities. Thus,
team-oriented programming provides a level of abstraction that can be used on top of previous
approaches to agent-oriented programming. We illustrate how the Teamcore architecture successfully addressed the challenges of agent integration in two application domains: simulated
rehearsal of a military evacuation mission and facilitation of human collaboration.},
	author = {D. V. Pynadath and Tambe, Milind}
}
