Teamwork is becoming increasingly critical in multi-agent domains ranging from virtual environments for training and education, to information integration on the Internet, to potential multi-robotic space missions. The overall goal of this research is to develop a comprehensive model of teamwork, that explains the complex phenomena in teamwork, such as commitments, coordination and communication. To this end, this project investigates flexible communication in service of coordination, to significantly enrich the communication in existing teamwork models, and thus improve teamwork flexibility. In particular, it examines the role of explicit communication to improve quality, accuracy or efficiency of teamwork, as well as the role of implicit communication (via plan- recognition) to maintain teamwork coherence. The approach is based on a model of teamwork called STEAM. STEAM enables agents to explicitly represent and reason with joint goals and plans, and their commitments in team activities. While STEAM's underlying teamwork model is based on the joint intentions theory, it also includes significant novel additions in the form of monitoring constraints, team reorganization capabilities as well as decision theoretic communication selectivity. STEAM has been implemented --- STEAM agents participate in teamwork in three complex domains. The results of this research will enable significant improvement in multi-agent teamwork flexibility, as well as reuse of teamwork capabilities, with possible applications in the arenas such as education, entertainment, training, and others mentioned above.