Abstract:In the construction of dynamic and open multi-agent systems, several issues in existing agent-oriented programming should be solved including a lack of high-level abstraction, a great gap between the implementation and design models, insufficient execution mechanism and programming constructs to support dynamics. To deal with these issues, this paper proposes an organization-based agent-oriented programming approach, which takes organizations, groups, roles, and agents as first-class entities to narrow the gap between implementation and design models. Moreover, this approach introduces serveral organization mechanisms, i.e. role enactment mechanism and role-based interactions, to support the dynamics such as the dynamic composition of the agents’ behaviors and dynamic interactions among agents. Based on the above ideas, an organization-based agent-oriented programming language, Oragent, is designed by defining its abstract syntax and formal operational semantics. Finally, a case is studied to show how to construct dynamic and flexible multi-agent systems with the programming approach and Oragent language.