Certain open issues challenge the software engineering of autonomous robot software (ARS). One issue is to provide enabling software technologies to support autonomous and rational behaviours of robots operating in an open environment, and another issue is the development of an effective engineering approach to manage the complexity of ARS to simplify the development, deployment and evolution of ARS. We introduce the software framework AutoRobot to address these issues. This software provides abstraction and a model of accompanying behaviours to formulate the behaviour patterns of autonomous robots and enrich the coherence between task behaviours and observation behaviours, thereby improving the capabilities of obtaining and using the feedback regarding the changes. A dual-loop control model is presented to support flexible interactions among the control activities to support continuous adjustments of the robot's behaviours. A multi-agent software architecture is proposed to encapsulate the fundamental software components. Unlike most existing research, in AutoRobot, the ARS is designed as a multi-agent system in which the software agents interact and cooperate with each other to accomplish the robot's task. AutoRobot provides reusable software packages to support the development of ARS and infrastructure integrated with ROS to support the decentralized deployment and running of ARS. We develop an ARS sample to illustrate how to use the framework and validate its effectiveness.