Bilateral agent negotiation is considered as a fundamental research issue in autonomous agent negotiation, and was studied well by researchers. Generally, a predefined negotiation decision function and utility function are used to generate an offer in each negotiation round according to a negotiator's negotiation strategy, preference, and restrictions. However, such a negotiation procedure may not work well when the negotiator's utility function is nonlinear, and the unique offer is difficult to be generated. That is because if the negotiator's utility function is non-monotonic, the negotiator may find several offers that come with the same utility at the same time; and if the negotiator's utility function is discrete, the negotiator may not find an offer to satisfy its expected utility exactly. In order to solve such a problem, we propose a novel negotiation model in this paper. Firstly, a 3D model is introduced to illustrate the relationships between an agent's utility function, negotiation decision function and offer generation function. Then two negotiation mechanisms are proposed to handle two types of nonlinear utility functions respectively, i.e. a multiple offer mechanism is introduced to handle non-monotonic utility functions, and an approximating offer mechanism is introduced to handle discrete utility functions. Lastly, a combined negotiation mechanism is proposed to handle nonlinear utility functions in general situations by considering both the non-monotonic and discrete. The experimental results demonstrate the effectiveness and efficiency of the proposed negotiation model.