The on-demand service provision model in cloud computing necessitates the use of well-established service level agreements (SLA). A SLA is a part of a service contract between the consumer and provider that formally defines the level of service. In cloud computing, SLAs are necessary to control the use of computing resources. Therefore, a main issue for cloud computing is to build a new layer to support a negotiation phase between service providers and consumers to establish SLAs between them. In this paper, we propose a software agent based automated service negotiation framework for on-demand cloud service provision. In this framework, autonomous agents act on half of service providers and consumers to participate in negotiations in automated and efficient way. We also propose a bilateral multi-step monotonic concession negotiation protocol for service negotiation in cloud computing environments.