In order to realize flexible strategic planning in multi-agent systems that are working in dynamic environment; it is necessary to provide a mechanism to integrate hierarchical planning (include team planning) and reactive behavior. The main issues of this integration are (1) how to switch the context of plan (2) how to organize multiple planning. In order to attack these issues; we are proposing a programming language called Gaea and programming methodology on it. Using facilities of Gaea; we represent a strategy as a tree of situations; in which the system evaluate conditions of situations asynchronously and determines an appropriate situation dynamically. Sharing a plan and assigning of roles are also realized in the same manner of determination of situation.